GNOME Bugzilla – Bug 678078
[ffdec_aac_latm] Fails to decode when channels/rate are specified
Last modified: 2018-11-03 13:12:04 UTC
Code from 0.10 GIT: gstreamer 11c8ffb6fbd20081c49708cb41e0ec6e2ed09c27 -base 1f6056eafb6c37f4c78ed22b2796a1dcaeb51ee6 -good 50c85392cd0a8824b917790a12d92f237dbd55ce -bad acf4463f2b9bf7a7cdbac288e50dfb41626fc8b2 -ugly 09284b9862504f73924d88ac00b2c7d08dd7a001 -ffmpeg 9761a6501b518a554fc5e52de8e9acdc4f8ced9a Plus a patch to -ugly mpeg2dec to set its rank to NONE making -ffmpeg MPEG2 decoder used. Shortest sample is 5Mb, available at request. Seems to hang shortly after starting up: # gst-launch-0.10 -v playbin2 uri=file:///data/data/media/bbc-hd.ts Setting pipeline to PAUSED ... /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: ring-buffer-max-size = 0 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: buffer-size = -1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: buffer-duration = -1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: use-buffering = FALSE /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: download = FALSE /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: uri = "file:///data/data/media/bbc-hd.ts" /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: connection-speed = 0 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: source = (GstFileSrc) source /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:src: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188 Pipeline is PREROLLING ... /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTSDemux:tsdemux0.GstPad:sink: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0.GstPad:sink0: caps = audio/mpeg, mpegversion=(int)4, stream-format=(string)latm /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0.GstPad:src0: caps = audio/mpeg, mpegversion=(int)4, stream-format=(string)latm /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstAacParse:aacparse0.GstPad:sink: caps = audio/mpeg, mpegversion=(int)4, stream-format=(string)latm /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstAacParse:aacparse0.GstPad:src: caps = audio/mpeg, mpegversion=(int)4, stream-format=(string)loas, framed=(boolean)true, rate=(int)48000, channels=(int)6 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstAacParse:aacparse0.GstPad:src: caps = audio/mpeg, mpegversion=(int)4, stream-format=(string)loas, framed=(boolean)true, rate=(int)48000, channels=(int)6 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0.GstPad:src1: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/ffdec_h264:ffdec_h2640.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal 0:00:00.053820977 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing SPS 0 referenced in buffering period 0:00:00.054012203 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.054119835 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.054297602 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.054407229 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.054507699 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.054610901 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.054740929 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.054842256 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.054940260 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.055031291 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.055125250 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.055216988 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.055307764 30174 0x7f7120036390 ERROR ffmpeg :0:: no frame! 0:00:00.055631388 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing SPS 0 referenced in buffering period 0:00:00.055864027 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.056017895 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.056135683 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.056228930 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.056333956 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.056426075 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.056523197 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.056618664 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.056731069 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.056827228 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.056928295 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.057026459 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.057123064 30174 0x7f7120036390 ERROR ffmpeg :0:: no frame! 0:00:00.057275754 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing SPS 0 referenced in buffering period 0:00:00.057380469 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.057485611 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.057591770 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.057700721 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.057798880 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.057891937 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.057987524 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.058092771 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0.GstPad:sink2: caps = audio/mpeg, mpegversion=(int)4, stream-format=(string)latm 0:00:00.058250518 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.058351153 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.058448531 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.058549582 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.058657055 30174 0x7f7120036390 ERROR ffmpeg :0:: no frame! 0:00:00.058811559 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing SPS 0 referenced in buffering period 0:00:00.058918385 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.059020990 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.059126482 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.059221207 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.059319271 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.059425781 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.059521269 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.059621122 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.059729833 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.059824578 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.059933078 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.060025894 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.060117446 30174 0x7f7120036390 ERROR ffmpeg :0:: no frame! 0:00:00.060377488 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing SPS 0 referenced in buffering period 0:00:00.060428936 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 2 referenced 0:00:00.060449722 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.060489952 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 2 referenced 0:00:00.060518273 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.060550678 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 2 referenced 0:00:00.060569330 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.060602026 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 2 referenced 0:00:00.060620642 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.060660642 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 2 referenced 0:00:00.060679750 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.060709849 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 2 referenced 0:00:00.060730250 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.060756430 30174 0x7f7120036390 ERROR ffmpeg :0:: no frame! 0:00:00.060822905 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing SPS 0 referenced in buffering period 0:00:00.060856659 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.060878378 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.060910313 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.060931856 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.060959801 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.060978151 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.061008642 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.061029785 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.061062967 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.061084536 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.061113362 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.061131808 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.061154800 30174 0x7f7120036390 ERROR ffmpeg :0:: no frame! 0:00:00.061210689 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing SPS 0 referenced in buffering period 0:00:00.061238919 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.061257566 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.061286418 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.061309861 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.061331876 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.061357279 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.061378466 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.061401834 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.061423523 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.061443428 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.061465608 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.061486385 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.061506575 30174 0x7f7120036390 ERROR ffmpeg :0:: no frame! 0:00:00.061544359 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing SPS 0 referenced in buffering period 0:00:00.061570208 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.061588944 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.061613365 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.061634042 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.061691099 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.061721584 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.061745885 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.061764095 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.061792526 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.061811137 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.061832676 30174 0x7f7120036390 ERROR ffmpeg :0:: non-existing PPS 0 referenced 0:00:00.061858034 30174 0x7f7120036390 ERROR ffmpeg :0:: decode_slice_header error 0:00:00.061876454 30174 0x7f7120036390 ERROR ffmpeg :0:: no frame! /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0.GstPad:src2: caps = audio/mpeg, mpegversion=(int)4, stream-format=(string)latm /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstAacParse:aacparse1.GstPad:sink: caps = audio/mpeg, mpegversion=(int)4, stream-format=(string)latm /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstAacParse:aacparse1.GstPad:src: caps = audio/mpeg, mpegversion=(int)4, stream-format=(string)loas, framed=(boolean)true, rate=(int)24000, channels=(int)1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0: max-size-buffers = 5 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0: max-size-time = 0 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0: max-size-bytes = 2097152 0:00:00.150091248 30174 0x7f7120036390 ERROR ffmpeg :0:: mmco: unref short failure /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/ffdec_h264:ffdec_h2640.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0: max-size-buffers = 5 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0: max-size-time = 0 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0: max-size-bytes = 2097152 /GstPlayBin2:playbin20/GstInputSelector:inputselector0.GstSelectorPad:sink0: always-ok = FALSE /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink0: always-ok = FALSE /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink1: always-ok = FALSE /GstPlayBin2:playbin20/GstInputSelector:inputselector0: active-pad = (GstSelectorPad) sink0 /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink1: tags = ((GstTagList*) 0x7f710c001870) /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/ffdec_aac_latm:ffdec_aac_latm1.GstPad:sink: caps = audio/mpeg, mpegversion=(int)4, stream-format=(string)loas, framed=(boolean)true, rate=(int)24000, channels=(int)1 /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink1: tags = ((GstTagList*) 0x7f710c001840) /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink1: tags = ((GstTagList*) 0x7f710c0016f0) /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink1: tags = ((GstTagList*) 0x7f710c001560) /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink1: tags = ((GstTagList*) 0x7f710c001470) /GstPlayBin2:playbin20/GstPlaySink:playsink: volume = 1.000000 /GstPlayBin2:playbin20/GstPlaySink:playsink: mute = FALSE /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:abin/GstAutoAudioSink:audiosink/GstAlsaSink:audiosink-actual-sink-alsa: ts-offset = 0 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstAutoVideoSink:videosink/GstXvImageSink:videosink-actual-sink-xvimage: ts-offset = 0 /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink0: tags = ((GstTagList*) 0x7f7118037a00) /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/ffdec_aac_latm:ffdec_aac_latm0.GstPad:sink: caps = audio/mpeg, mpegversion=(int)4, stream-format=(string)loas, framed=(boolean)true, rate=(int)48000, channels=(int)6 /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink0: tags = ((GstTagList*) 0x7f7118001290) /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink0: tags = ((GstTagList*) 0x7f7118037750) /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink0: tags = ((GstTagList*) 0x7f7120036690) /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink0: tags = ((GstTagList*) 0x7f7118001290) /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink0: tags = ((GstTagList*) 0x7f712000c2a0) /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink0: tags = ((GstTagList*) 0x7f7120065030) /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink0: tags = ((GstTagList*) 0x7f7118037a30) /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink0: tags = ((GstTagList*) 0x7f7118001900) /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink0: tags = ((GstTagList*) 0x7f7120036500) /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstDecodePad:src0: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstDecodePad:src0.GstProxyPad:proxypad7: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0.GstGhostPad:src0: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0.GstGhostPad:src0.GstProxyPad:proxypad12: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstInputSelector:inputselector0.GstSelectorPad:sink0: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstInputSelector:inputselector0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink.GstGhostPad:video_sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink.GstGhostPad:video_sink.GstProxyPad:proxypad16: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink.GstGhostPad:video_sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstStreamSynchronizer:streamsynchronizer0.GstPad:sink_0: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstStreamSynchronizer:streamsynchronizer0.GstPad:src_0: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin.GstGhostPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin.GstGhostPad:sink.GstProxyPad:proxypad20: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin.GstGhostPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstQueue:vqueue.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstQueue:vqueue.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv.GstGhostPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv.GstGhostPad:sink.GstProxyPad:proxypad18: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv.GstGhostPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv/GstFFMpegCsp:conv.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv/GstFFMpegCsp:conv.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv/GstVideoScale:scale.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv/GstVideoScale:scale.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv/GstVideoBalance:videobalance.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv/GstVideoBalance:videobalance.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv/GstFFMpegCsp:conv2.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv/GstFFMpegCsp:conv2.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv.GstGhostPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv.GstGhostPad:src.GstProxyPad:proxypad19: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstAutoVideoSink:videosink.GstGhostPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstAutoVideoSink:videosink.GstGhostPad:sink.GstProxyPad:proxypad17: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstAutoVideoSink:videosink.GstGhostPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstPlaySink:playsink/GstBin:vbin/GstAutoVideoSink:videosink/GstXvImageSink:videosink-actual-sink-xvimage.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)false, framerate=(fraction)0/1 /GstPlayBin2:playbin20/GstInputSelector:inputselector1.GstSelectorPad:sink0: tags = ((GstTagList*) 0x7f7120112890) Redistribute latency...
The first issue was that the caps for latm in tsdemux got wrongly overwritten. This is now fixed by commit 8ef6696d1c9788fa8fd425b0996bc017d95ed792 Author: Edward Hervey <edward.hervey@collabora.co.uk> Date: Thu Jun 28 17:40:16 2012 +0200 tsdemux: Fix AAC LATM caps The remaining issue is that ffdec_aac_latm behaves weirdly when plugged after aacparse (which is now the default in decodebin2). When rate and channels are both specified in the incoming caps, the codec initialization ends up taking a different code path which later on leads to the decoder refusing to decode anything. A simple way to circumvent that is to always reset the channels/rate in the initial AVCodecContext to 0. It will configure itself automatically later on. Changing the title accordingly.
Created attachment 217542 [details] [review] ffdec: Ignore incoming rate/channels for LATM
I've rebuilt everything from GIT today, plus this ffdec patch. Playing streams from disk is possibly fine now, but due to 678086 my test hardware is not able to decode in real-time to be 100% sure. But playing live streams fails like this: 0:00:03.748382748 753 0x7f29b0082410 ERROR ffmpeg gstffmpegcodecmap.c:124:gst_ff_channel_layout_to_gst: Number of channels is different (2 != 1) WARNING: from element /GstPlayBin2:playbin20/GstPlaySink:playsink: No volume control found Additional debug info: gstplaysink.c(2715): gen_audio_chain (): /GstPlayBin2:playbin20/GstPlaySink:playsink: Volume/mute is not available 0:00:04.332066497 753 0x7f29b0092660 ERROR ffmpeg :0:: mmco: unref short failure Redistribute latency... 0:00:05.013725386 753 0x7f29b0082570 ERROR ffmpeg :0:: invalid band type ERROR: from element /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/ffdec_aac_latm:ffdec_aac_latm0: Could not decode stream. Additional debug info: gstffmpegdec.c(719): gst_ffmpegauddec_audio_frame (): /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/ffdec_aac_latm:ffdec_aac_latm0: Decoding of AAC stream by FFMPEG failed.
Created attachment 217999 [details] [review] aacparse: Correct ADTS channel parsing According to http://wiki.multimedia.cx/index.php?title=ADTS value got from the ADTS header is not a number of channels but a configuration index so fix it to work like that. This fixes one of the test streams being incorrectly identified as having 7 channels. Note that even with this fix sound is still broken since ffdec_aac doesn't advertise support for more than six channels.
Comment on attachment 217999 [details] [review] aacparse: Correct ADTS channel parsing >diff --git a/gst/audioparsers/gstaacparse.c b/gst/audioparsers/gstaacparse.c >index 57f5aff..acc22e2 100644 >--- a/gst/audioparsers/gstaacparse.c >+++ b/gst/audioparsers/gstaacparse.c >@@ -114,6 +114,19 @@ gst_aac_parse_get_sample_rate_from_index (guint sr_idx) > return 0; > } > >+static inline gint >+gst_aac_parse_get_channels_from_index (guint ch_idx) >+{ >+ if (ch_idx == 0 || ch_idx > 7) >+ GST_WARNING ("Unsupported channel configuration %u", ch_idx); >+ else if (ch_idx == 7) >+ return 8; >+ else >+ return ch_idx; >+ >+ return 0; >+} >+ > /** > * gst_aac_parse_base_init: > * @klass: #GstElementClass. >@@ -679,9 +692,11 @@ gst_aac_parse_parse_adts_header (GstAacParse * aacparse, const guint8 * data, > > *rate = gst_aac_parse_get_sample_rate_from_index (sr_idx); > } >- if (channels) >- *channels = ((data[2] & 0x01) << 2) | ((data[3] & 0xc0) >> 6); >- >+ if (channels) { >+ gint ch_idx = ((data[2] & 0x01) << 2) | ((data[3] & 0xc0) >> 6); >+ >+ *channels = gst_aac_parse_get_channels_from_index (ch_idx); >+ } > if (version) > *version = (data[1] & 0x08) ? 2 : 4; > if (object)
Created attachment 218000 [details] [review] aacparse: Correct ADTS channel parsing Uploaded the wrong patch and then attempted to correct the mess and failed miserably. This one is the correct one.
that patch doesn't fix the issue for me. It's worth noticing that we are not using (nor exposing) the contents of the AAC descriptor contained in mpeg-ts streams. I'm wondering if that's not the culprit ...
descriptor doesn't help. FWIW, vlc decided to give up playing that game and ... converts LATM to regular aac.
*** Bug 709768 has been marked as a duplicate of this bug. ***
From bug #709768: The file is available here: https://uk.owncube.com/public.php?service=files&t=3092d8bb9bfbf74842ffdb20a829a7d0 I tried to reproduce with gst-launch-1.0 uri=file:///file.ts but seems it doesnt want to prerrol I tried to reproduce it with VLC and seems to be played, at least the beginning Sebastian Dröge (slomo): Confirmed, decodebin never pre-rolls on it but tsdemux does stuff all the time. This pipeline works however: > gst-launch-1.0 filesrc location=/home/slomo/Downloads/raw_h264.ts ! tsdemux ! decodebin ! xvimagesink Removing tsdemux and just having decodebin there reproduces the no-preroll problem. Also there are problems with the language code extraction but that's unrelated.
*** Bug 710406 has been marked as a duplicate of this bug. ***
New patch attached to https://bugzilla.gnome.org/show_bug.cgi?id=596772 that might be related to this failure but the sample isn't available anymore
*** Bug 679639 has been marked as a duplicate of this bug. ***
FWIW, this is still a problem: $ gst-play-1.0 http://samples.mplayerhq.hu/A-codecs/AAC/freetv_aac_latm.ts Press 'k' to see a list of keyboard shortcuts. Now playing http://samples.mplayerhq.hu/A-codecs/AAC/freetv_aac_latm.ts Prerolling... Redistribute latency... ERROR No valid frames found before end of stream for http://samples.mplayerhq.hu/A-codecs/AAC/freetv_aac_latm.ts ERROR debug information: gstbaseparse.c(1329): gst_base_parse_sink_event_default (): /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstAacParse:aacparse0 Reached end of play list.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/71.