[vlc-commits] demux: ts: add stub for private stream 0x05
Francois Cartegnie
git at videolan.org
Wed Dec 7 17:27:28 CET 2016
vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Wed Dec 7 17:21:56 2016 +0100| [046093e67560b2fdd3c2a65caede6eed1ac90576] | committer: Francois Cartegnie
demux: ts: add stub for private stream 0x05
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=046093e67560b2fdd3c2a65caede6eed1ac90576
---
modules/demux/mpeg/ts_psi.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/modules/demux/mpeg/ts_psi.c b/modules/demux/mpeg/ts_psi.c
index 9df8539..5e125a6 100644
--- a/modules/demux/mpeg/ts_psi.c
+++ b/modules/demux/mpeg/ts_psi.c
@@ -901,6 +901,27 @@ explicit_config_too_short:
msg_Err(demux, "Opus descriptor too short");
}
+static void PMTSetupEs0x05PrivateData( demux_t *p_demux, ts_pes_es_t *p_es,
+ const dvbpsi_pmt_es_t *p_dvbpsies )
+{
+ VLC_UNUSED(p_es);
+ if( p_demux->p_sys->standard == TS_STANDARD_DVB ||
+ p_demux->p_sys->standard == TS_STANDARD_AUTO )
+ {
+ dvbpsi_descriptor_t *p_ait_dr = PMTEsFindDescriptor( p_dvbpsies, 0x6F );
+ if( p_ait_dr )
+ {
+ uint8_t *p_data = p_ait_dr->p_data;
+ for( uint8_t i_data = p_ait_dr->i_length; i_data >= 3; i_data -= 3, p_data += 3 )
+ {
+ uint16_t i_app_type = ((p_data[0] & 0x7F) << 8) | p_data[1];
+ msg_Dbg( p_demux, " - Application type 0x%"PRIx16" version %"PRIu8,
+ i_app_type, p_data[2] & 0x1F);
+ }
+ }
+ }
+}
+
static void PMTSetupEs0x06( demux_t *p_demux, ts_pes_t *p_pes,
const dvbpsi_pmt_es_t *p_dvbpsies )
{
@@ -1398,6 +1419,7 @@ static void FillPESFromDvbpsiES( demux_t *p_demux,
{
case 0x05: /* Private data in sections */
p_pes->transport = TS_TRANSPORT_SECTIONS;
+ PMTSetupEs0x05PrivateData( p_demux, p_pes->p_es, p_dvbpsies );
break;
case 0x06:
/* Handle PES private data */
More information about the vlc-commits
mailing list