[vlc-commits] demux: ogg: set format using es_format_Change
Francois Cartegnie
git at videolan.org
Wed Jul 5 12:05:26 CEST 2017
vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Wed Jul 5 12:02:18 2017 +0200| [720adb1c79b18484d97ac336b64103894a1ad9f8] | committer: Francois Cartegnie
demux: ogg: set format using es_format_Change
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=720adb1c79b18484d97ac336b64103894a1ad9f8
---
modules/demux/ogg.c | 94 ++++++++++++++++++++---------------------------------
1 file changed, 36 insertions(+), 58 deletions(-)
diff --git a/modules/demux/ogg.c b/modules/demux/ogg.c
index cfc3813fa8..8c4c9df0b3 100644
--- a/modules/demux/ogg.c
+++ b/modules/demux/ogg.c
@@ -1547,8 +1547,8 @@ static int Ogg_FindLogicalStreams( demux_t *p_demux )
TAB_APPEND( p_ogg->i_streams, p_ogg->pp_stream, p_stream );
- es_format_Init( &p_stream->fmt, 0, 0 );
- es_format_Init( &p_stream->fmt_old, 0, 0 );
+ es_format_Init( &p_stream->fmt, UNKNOWN_ES, 0 );
+ es_format_Init( &p_stream->fmt_old, UNKNOWN_ES, 0 );
p_stream->b_initializing = true;
/* Setup the logical stream */
@@ -1624,8 +1624,7 @@ static int Ogg_FindLogicalStreams( demux_t *p_demux )
p_stream->b_force_backup = true;
p_stream->i_extra_headers_packets = 1;
p_stream->special.flac.b_old = true;
- p_stream->fmt.i_cat = AUDIO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_FLAC;
+ es_format_Change( &p_stream->fmt, AUDIO_ES, VLC_CODEC_FLAC );
}
/* Check for Flac header (>= version 1.0.0) */
else if( oggpacket.bytes >= 13 && oggpacket.packet[0] ==0x7F &&
@@ -1644,8 +1643,7 @@ static int Ogg_FindLogicalStreams( demux_t *p_demux )
p_stream->i_extra_headers_packets = i_packets;
p_stream->special.flac.b_old = false;
- p_stream->fmt.i_cat = AUDIO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_FLAC;
+ es_format_Change( &p_stream->fmt, AUDIO_ES, VLC_CODEC_FLAC );
oggpacket.packet += 13; oggpacket.bytes -= 13; /* Point to the streaminfo */
if ( !Ogg_ReadFlacStreamInfo( p_demux, p_stream, &oggpacket ) )
{
@@ -1710,8 +1708,7 @@ static int Ogg_FindLogicalStreams( demux_t *p_demux )
oggpack_buffer opb;
msg_Dbg( p_demux, "found tarkin header" );
- p_stream->fmt.i_cat = VIDEO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_TARKIN;
+ es_format_Change( &p_stream->fmt, AUDIO_ES, VLC_CODEC_TARKIN );
/* Cheat and get additionnal info ;) */
oggpack_readinit( &opb, oggpacket.packet, oggpacket.bytes);
@@ -1781,12 +1778,11 @@ static int Ogg_FindLogicalStreams( demux_t *p_demux )
if( GetDWLE((oggpacket.packet+96)) == 0x05589f80 &&
oggpacket.bytes >= 184 )
{
- p_stream->fmt.i_cat = VIDEO_ES;
- p_stream->fmt.i_codec =
- VLC_FOURCC( oggpacket.packet[68],
- oggpacket.packet[69],
- oggpacket.packet[70],
- oggpacket.packet[71] );
+ es_format_Change( &p_stream->fmt, VIDEO_ES,
+ VLC_FOURCC( oggpacket.packet[68],
+ oggpacket.packet[69],
+ oggpacket.packet[70],
+ oggpacket.packet[71] ) );
msg_Dbg( p_demux, "found video header of type: %.4s",
(char *)&p_stream->fmt.i_codec );
@@ -1825,7 +1821,7 @@ static int Ogg_FindLogicalStreams( demux_t *p_demux )
int i_extra_size;
unsigned int i_format_tag;
- p_stream->fmt.i_cat = AUDIO_ES;
+ es_format_Change( &p_stream->fmt, AUDIO_ES, 0 );
i_extra_size = GetWLE((oggpacket.packet+140));
if( i_extra_size > 0 && i_extra_size < oggpacket.bytes - 142 )
@@ -1913,7 +1909,7 @@ static int Ogg_FindLogicalStreams( demux_t *p_demux )
st->sh.video.width = GetDWLE( &oggpacket.packet[1+44] );
st->sh.video.height = GetDWLE( &oggpacket.packet[1+48] );
- p_stream->fmt.i_cat = VIDEO_ES;
+ es_format_Change( &p_stream->fmt, VIDEO_ES, 0 );
/* We need to get rid of the header packet */
ogg_stream_packetout( &p_stream->os, &oggpacket );
@@ -1956,7 +1952,7 @@ static int Ogg_FindLogicalStreams( demux_t *p_demux )
st->sh.audio.blockalign = GetWLE( &oggpacket.packet[1+48] );
st->sh.audio.avgbytespersec = GetDWLE( &oggpacket.packet[1+52] );
- p_stream->fmt.i_cat = AUDIO_ES;
+ es_format_Change( &p_stream->fmt, AUDIO_ES, 0 );
/* We need to get rid of the header packet */
ogg_stream_packetout( &p_stream->os, &oggpacket );
@@ -2022,8 +2018,7 @@ static int Ogg_FindLogicalStreams( demux_t *p_demux )
ogg_stream_packetout( &p_stream->os, &oggpacket );
msg_Dbg( p_demux, "found text subtitle header" );
- p_stream->fmt.i_cat = SPU_ES;
- p_stream->fmt.i_codec = VLC_CODEC_SUBT;
+ es_format_Change( &p_stream->fmt, SPU_ES, VLC_CODEC_SUBT );
p_stream->f_rate = 1000; /* granulepos is in millisec */
}
else
@@ -2125,6 +2120,8 @@ static void Ogg_CreateES( demux_t *p_demux )
p_stream->b_reinit = false;
p_stream->b_initializing = false;
p_stream->i_pre_skip = 0;
+ es_format_Change( &p_stream->fmt_old, p_old_stream->fmt.i_cat,
+ p_old_stream->fmt.i_codec );
es_format_Copy( &p_stream->fmt_old, &p_old_stream->fmt );
bool b_resetdecoder = Ogg_LogicalStreamResetEsFormat( p_demux, p_stream );
@@ -2571,8 +2568,7 @@ static bool Ogg_ReadTheoraHeader( logical_stream_t *p_stream,
int i_subminor;
int i_version;
- p_stream->fmt.i_cat = VIDEO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_THEORA;
+ es_format_Change( &p_stream->fmt, VIDEO_ES, VLC_CODEC_THEORA );
/* Signal that we want to keep a backup of the theora
* stream headers. They will be used when switching between
@@ -2642,8 +2638,7 @@ static bool Ogg_ReadDaalaHeader( logical_stream_t *p_stream,
uint8_t i_subminor;
int i_version;
- p_stream->fmt.i_cat = VIDEO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_DAALA;
+ es_format_Change( &p_stream->fmt, VIDEO_ES, VLC_CODEC_DAALA );
/* Signal that we want to keep a backup of the daala
* stream headers. They will be used when switching between
@@ -2698,8 +2693,7 @@ static bool Ogg_ReadVorbisHeader( logical_stream_t *p_stream,
{
oggpack_buffer opb;
- p_stream->fmt.i_cat = AUDIO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_VORBIS;
+ es_format_Change( &p_stream->fmt, AUDIO_ES, VLC_CODEC_VORBIS );
/* Signal that we want to keep a backup of the vorbis
* stream headers. They will be used when switching between
@@ -2760,8 +2754,7 @@ static bool Ogg_ReadSpeexHeader( logical_stream_t *p_stream,
{
oggpack_buffer opb;
- p_stream->fmt.i_cat = AUDIO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_SPEEX;
+ es_format_Change( &p_stream->fmt, AUDIO_ES, VLC_CODEC_SPEEX );
/* Signal that we want to keep a backup of the speex
* stream headers. They will be used when switching between
@@ -2794,8 +2787,7 @@ static void Ogg_ReadOpusHeader( logical_stream_t *p_stream,
{
oggpack_buffer opb;
- p_stream->fmt.i_cat = AUDIO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_OPUS;
+ es_format_Change( &p_stream->fmt, AUDIO_ES, VLC_CODEC_OPUS );
/* Signal that we want to keep a backup of the opus
* stream headers. They will be used when switching between
@@ -2867,8 +2859,7 @@ static bool Ogg_ReadKateHeader( logical_stream_t *p_stream,
int n;
char *psz_desc;
- p_stream->fmt.i_cat = SPU_ES;
- p_stream->fmt.i_codec = VLC_CODEC_KATE;
+ es_format_Change( &p_stream->fmt, SPU_ES, VLC_CODEC_KATE );
/* Signal that we want to keep a backup of the kate
* stream headers. They will be used when switching between
@@ -2934,8 +2925,7 @@ static bool Ogg_ReadVP8Header( demux_t *p_demux, logical_stream_t *p_stream,
/* Mapping version */
if ( p_oggpacket->packet[6] != 0x01 || p_oggpacket->packet[7] != 0x00 )
return false;
- p_stream->fmt.i_cat = VIDEO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_VP8;
+ es_format_Change( &p_stream->fmt, VIDEO_ES, VLC_CODEC_VP8 );
p_stream->i_granule_shift = 32;
p_stream->fmt.video.i_width = GetWBE( &p_oggpacket->packet[8] );
p_stream->fmt.video.i_height = GetWBE( &p_oggpacket->packet[10] );
@@ -2966,80 +2956,70 @@ static void Ogg_ApplyContentType( logical_stream_t *p_stream, const char* psz_va
if( !strncmp(psz_value, "audio/x-wav", 11) )
{
/* n.b. WAVs are unsupported right now */
- p_stream->fmt.i_cat = UNKNOWN_ES;
+ es_format_Change( &p_stream->fmt, UNKNOWN_ES, 0 );
free( p_stream->fmt.psz_description );
p_stream->fmt.psz_description = strdup("WAV Audio (Unsupported)");
}
else if( !strncmp(psz_value, "audio/x-vorbis", 14) ||
!strncmp(psz_value, "audio/vorbis", 12) )
{
- p_stream->fmt.i_cat = AUDIO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_VORBIS;
+ es_format_Change( &p_stream->fmt, AUDIO_ES, VLC_CODEC_VORBIS );
*b_force_backup = true;
}
else if( !strncmp(psz_value, "audio/x-speex", 13) ||
!strncmp(psz_value, "audio/speex", 11) )
{
- p_stream->fmt.i_cat = AUDIO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_SPEEX;
+ es_format_Change( &p_stream->fmt, AUDIO_ES, VLC_CODEC_SPEEX );
*b_force_backup = true;
}
else if( !strncmp(psz_value, "audio/flac", 10) )
{
- p_stream->fmt.i_cat = AUDIO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_FLAC;
+ es_format_Change( &p_stream->fmt, AUDIO_ES, VLC_CODEC_FLAC );
*b_force_backup = true;
}
else if( !strncmp(psz_value, "video/x-theora", 14) ||
!strncmp(psz_value, "video/theora", 12) )
{
- p_stream->fmt.i_cat = VIDEO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_THEORA;
+ es_format_Change( &p_stream->fmt, VIDEO_ES, VLC_CODEC_THEORA );
*b_force_backup = true;
}
else if( !strncmp(psz_value, "video/x-daala", 13) ||
!strncmp(psz_value, "video/daala", 11) )
{
- p_stream->fmt.i_cat = VIDEO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_DAALA;
+ es_format_Change( &p_stream->fmt, VIDEO_ES, VLC_CODEC_DAALA );
*b_force_backup = true;
}
else if( !strncmp(psz_value, "video/x-xvid", 12) )
{
- p_stream->fmt.i_cat = VIDEO_ES;
- p_stream->fmt.i_codec = VLC_FOURCC( 'x','v','i','d' );
+ es_format_Change( &p_stream->fmt, VIDEO_ES, VLC_FOURCC( 'x','v','i','d' ) );
*b_force_backup = true;
}
else if( !strncmp(psz_value, "video/mpeg", 10) )
{
/* n.b. MPEG streams are unsupported right now */
- p_stream->fmt.i_cat = VIDEO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_MPGV;
+ es_format_Change( &p_stream->fmt, VIDEO_ES, VLC_CODEC_MPGV );
}
else if( !strncmp(psz_value, "text/x-cmml", 11) ||
!strncmp(psz_value, "text/cmml", 9) )
{
- p_stream->fmt.i_cat = SPU_ES;
- p_stream->fmt.i_codec = VLC_CODEC_CMML;
+ es_format_Change( &p_stream->fmt, SPU_ES, VLC_CODEC_CMML );
*b_packet_out = true;
}
else if( !strncmp(psz_value, "application/kate", 16) )
{
/* ??? */
- p_stream->fmt.i_cat = UNKNOWN_ES;
- free( p_stream->fmt.psz_description );
+ es_format_Change( &p_stream->fmt, UNKNOWN_ES, 0 );
p_stream->fmt.psz_description = strdup("OGG Kate Overlay (Unsupported)");
}
else if( !strncmp(psz_value, "video/x-vp8", 11) )
{
- p_stream->fmt.i_cat = VIDEO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_VP8;
+ es_format_Change( &p_stream->fmt, VIDEO_ES, VLC_CODEC_VP8 );
}
}
@@ -3429,8 +3409,7 @@ static bool Ogg_ReadDiracHeader( logical_stream_t *p_stream,
if ( p_stream->f_rate == 0 ) return false;
/* probably is an ogg dirac es */
- p_stream->fmt.i_cat = VIDEO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_DIRAC;
+ es_format_Change( &p_stream->fmt, VIDEO_ES, VLC_CODEC_DIRAC );
return true;
}
@@ -3443,8 +3422,7 @@ static bool Ogg_ReadOggSpotsHeader( logical_stream_t *p_stream,
int i_major;
int i_minor;
- p_stream->fmt.i_cat = VIDEO_ES;
- p_stream->fmt.i_codec = VLC_CODEC_OGGSPOTS;
+ es_format_Change( &p_stream->fmt, VIDEO_ES, VLC_CODEC_OGGSPOTS );
/* Signal that we want to keep a backup of the OggSpots
* stream headers. They will be used when switching between
More information about the vlc-commits
mailing list