diff options
m--------- | common | 0 | ||||
-rw-r--r-- | gst/mpegdemux/gstpesfilter.c | 15 |
2 files changed, 13 insertions, 2 deletions
diff --git a/common b/common -Subproject 5dc8ae302733ce1aae5b1aaa613ce77a8ae4b3d +Subproject 3f4e9974603807e7615c3a6b8821542abce0be1 diff --git a/gst/mpegdemux/gstpesfilter.c b/gst/mpegdemux/gstpesfilter.c index 348f75c9..8a2ee284 100644 --- a/gst/mpegdemux/gstpesfilter.c +++ b/gst/mpegdemux/gstpesfilter.c @@ -287,7 +287,7 @@ gst_pes_filter_parse (GstPESFilter * filter) /* check PES scrambling control */ if ((flags & 0x30) != 0) - GST_DEBUG ("PES scrambling control: %x", (flags >> 4) & 0x3); + goto encrypted; /* 2: PTS_DTS_flags * 1: ESCR_flag @@ -466,7 +466,7 @@ need_more_data: ret = GST_FLOW_NEED_MORE_DATA; } } else { - GST_DEBG ("unbounded need more data %d", + GST_DEBUG ("unbounded need more data %d", gst_adapter_available (filter->adapter)); ret = GST_FLOW_NEED_MORE_DATA; } @@ -484,6 +484,17 @@ skip: filter->state = STATE_DATA_SKIP; return GST_FLOW_OK; } +encrypted: + { + GST_DEBUG ("skipping encrypted 0x%02x", filter->id); + gst_adapter_flush (filter->adapter, avail); + ADAPTER_OFFSET_FLUSH (avail); + + filter->length -= avail - 6; + if (filter->length > 0 || filter->unbounded_packet) + filter->state = STATE_DATA_SKIP; + return GST_FLOW_OK; + } lost_sync: { GST_DEBUG ("lost sync"); |