After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 642023 - [mpeg4videoparse] assertion `a_d != 0' failed
[mpeg4videoparse] assertion `a_d != 0' failed
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
0.10.21
Other Linux
: Normal normal
: 0.10.23
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-02-10 13:02 UTC by Nicola
Modified: 2011-08-24 08:10 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
test file, works fine with mplayer (167.90 KB, video/mp4)
2011-02-10 13:02 UTC, Nicola
Details

Description Nicola 2011-02-10 13:02:43 UTC
Created attachment 180574 [details]
test file, works fine with mplayer

Hi using this pipeline with the attached file I get:

gst-launch-0.10 filesrc location=/tmp/test1.mp4  ! mpeg4videoparse ! decodebin ! xvimagesink
Impostazione della pipeline a PAUSED ...
La pipeline è in PREROLLING ...
La pipeline è in PREROLLED ...
Impostazione della pipeline a PLAYING ...
New clock: GstSystemClock

(gst-launch-0.10:15151): GStreamer-CRITICAL **: gst_util_fraction_multiply: assertion `a_d != 0' failed

(gst-launch-0.10:15151): GStreamer-CRITICAL **: gst_util_fraction_multiply: assertion `a_d != 0' failed

(gst-launch-0.10:15151): GStreamer-CRITICAL **: gst_util_fraction_multiply: assertion `a_d != 0' failed

(gst-launch-0.10:15151): GStreamer-CRITICAL **: gst_util_fraction_multiply: assertion `a_d != 0' failed

(gst-launch-0.10:15151): GStreamer-CRITICAL **: gst_util_fraction_multiply: assertion `a_d != 0' failed

(gst-launch-0.10:15151): GStreamer-CRITICAL **: gst_util_fraction_multiply: assertion `a_d != 0' failed

(gst-launch-0.10:15151): GStreamer-CRITICAL **: gst_util_fraction_multiply: assertion `a_d != 0' failed

(gst-launch-0.10:15151): GStreamer-CRITICAL **: gst_util_fraction_multiply: assertion `a_d != 0' failed

removing mpeg4videoparse from the pipe no error is given but the video is not gook

the attached file works fine with mplayer
Comment 1 Tim-Philipp Müller 2011-02-10 13:12:05 UTC
Looks like at some point mpeg4videoparse re-negotiates, and that makes ffdec_mpeg4 output things with width/height=0:

$ gst-launch-0.10 -v filesrc location=642023-test.mpeg4 ! mpeg4videoparse ! ffdec_mpeg4 ! xvimagesink

Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstMpeg4VParse:mpeg4vparse0.GstPad:src: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, parsed=(boolean)true, profile-level-id=(string)1, codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800cd0b04241463000001b24c61766335322e33312e32, pixel-aspect-ratio=(fraction)1/1, width=(int)352, height=(int)288
/GstPipeline:pipeline0/ffdec_mpeg4:ffdec_mpeg40.GstPad:sink: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, parsed=(boolean)true, profile-level-id=(string)1, codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800cd0b04241463000001b24c61766335322e33312e32, pixel-aspect-ratio=(fraction)1/1, width=(int)352, height=(int)288
/GstPipeline:pipeline0/ffdec_mpeg4:ffdec_mpeg40.GstPad:src: caps = video/x-raw-yuv, width=(int)352, height=(int)288, framerate=(fraction)25/1, format=(fourcc)I420, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0.GstPad:sink: caps = video/x-raw-yuv, width=(int)352, height=(int)288, framerate=(fraction)25/1, format=(fourcc)I420, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:00.408932482 31155       0x876a90 ERROR                 ffmpeg :0:: header damaged
..

0:00:02.121889278 31155       0x876a90 ERROR                 ffmpeg :0:: header damaged
/GstPipeline:pipeline0/GstMpeg4VParse:mpeg4vparse0.GstPad:src: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, parsed=(boolean)true, profile-level-id=(string)1, codec_data=(buffer)0000010300000000aa00
/GstPipeline:pipeline0/ffdec_mpeg4:ffdec_mpeg40.GstPad:sink: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, parsed=(boolean)true, profile-level-id=(string)1, codec_data=(buffer)0000010300000000aa00
0:00:02.122727094 31155       0x876a90 ERROR                 ffmpeg :0:: looks like this file was encoded with (divx4/(old)xvid/opendivx) -> forcing low_delay flag
/GstPipeline:pipeline0/ffdec_mpeg4:ffdec_mpeg40.GstPad:src: caps = video/x-raw-yuv, width=(int)0, height=(int)0, framerate=(fraction)25/1, format=(fourcc)I420, interlaced=(boolean)false

GStreamer-CRITICAL **: gst_util_fraction_multiply: assertion `a_d != 0' failed
aborting...

Program received signal SIGTRAP, Trace/breakpoint trap.

Thread 140737244940032 (LWP 31159)

  • #0 g_logv
    at /tmp/buildd/glib2.0-2.27.91/./glib/gmessages.c line 563
  • #1 g_log
    at /tmp/buildd/glib2.0-2.27.91/./glib/gmessages.c line 577
  • #2 gst_util_fraction_multiply
    at gstutils.c line 4076
  • #3 gst_xvimage_sink_different_size_suggestion
    at xvimagesink.c line 2489
  • #4 gst_xvimagesink_buffer_alloc
    at xvimagesink.c line 2561
  • #5 gst_base_sink_pad_buffer_alloc
    at gstbasesink.c line 637
  • #6 gst_pad_buffer_alloc_unchecked
    at gstpad.c line 2984
  • #7 gst_pad_alloc_buffer_full
    at gstpad.c line 3061
  • #8 alloc_output_buffer
    at gstffmpegdec.c line 919
  • #9 gst_ffmpegdec_get_buffer
    at gstffmpegdec.c line 1028
  • #10 alloc_frame_buffer
    at libavcodec/mpegvideo.c line 230
  • #11 ff_alloc_picture
    at libavcodec/mpegvideo.c line 272
  • #12 MPV_frame_start
    at libavcodec/mpegvideo.c line 962
  • #13 ff_h263_decode_frame
    at libavcodec/h263dec.c line 627
  • #14 avcodec_decode_video2
    at libavcodec/utils.c line 638
  • #15 avcodec_decode_video
    at libavcodec/utils.c line 621
  • #16 gst_ffmpegdec_video_frame
    at gstffmpegdec.c line 1699
  • #17 gst_ffmpegdec_frame
    at gstffmpegdec.c line 2190
  • #18 gst_ffmpegdec_chain
    at gstffmpegdec.c line 2637
  • #19 gst_pad_chain_data_unchecked
    at gstpad.c line 4231
  • #20 gst_pad_push_data
    at gstpad.c line 4463
  • #21 gst_pad_push
    at gstpad.c line 4685
  • #22 gst_mpeg4vparse_push
    at mpeg4videoparse.c line 555
  • #23 gst_mpeg4vparse_drain
    at mpeg4videoparse.c line 686
  • #24 gst_mpeg4vparse_chain
    at mpeg4videoparse.c line 721
  • #25 gst_pad_push
    at gstpad.c line 4665

Comment 2 Vincent Penquerc'h 2011-08-10 11:15:37 UTC
This seems fixed with current git, the attached file and given command line work fine for me, with no assertion, though ffmpeg complains about damaged headers.
Comment 3 Nicola 2011-08-23 23:53:07 UTC
I can confirm that git version is fine,

thanks
Nicola