[Bug 698679] New: h264parse doesn't set proper caps on src pad on changes in the sink pad
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Tue Apr 23 09:50:00 PDT 2013
https://bugzilla.gnome.org/show_bug.cgi?id=698679
GStreamer | gst-plugins-bad | 1.x
Summary: h264parse doesn't set proper caps on src pad on
changes in the sink pad
Classification: Platform
Product: GStreamer
Version: 1.x
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gst-plugins-bad
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: n770galaxy at gmail.com
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Created an attachment (id=242262)
View: https://bugzilla.gnome.org/attachment.cgi?id=242262
Review: https://bugzilla.gnome.org/review?bug=698679&attachment=242262
patch that fixes the issue in GStreamer SDK
When h264parse is used to convert AVC to bytestream format and the
gst_h264_parse_set_caps function is triggered due a caps change (new codec_data
and new size) it does the following:
1) new size is extracted and set to h264parse->width and h264parse->height
2) same for PAR and framerate
3) new codec_data is parsed and it's SPS/PPS extracted, the calls to
gst_h264_parse_process_nal set h264parse->update_caps to TRUE
4) finally when input format is AVC and converting to bytestream it sets the
following:
h264parse->push_codec = TRUE;
h264parse->have_sps = FALSE;
h264parse->have_pps = FALSE;
if (h264parse->align == GST_H264_PARSE_ALIGN_NAL)
h264parse->split_packetized = TRUE;
h264parse->packetized = TRUE;
For 0.10 the execution is followed by a call to
gst_h264_parse_check_valid_frame which calls to gst_h264_parse_reset_frame and
it sets unconditionally h264parse->update_caps to FALSE.
For 1.0 the execution is followed by a call to gst_h264_parse_handle_frame
which chains to gst_h264_parse_handle_frame_packetized avoiding the call to
_reset_frame.
At gst_h264_parse_update_src_caps:
Case 0: for the first call it sets modified unconditionally
Case 1: if update_caps is FALSE early exit (triggered in 0.10 due _reset_frame
call)
Case 3: there's several checks about the size/fps/par to decide if caps have to
be updated. As those checks compare almost the same things size from input caps
vs size in the SPS, FPS and PAR modified isn't triggered and caps in the src
pad doesn't reflect the change.
Although the new SPS/PPS is injected in the pipeline.
--
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