[vlc-commits] demux: ts: check for EAC3 before AC3 logic channels descriptor (fix #16316 )

Francois Cartegnie git at videolan.org
Thu Jan 7 17:05:39 CET 2016


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Thu Jan  7 17:00:36 2016 +0100| [c84df40a4513c12b516db29b0a1d9f4c4137d1c2] | committer: Francois Cartegnie

demux: ts: check for EAC3 before AC3 logic channels descriptor (fix #16316)

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

 modules/demux/mpeg/ts.c |   19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/modules/demux/mpeg/ts.c b/modules/demux/mpeg/ts.c
index ac739bd..ebbeb4c 100644
--- a/modules/demux/mpeg/ts.c
+++ b/modules/demux/mpeg/ts.c
@@ -4588,10 +4588,15 @@ static void PMTSetupEs0x06( demux_t *p_demux, ts_pes_t *p_pes,
     es_format_t *p_fmt = &p_pes->es.fmt;
     dvbpsi_descriptor_t *p_subs_dr = PMTEsFindDescriptor( p_dvbpsies, 0x59 );
     dvbpsi_descriptor_t *desc;
-
-    if( PMTEsHasRegistration( p_demux, p_dvbpsies, "AC-3" ) ||
-        PMTEsFindDescriptor( p_dvbpsies, 0x6a ) ||
-        PMTEsFindDescriptor( p_dvbpsies, 0x81 ) )
+    if( PMTEsFindDescriptor( p_dvbpsies, 0x7a ) )
+    {
+        /* DVB with stream_type 0x06 (ETS EN 300 468) */
+        p_fmt->i_cat = AUDIO_ES;
+        p_fmt->i_codec = VLC_CODEC_EAC3;
+    }
+    else if( PMTEsHasRegistration( p_demux, p_dvbpsies, "AC-3" ) ||
+             PMTEsFindDescriptor( p_dvbpsies, 0x6a ) ||
+             PMTEsFindDescriptor( p_dvbpsies, 0x81 ) ) /* AC-3 channel (also in EAC3) */
     {
         p_fmt->i_cat = AUDIO_ES;
         p_fmt->i_codec = VLC_CODEC_A52;
@@ -4601,12 +4606,6 @@ static void PMTSetupEs0x06( demux_t *p_demux, ts_pes_t *p_pes,
     {
         OpusSetup(p_demux, desc->p_data, desc->i_length, p_fmt);
     }
-    else if( PMTEsFindDescriptor( p_dvbpsies, 0x7a ) )
-    {
-        /* DVB with stream_type 0x06 (ETS EN 300 468) */
-        p_fmt->i_cat = AUDIO_ES;
-        p_fmt->i_codec = VLC_CODEC_EAC3;
-    }
     else if( PMTEsHasRegistration( p_demux, p_dvbpsies, "DTS1" ) ||
              PMTEsHasRegistration( p_demux, p_dvbpsies, "DTS2" ) ||
              PMTEsHasRegistration( p_demux, p_dvbpsies, "DTS3" ) ||



More information about the vlc-commits mailing list