[Bug 758344] avviddec: May set padded width/height in pool caps
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Fri Nov 27 07:22:25 PST 2015
https://bugzilla.gnome.org/show_bug.cgi?id=758344
--- Comment #15 from Michael Olbrich <m.olbrich at pengutronix.de> ---
Created attachment 316392
--> https://bugzilla.gnome.org/attachment.cgi?id=316392&action=edit
new test video
I've tested the patch. Now playback starts, but I get this error multiple
times, when I play the new (longer) video file:
** (gst-launch-1.0:1688): CRITICAL **: gst_video_frame_map_id: assertion
'info->height <= meta->height' failed
I started gst-launch in gdb with G_DEBUG=fatal_criticals and I get this:
(gdb) bt
#0 0x00007ffff73a788b in g_logv (breakpoint=1) at
/build/glib2.0-ocmJ1Y/glib2.0-2.46.2/./glib/gmessages.c:324
#1 0x00007ffff73a788b in g_logv (log_domain=0x0,
log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>,
args=args at entry=0x7fffec6274a0)
at /build/glib2.0-ocmJ1Y/glib2.0-2.46.2/./glib/gmessages.c:1081
#2 0x00007ffff73a79ff in g_log (log_domain=log_domain at entry=0x0,
log_level=log_level at entry=G_LOG_LEVEL_CRITICAL,
format=format at entry=0x7ffff73f20f4 "%s: assertion '%s' failed") at
/build/glib2.0-ocmJ1Y/glib2.0-2.46.2/./glib/gmessages.c:1119
#3 0x00007ffff73a7a39 in g_return_if_fail_warning
(log_domain=log_domain at entry=0x0,
pretty_function=pretty_function at entry=0x7ffff5470010 <__func__.21215>
"gst_video_frame_map_id", expression=expression at entry=0x7ffff546fddb
"info->height <= meta->height")
at /build/glib2.0-ocmJ1Y/glib2.0-2.46.2/./glib/gmessages.c:1128
#4 0x00007ffff5449f1f in gst_video_frame_map_id
(frame=frame at entry=0x7fffe4021a38, info=info at entry=0x820518,
buffer=0x7fffe4003070, id=id at entry=-1, flags=flags at entry=(GST_MAP_READ |
GST_MAP_WRITE)) at video-frame.c:78
#5 0x00007ffff544a38d in gst_video_frame_map
(frame=frame at entry=0x7fffe4021a38, info=info at entry=0x820518, buffer=<optimized
out>, flags=flags at entry=(GST_MAP_READ | GST_MAP_WRITE)) at video-frame.c:186
#6 0x00007ffff36f931b in gst_ffmpegviddec_get_buffer2 (context=0x7fffe4064560,
picture=0x7fffe40a4fc0, flags=1) at gstavviddec.c:816
#7 0x00007ffff3bd61cf in ff_get_buffer (flags=1, frame=0x7fffe40a4fc0,
avctx=0x7fffe4064560) at libavcodec/utils.c:1029
#8 0x00007ffff3bd61cf in ff_get_buffer (avctx=0x7fffe4064560,
frame=0x7fffe40a4fc0, flags=1) at libavcodec/utils.c:1042
#9 0x00007ffff3b130ea in ff_thread_decode_frame (avpkt=0x7fffec627810,
p=0x7fffe400c9a8) at libavcodec/pthread_frame.c:388
#10 0x00007ffff3b130ea in ff_thread_decode_frame (avctx=avctx at entry=0x822e20,
picture=picture at entry=0x8232c0,
got_picture_ptr=got_picture_ptr at entry=0x7fffec6279e8,
avpkt=avpkt at entry=0x7fffec627810) at libavcodec/pthread_frame.c:427
#11 0x00007ffff3bd7708 in avcodec_decode_video2 (avctx=0x822e20,
picture=0x8232c0, got_picture_ptr=got_picture_ptr at entry=0x7fffec6279e8,
avpkt=avpkt at entry=0x7fffec627900) at libavcodec/utils.c:2442
#12 0x00007ffff36f69a9 in gst_ffmpegviddec_frame (ret=0x7fffec6279ec,
frame=0x7fffe44355d0, have_data=0x7fffec6279e8, size=92728, data=<optimized
out>, ffmpegdec=0x8201a0 [avdec_h264]) at gstavviddec.c:1354
#13 0x00007ffff36f69a9 in gst_ffmpegviddec_frame
(ffmpegdec=ffmpegdec at entry=0x8201a0 [avdec_h264],
data=data at entry=0x7fffe41bb2f0 "", size=size at entry=92728,
have_data=have_data at entry=0x7fffec6279e8, frame=frame at entry=0x7fffe44355d0,
ret=ret at entry=0x7fffec6279ec) at gstavviddec.c:1542
#14 0x00007ffff36f82de in gst_ffmpegviddec_handle_frame (decoder=0x8201a0
[avdec_h264], frame=0x7fffe44355d0) at gstavviddec.c:1653
#15 0x00007ffff54529c6 in gst_video_decoder_decode_frame
(decoder=decoder at entry=0x8201a0 [avdec_h264], frame=0x7fffe44355d0)
at gstvideodecoder.c:3405
#16 0x00007ffff5452e7d in gst_video_decoder_chain_forward
(decoder=decoder at entry=0x8201a0 [avdec_h264], buf=buf at entry=0x7fffe44354c0,
at_eos=at_eos at entry=0) at gstvideodecoder.c:2190
#17 0x00007ffff5455583 in gst_video_decoder_chain (pad=<optimized out>,
parent=0x8201a0 [avdec_h264], buf=0x7fffe44354c0) at gstvideodecoder.c:2492
#18 0x00007ffff7b276f4 in gst_pad_push_data (data=0x7fffe44354c0, type=4112,
pad=0x7be4e0 [GstPad]) at gstpad.c:4085
#19 0x00007ffff7b276f4 in gst_pad_push_data (pad=0x7bf260 [GstPad],
type=type at entry=4112, data=data at entry=0x7fffe44354c0) at gstpad.c:4337
#20 0x00007ffff7b2efd6 in gst_pad_push (pad=<optimized out>,
buffer=buffer at entry=0x7fffe44354c0) at gstpad.c:4453
#21 0x00007ffff5b025b7 in gst_qtdemux_decorate_and_push_buffer
(qtdemux=qtdemux at entry=0x7d80c0 [GstQTDemux],
stream=stream at entry=0x7fffe4005800, buf=0x7fffe44354c0,
dts=dts at entry=300000000, pts=pts at entry=300000000,
duration=duration at entry=33333333, keyframe=0, position=300000000,
byte_position=<optimized out>) at qtdemux.c:4905
#22 0x00007ffff5b1ad82 in gst_qtdemux_loop (qtdemux=<optimized out>) at
qtdemux.c:5159
#23 0x00007ffff5b1ad82 in gst_qtdemux_loop (pad=0x7be2a0 [GstPad]) at
qtdemux.c:5235
#24 0x00007ffff7b56cb1 in gst_task_func (task=0x89e050 [GstTask]) at
gsttask.c:331
#25 0x00007ffff73c82ee in g_thread_pool_thread_proxy (data=<optimized out>) at
/build/glib2.0-ocmJ1Y/glib2.0-2.46.2/./glib/gthreadpool.c:307
#26 0x00007ffff73c7955 in g_thread_proxy (data=0x839230) at
/build/glib2.0-ocmJ1Y/glib2.0-2.46.2/./glib/gthread.c:778
#27 0x00007ffff6d360a4 in start_thread (arg=0x7fffec628700) at
pthread_create.c:309
#28 0x00007ffff6a6b06d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:111
(gdb)
info and meta look like this:
#4 0x00007ffff5449f1f in gst_video_frame_map_id
(frame=frame at entry=0x7fffe4021a38, info=info at entry=0x820518,
buffer=0x7fffe4003070,
id=id at entry=-1, flags=flags at entry=(GST_MAP_READ | GST_MAP_WRITE)) at
video-frame.c:78
78 g_return_val_if_fail (info->height <= meta->height, FALSE);
(gdb) print *info
$1 = {finfo = 0x7ffff5687328 <formats+488>, interlace_mode =
GST_VIDEO_INTERLACE_MODE_PROGRESSIVE, flags = GST_VIDEO_FLAG_NONE, width =
1920,
height = 1088, size = 3133440, views = 1, chroma_site =
GST_VIDEO_CHROMA_SITE_H_COSITED, colorimetry = {range =
GST_VIDEO_COLOR_RANGE_16_235,
matrix = GST_VIDEO_COLOR_MATRIX_BT709, transfer = GST_VIDEO_TRANSFER_BT709,
primaries = GST_VIDEO_COLOR_PRIMARIES_BT709}, par_n = 1, par_d = 1,
fps_n = 0, fps_d = 1, offset = {0, 2088960, 2611200, 0}, stride = {1920, 960,
960, 0}, ABI = {abi = {
multiview_mode = GST_VIDEO_MULTIVIEW_MODE_NONE, multiview_flags =
GST_VIDEO_MULTIVIEW_FLAGS_NONE}, _gst_reserved = {0xffffffff, 0x0, 0x0,
0x0}}}
(gdb) print *meta
$2 = {meta = {flags = (GST_META_FLAG_POOLED | GST_META_FLAG_LOCKED), info =
0x7fffe40051e0}, buffer = 0x7fffe4003070,
flags = GST_VIDEO_FRAME_FLAG_NONE, format = GST_VIDEO_FORMAT_I420, id = 0,
width = 1920, height = 1080, n_planes = 3, offset = {32832, 2310176,
2885664, 0}, stride = {2048, 1024, 1024, 0}, map = 0x7ffff544ffd0
<default_map>, unmap = 0x7ffff544ffb0 <default_unmap>}
(gdb)
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list