[vlc-commits] demux: ts: revector and comment extended_descriptor in pmt

Francois Cartegnie git at videolan.org
Thu Jul 5 10:35:12 CEST 2018


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Thu Jul  5 10:27:55 2018 +0200| [6fe0e5bf0ad80d48caf78abad09424e29fc8b941] | committer: Francois Cartegnie

demux: ts: revector and comment extended_descriptor in pmt

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6fe0e5bf0ad80d48caf78abad09424e29fc8b941
---

 modules/demux/mpeg/ts_psi.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/modules/demux/mpeg/ts_psi.c b/modules/demux/mpeg/ts_psi.c
index 0004815ec9..59abd8c027 100644
--- a/modules/demux/mpeg/ts_psi.c
+++ b/modules/demux/mpeg/ts_psi.c
@@ -1140,12 +1140,6 @@ static void PMTSetupEs0x06( demux_t *p_demux, ts_stream_t *p_pes,
     {
         es_format_Change( p_fmt, AUDIO_ES, VLC_CODEC_A52 );
     }
-    else if( (desc = PMTEsFindDescriptor( p_dvbpsies, 0x7f ) ) &&
-             desc->i_length >= 2 && desc->p_data[0] == 0x80 &&
-              PMTEsHasRegistration(p_demux, p_dvbpsies, "Opus"))
-    {
-        OpusSetup(p_demux, desc->p_data, desc->i_length, p_fmt);
-    }
     else if( PMTEsHasRegistration( p_demux, p_dvbpsies, "DTS1" ) || /* 512 Bpf */
              PMTEsHasRegistration( p_demux, p_dvbpsies, "DTS2" ) || /* 1024 Bpf */
              PMTEsHasRegistration( p_demux, p_dvbpsies, "DTS3" ) || /* 2048 Bpf */
@@ -1165,6 +1159,20 @@ static void PMTSetupEs0x06( demux_t *p_demux, ts_stream_t *p_pes,
     {
         es_format_Change( p_fmt, VIDEO_ES, VLC_CODEC_HEVC );
     }
+    else if( (desc = PMTEsFindDescriptor( p_dvbpsies, 0x7f )) &&
+             desc->i_length >= 2 )
+    {
+        /* extended_descriptor on PMT (DVB Bluebook A038) */
+        switch( desc->p_data[0] )
+        {
+            case 0x80: /* User Defined */
+                 /* non finalized Opus in TS Draft. Can't really tell...
+                  * So ffmpeg produced mixes with System-A reg */
+                if( PMTEsHasRegistration(p_demux, p_dvbpsies, "Opus") )
+                    OpusSetup(p_demux, desc->p_data, desc->i_length, p_fmt);
+                break;
+        }
+    }
     else if( p_sys->standard == TS_STANDARD_ARIB )
     {
         /* Lookup our data component descriptor first ARIB STD B10 6.4 */



More information about the vlc-commits mailing list