[Bug 712605] New: h264parse: Broken conversion avc/au to byte-stream/nal
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Mon Nov 18 07:39:49 PST 2013
https://bugzilla.gnome.org/show_bug.cgi?id=712605
GStreamer | gst-plugins-bad | 1.2.1
Summary: h264parse: Broken conversion avc/au to byte-stream/nal
Classification: Platform
Product: GStreamer
Version: 1.2.1
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gst-plugins-bad
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: aurelien.zanelli at parrot.com
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Created an attachment (id=260140)
--> (https://bugzilla.gnome.org/attachment.cgi?id=260140)
Sintel-720p broken conversion backtrace
I try to play Sintel-720p
(http://ftp.nluug.nl/pub/graphics/blender/demo/movies/Sintel.2010.720p.mkv)
using the following pipeline:
$ gst-launch-1.0 filesrc location=/mnt/nfs/Sintel.2010.720p.mkv ! matroskademux
! h264parse ! video/x-h264,stream-format=byte-stream,alignment=nal ! fakesink
and i get a SIGSEGV in h264parse (backtrace is attached).
The cause seems to be this block of code:
(from gst/videoparsers/gsth264parse.c:gst_h264_parse_handle_frame_packetized()
)
> while (parse_res == GST_H264_PARSER_OK) {
> GST_DEBUG_OBJECT (h264parse, "AVC nal offset %d", nalu.offset + nalu.size);
>
> /* either way, have a look at it */
> gst_h264_parse_process_nal (h264parse, &nalu);
>
> /* dispatch per NALU if needed */
> if (h264parse->split_packetized) {
> /* note we don't need to come up with a sub-buffer, since
> * subsequent code only considers input buffer's metadata.
> * Real data is either taken from input by baseclass or
> * a replacement output buffer is provided anyway. */
> gst_h264_parse_parse_frame (parse, frame);
> ret = gst_base_parse_finish_frame (parse, frame, nl + nalu.size);
> left -= nl + nalu.size;
> }
>
> parse_res = gst_h264_parser_identify_nalu_avc (h264parse->nalparser,
> map.data, nalu.offset + nalu.size, map.size, nl, &nalu);
> }
The first call of gst_base_parse_finish_frame() clear the frame->buffer field.
The second iteration causes the segfault by calling
gst_h264_parse_parse_frame() with frame->buffer = NULL.
At this moment, i'm not sure how to solve the problem,
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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