GNOME Bugzilla – Bug 324847
Playing raw dv (PAL) colour problem on Ubuntu Breezy PPC.
Last modified: 2007-05-14 20:34:00 UTC
Please describe the problem: gst-launch-0.10 garbles (reverses) colour and video stutters (very poor framerate) when playing raw dv. PAL (gst-launch-0.8 works colour-wise but is also very slow). Playing a dv NTSC file the output is correctly rendered (but also as slow as PAL) Steps to reproduce: example with gst-launch-0.10: anders@jupiter:~/Desktop/videosamples$ gst-launch-0.10 -v filesrc location=jonas001.dv ! decodebin ! xvimagesink Setting pipeline to PAUSED ... /pipeline0/decodebin0/typefind.src: caps = video/x-dv, systemstream=(boolean)true, format=(string)PAL Pipeline is PREROLLING ... /pipeline0/decodebin0/dvdemux0.sink: caps = video/x-dv, systemstream=(boolean)true, format=(string)PAL /pipeline0/decodebin0.src0: caps = NULL /pipeline0/decodebin0/dvdemux0.audio: caps = audio/x-raw-int, rate=(int)32000, depth=(int)16, width=(int)16, signed=(boolean)true, channels=(int)2, endianness=(int)4321 /pipeline0/decodebin0/dvdemux0.video: caps = video/x-dv, systemstream=(boolean)false, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)59/54 /pipeline0/decodebin0/queue0.sink: caps = video/x-dv, systemstream=(boolean)false, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)59/54 /pipeline0/decodebin0/dvdec0.src: caps = video/x-raw-yuv, format=(fourcc)YUY2, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)59/54 /pipeline0/decodebin0/dvdec0.sink: caps = video/x-dv, systemstream=(boolean)false, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)59/54 /pipeline0/xvimagesink0.sink: caps = video/x-raw-yuv, format=(fourcc)YUY2, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)59/54 /pipeline0/decodebin0.src0: caps = video/x-raw-yuv, format=(fourcc)YUY2, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)59/54 /pipeline0/decodebin0.src0.proxypad1: caps = video/x-raw-yuv, format=(fourcc)YUY2, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)59/54 Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock example with gst-launch-0.8: anders@jupiter:~/Desktop/videosamples$ gst-launch-0.8 -v filesrc location= jonas001.dv ! decodebin ! ffmpegcolorspace ! xvimagesink KÖR rörledning... /pipeline0/filesrc0.src: caps = application/octet-stream /pipeline0/decodebin0/typefind.sink: caps = application/octet-stream /pipeline0/filesrc0.src: active = TRUE /pipeline0/decodebin0/typefind.sink: active = TRUE /pipeline0/decodebin0/typefind.src: active = TRUE /pipeline0/decodebin0/dvdec0.audio: active = TRUE /pipeline0/decodebin0/dvdec0.video: active = TRUE /pipeline0/ffmpegcolorspace0.sink: active = TRUE /pipeline0/ffmpegcolorspace0.src: active = TRUE /pipeline0/ffmpegcolorspace0.src: caps = video/x-raw-yuv, width=(int)720, height=(int)480, framerate=(double)30, pixel-aspect-ratio=(fraction)59/54, format=(fourcc)YUY2 /pipeline0/xvimagesink0.sink: caps = video/x-raw-yuv, width=(int)720, height=(int)480, framerate=(double)30, pixel-aspect-ratio=(fraction)59/54, format=(fourcc)YUY2 /pipeline0/xvimagesink0.sink: active = TRUE /pipeline0/decodebin0/dvdec0.sink: active = TRUE /pipeline0/decodebin0/typefind.src: caps = video/x-dv, systemstream=(boolean)true, format=(string)PAL /pipeline0/decodebin0/dvdec0.sink: caps = video/x-dv, systemstream=(boolean)true, format=(string)PAL /pipeline0/filesrc0: blocksize = 144000 /pipeline0/ffmpegcolorspace0.src: caps = video/x-raw-yuv, width=(int)720, height=(int)576, framerate=(double)25, pixel-aspect-ratio=(fraction)59/54, format=(fourcc)YUY2 /pipeline0/xvimagesink0.sink: caps = video/x-raw-yuv, width=(int)720, height=(int)576, framerate=(double)25, pixel-aspect-ratio=(fraction)59/54, format=(fourcc)YUY2 /pipeline0/decodebin0/dvdec0.video: caps = video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)59/54, framerate=(double)25 /pipeline0/ffmpegcolorspace0.sink: caps = video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)59/54, framerate=(double)25 Actual results: Expected results: Does this happen every time? Other information: As the version of libdv probably is the same in 0.10 and 0.8 - I thought this must be an gstreamer issue.
Do you have a file so we can try it ? Thanks!
Of course: PAL dv: http://www.gudmundson.se/anders/uploads/Klipp04.dv cheers! Anders
After some debug: - ./gstreamer/tools/gst-launch-0.10 filesrc location=Klipp04.dv ! dvdemux ! dvdec ! ffmpegcolorspace ! xvimagesink works fine on i386 but not on ppc - dvplay (from the libdv-bin ubuntu package) has the same problem of the dvdec element (so it doesn't seem a gstreamer issue) - using the ffdec_dvvideo element instead of dvdec works fine on ppc (and it's also a lot faster!) Maybe we can raise the priority of ffdec_dvvideo ? Any drawback ?
Ranks seem to have been adjusted as suggested by Luca: 2006-04-21 Andy Wingo <wingo@pobox.com> * ext/dv/gstdv.c (plugin_init): libdv is a marginal decoder, at best, on big endian systems. Drop its rank in that case. OTOH on x86 it's quite fine. See changes from today in gst-ffmpeg as well. 2006-04-21 Andy Wingo <wingo@pobox.com> * ext/ffmpeg/gstffmpegdec.c (gst_ffmpegdec_register): Up the rank of the dv video decoder.
Does this still happen on ubuntu edgy?
Anders, any chance you could make the clip available again?
(In reply to comment #5) > Does this still happen on ubuntu edgy? > What made you think I've dist-upgraded :-) No, it plays ok now on Edgy... using ffmpeg dec it seems. Nice, the future looks brighter for Pitivi and Diva on PPC (I use Blender now for editing DV and it's great!) some output from Edgy: gst-launch-0.10 -v filesrc location=video001.dv ! decodebin ! xvimagesinkStäller in rörledningen till PAUSED... /pipeline0/decodebin0/typefind.src: caps = video/x-dv, systemstream=(boolean)true, format=(string)PAL Rörledningen utför PREROLL... /pipeline0/decodebin0/dvdemux0.audio: caps = audio/x-raw-int, rate=(int)48000, depth=(int)16, width=(int)16, signed=(boolean)true, channels=(int)2, endianness=(int)4321 /pipeline0/decodebin0.src1: caps = audio/x-raw-int, rate=(int)48000, depth=(int)16, width=(int)16, signed=(boolean)true, channels=(int)2, endianness=(int)4321 /pipeline0/decodebin0.src1.proxypad2: caps = audio/x-raw-int, rate=(int)48000, depth=(int)16, width=(int)16, signed=(boolean)true, channels=(int)2, endianness=(int)4321 /pipeline0/decodebin0/dvdemux0.video: caps = video/x-dv, systemstream=(boolean)false, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)59/54 /pipeline0/decodebin0/queue0.sink: caps = video/x-dv, systemstream=(boolean)false, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)59/54 /pipeline0/decodebin0/queue0.src: caps = video/x-dv, systemstream=(boolean)false, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)59/54 /pipeline0/decodebin0/ffdec_dvvideo0.sink: caps = video/x-dv, systemstream=(boolean)false, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)59/54 /pipeline0/decodebin0/ffdec_dvvideo0.src: caps = video/x-raw-yuv, width=(int)720, height=(int)576, framerate=(fraction)25/1, format=(fourcc)I420, pixel-aspect-ratio=(fraction)59/54 /pipeline0/xvimagesink0.sink: caps = video/x-raw-yuv, width=(int)720, height=(int)576, framerate=(fraction)25/1, format=(fourcc)I420, pixel-aspect-ratio=(fraction)59/54 /pipeline0/decodebin0.src0: caps = video/x-raw-yuv, width=(int)720, height=(int)576, framerate=(fraction)25/1, format=(fourcc)I420, pixel-aspect-ratio=(fraction)59/54 /pipeline0/decodebin0.src0.proxypad1: caps = video/x-raw-yuv, width=(int)720, height=(int)576, framerate=(fraction)25/1, format=(fourcc)I420, pixel-aspect-ratio=(fraction)59/54 Rörledningen har utfört PREROLL... Ställer in rörledningen till PLAYING... New clock: GstSystemClock Caught interrupt -- Pausing pipeline. (In reply to comment #6) > Anders, any chance you could make the clip available again? > I'll try to upload it again asap (my ISP has some problems right now...).
What about gst-launch-0.10 -v filesrc location=video001.dv ! dvdemux ! dvdec ! ffmpegcolorspace ! xvimagesink ?
Not working... Inverted colours and slow. anders@jupiter:~/Desktop$ gst-launch-0.10 -v filesrc location=video001.dv ! dvdemux ! dvdec ! ffmpegcolorspace ! xvimagesink Ställer in rörledningen till PAUSED... Rörledningen utför PREROLL... /pipeline0/dvdemux0.audio: caps = audio/x-raw-int, rate=(int)48000, depth=(int)16, width=(int)16, signed=(boolean)true, channels=(int)2, endianness=(int)4321 /pipeline0/dvdemux0.video: caps = video/x-dv, systemstream=(boolean)false, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)59/54 /pipeline0/dvdec0.src: caps = video/x-raw-yuv, format=(fourcc)YUY2, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)59/54 /pipeline0/dvdec0.sink: caps = video/x-dv, systemstream=(boolean)false, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)59/54 /pipeline0/ffmpegcsp0.src: caps = video/x-raw-yuv, format=(fourcc)YUY2, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)59/54 /pipeline0/ffmpegcsp0.sink: caps = video/x-raw-yuv, format=(fourcc)YUY2, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)59/54 /pipeline0/xvimagesink0.sink: caps = video/x-raw-yuv, format=(fourcc)YUY2, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)59/54 Rörledningen har utfört PREROLL... Ställer in rörledningen till PLAYING... New clock: GstSystemClock
This bug is in a dependent package, so I'm closing.