GNOME Bugzilla – Bug 330619
huffyuv decoding doesn't work
Last modified: 2008-05-06 12:49:33 UTC
I try to play back an avi with huffyuv: $ gst-launch-0.10 filesrc location=capture.avi ! avidemux ! ffdec_huffyuv ! ffmpegcolorspace ! xvimagesink Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock Got EOS from element "pipeline0". Execution ended after 326000 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... Setting pipeline to NULL ... FREEING pipeline ... Nothing shows up. Audio playback works. The file was captured from a TV card with mencoder(v4l2). video: huffyuv, 720x576, 25fps audio: uncompressed PCM, stereo, 32kHz size: 369.5MB duration: 30s It works fine with mplayer, ffplay, xine and vlc. The same happens when I use "Lossless JPEG" as an encoder, in which case only mplayer and ffplay are able to play it back, probably because the other players don't know the tag "LJPG".
Peter, did you try with latest versions of gstreamer core and plugins-base ? Also, do you have gst-ffmpeg-0.10.x installed ?
gstreamer: 0.10.3 gst-plugins-base: 0.10.3 gst-ffmpeg: 0.10.0
could you paste here the result of: gst-launch-0.10 -v -t filesrc location=yourhufffile ! decodebin
$ gst-launch-0.10 -v -t filesrc location=huffyuv.avi ! decodebin Setting pipeline to PAUSED ... /pipeline0/decodebin0/typefind.src: caps = video/x-msvideo Pipeline is PREROLLING ... FOUND TAG : found by element "avidemux0". video codec: Huffman Lossless Codec FOUND TAG : found by element "avidemux0". audio codec: Uncompressed 16-bit PCM audio FOUND TAG : found by element "avidemux0". encoder: MEncoder dev-CVS-060118-13:12-3.3.6 /pipeline0/decodebin0/queue0.sink: caps = video/x-huffyuv, bpp=(int)16, framerate=(fraction)25/1, width=(int)720, height=(int)576 /pipeline0/decodebin0/ffdec_huffyuv0.sink: caps = video/x-huffyuv, bpp=(int)16, framerate=(fraction)25/1, width=(int)720, height=(int)576 Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock Then nothing happens. I press [CTRL]+[C]: Caught interrupt -- Pausing pipeline. Pipeline paused. WARNING: Element "pipeline0" warns: pipeline interrupted Element "pipeline0" has gone from PLAYING to PAUSED, quitting. Execution ended after 147233837000 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... /pipeline0/decodebin0/ffdec_huffyuv0.sink: caps = NULL /pipeline0/decodebin0/queue0.sink: caps = NULL /pipeline0/decodebin0/avidemux0.audio_00: caps = NULL /pipeline0/decodebin0/avidemux0.video_00: caps = NULL /pipeline0/decodebin0/typefind.src: caps = NULL Setting pipeline to NULL ... FREEING pipeline ...
yes, it's not meant to do anything (there's nothing connected to decodebin). It was to check which caps it was (video/x-huffyuv) and that you had the proper decoder (ffdec_huffyuv). Can you run the following command and attach the debug.log (compressed if possible): gst-launch-0.10 -v -t playbin uri=file:///all/the/path/leading/to/huffyuv.avi > debug.log 2>&1
Created attachment 59266 [details] debug
I'm stupid, I forgot to mention with debugging options: GST_DEBUG=5 gst-launch-0.10 -v -t playbin uri=file:///all/the/path/leading/to/huffyuv.avi > debug.log 2>&1
Created attachment 59268 [details] debug.log.gz
The problem is that the ffmpeg huffyuv decoder doesn't set the keyframe information on the buffers, which as a result, all get discarded in the gstreamer ffmpeg decoder wrapper. Could you check it with latest cvs of gst-ffmpeg ? 2006-02-13 Edward Hervey <edward@fluendo.com> * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_release_buffer), (gst_ffmpegdec_frame): More fixes for keyframe detection in ffmpeg decoders...
I'm behind a firewall. Only http/ftp available. :( Could you upload a snapshot? Hopefully, someday there will be a working svn.freedesktop.org!
Got cvs! It's getting better. At least something gets displayed now although it's just garbage. You can produce samples yourself and try it out: $ ffmpeg -i somefile.avi -pix_fmt yuv422p -vcodec huffyuv -an huffyuv.avi
confirmed
looks like huffyuv decodes to Y42B and the color conversion does some strange things with that.
still borked with latest versions.
Works now but seems to have some performance problems: Trying one of my files(AVI,9GB,12min,Huffyuv,720x576,25fps,PCM,32kHz) results in slow playback/seeking and audio dropouts.
Peter, can you try with latest trunk of gst-ffmpeg ?
Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for. Thanks!