]> git.sesse.net Git - vlc/commitdiff
TS: Opus needs a registration descriptor
authorRafaël Carré <funman@videolan.org>
Thu, 23 Oct 2014 15:31:17 +0000 (17:31 +0200)
committerRafaël Carré <funman@videolan.org>
Thu, 23 Oct 2014 15:31:46 +0000 (17:31 +0200)
modules/demux/ts.c
modules/mux/mpeg/ts.c

index 641c785323e5b21893a5fcbc1297f3f4cebd044c..ec21897b69e0738cedd1e9d0ef0d98dff27bebeb 100644 (file)
@@ -4025,7 +4025,7 @@ static void PMTSetupEs0x06( demux_t *p_demux, ts_pid_t *pid,
         p_fmt->i_codec = VLC_CODEC_A52;
     }
     else if( (desc = PMTEsFindDescriptor( p_es, 0x7f ) ) && desc->i_length >= 2 &&
-              desc->p_data[0] == 0x80)
+              PMTEsHasRegistration(p_demux, p_es, "Opus"))
     {
         OpusSetup(p_demux, desc->p_data, desc->i_length, p_fmt);
     }
index c846f7b3caaf99424bdef3f2a9a49af0b436f52f..6e2853b6764b6bf4732a36eeeb9b4a1d1b00ee8a 100644 (file)
@@ -2371,6 +2371,9 @@ static void GetPMT( sout_mux_t *p_mux, sout_buffer_chain_t *c )
                 p_input->p_fmt->audio.i_channels
             };
             dvbpsi_PMTESAddDescriptor( p_es, 0x7f, 2, data );
+            uint8_t format[4] = { 'O', 'p', 'u', 's'};
+            /* "registration" descriptor : "Opus" */
+            dvbpsi_PMTESAddDescriptor( p_es, 0x05, 4, format );
         }
         else if( p_stream->i_codec == VLC_CODEC_TELETEXT )
         {