mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 18:21:04 +00:00
rtpmp4vpay: don't look for headers in some cases
In some streams (starting with 00000100) don't look for the headers but push data as it is. Fixes #582153
This commit is contained in:
parent
301fc8a712
commit
e13e3c6249
2 changed files with 7 additions and 1 deletions
|
@ -164,6 +164,7 @@ gst_rtp_mp4v_pay_init (GstRtpMP4VPay * rtpmp4vpay)
|
||||||
rtpmp4vpay->rate = 90000;
|
rtpmp4vpay->rate = 90000;
|
||||||
rtpmp4vpay->profile = 1;
|
rtpmp4vpay->profile = 1;
|
||||||
rtpmp4vpay->send_config = DEFAULT_SEND_CONFIG;
|
rtpmp4vpay->send_config = DEFAULT_SEND_CONFIG;
|
||||||
|
rtpmp4vpay->need_config = TRUE;
|
||||||
|
|
||||||
rtpmp4vpay->config = NULL;
|
rtpmp4vpay->config = NULL;
|
||||||
|
|
||||||
|
@ -281,7 +282,7 @@ gst_rtp_mp4v_pay_flush (GstRtpMP4VPay * rtpmp4vpay)
|
||||||
* over multiple packets. */
|
* over multiple packets. */
|
||||||
avail = gst_adapter_available (rtpmp4vpay->adapter);
|
avail = gst_adapter_available (rtpmp4vpay->adapter);
|
||||||
|
|
||||||
if (rtpmp4vpay->config == NULL) {
|
if (rtpmp4vpay->config == NULL && rtpmp4vpay->need_config) {
|
||||||
/* when we don't have a config yet, flush things out */
|
/* when we don't have a config yet, flush things out */
|
||||||
gst_adapter_flush (rtpmp4vpay->adapter, avail);
|
gst_adapter_flush (rtpmp4vpay->adapter, avail);
|
||||||
avail = 0;
|
avail = 0;
|
||||||
|
@ -402,6 +403,10 @@ gst_rtp_mp4v_pay_depay_data (GstRtpMP4VPay * enc, guint8 * data, guint size,
|
||||||
/* VOP startcode, we don't have to flush the packet */
|
/* VOP startcode, we don't have to flush the packet */
|
||||||
result = FALSE;
|
result = FALSE;
|
||||||
break;
|
break;
|
||||||
|
case 0x00000100:
|
||||||
|
enc->need_config = FALSE;
|
||||||
|
result = TRUE;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
if (code >= 0x20 && code <= 0x2f) {
|
if (code >= 0x20 && code <= 0x2f) {
|
||||||
GST_DEBUG_OBJECT (enc, "short header");
|
GST_DEBUG_OBJECT (enc, "short header");
|
||||||
|
|
|
@ -52,6 +52,7 @@ struct _GstRtpMP4VPay
|
||||||
gint profile;
|
gint profile;
|
||||||
GstBuffer *config;
|
GstBuffer *config;
|
||||||
gboolean send_config;
|
gboolean send_config;
|
||||||
|
gboolean need_config;
|
||||||
|
|
||||||
GstPadEventFunction old_event_func;
|
GstPadEventFunction old_event_func;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue