[vlc-devel] commit: Use the decoder output format instead of the input format. ( Laurent Aimar )
git version control
git at videolan.org
Sun Feb 15 00:44:15 CET 2009
vlc | branch: master | Laurent Aimar <fenrir at videolan.org> | Sat Feb 14 20:00:50 2009 +0100| [3dc6aa515a0d632a5db016669e648917be2008c1] | committer: Laurent Aimar
Use the decoder output format instead of the input format.
It fixes a logical bug as the input and output format could be different.
(Not plugin that does that yet).
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3dc6aa515a0d632a5db016669e648917be2008c1
---
src/input/decoder.c | 17 +++++++++--------
1 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/src/input/decoder.c b/src/input/decoder.c
index 47538bb..adc4f69 100644
--- a/src/input/decoder.c
+++ b/src/input/decoder.c
@@ -303,8 +303,9 @@ decoder_t *input_DecoderNew( input_thread_t *p_input,
}
p_dec->p_owner->p_clock = p_clock;
+ assert( p_dec->fmt_out.i_cat != UNKNOWN_ES );
- if( fmt->i_cat == AUDIO_ES )
+ if( p_dec->fmt_out.i_cat == AUDIO_ES )
i_priority = VLC_THREAD_PRIORITY_AUDIO;
else
i_priority = VLC_THREAD_PRIORITY_VIDEO;
@@ -586,7 +587,7 @@ void input_DecoderFrameNext( decoder_t *p_dec, mtime_t *pi_duration )
*pi_duration = 0;
vlc_mutex_lock( &p_owner->lock );
- if( p_dec->fmt_in.i_cat == VIDEO_ES )
+ if( p_dec->fmt_out.i_cat == VIDEO_ES )
{
if( p_owner->b_paused && p_owner->p_vout )
{
@@ -1011,13 +1012,13 @@ static void DecoderOutputChangePause( decoder_t *p_dec, bool b_paused, mtime_t i
* - for sout it is useless
* - for subs, it is done by the vout
*/
- if( p_dec->fmt_in.i_cat == AUDIO_ES )
+ if( p_dec->fmt_out.i_cat == AUDIO_ES )
{
if( p_owner->p_aout && p_owner->p_aout_input )
aout_DecChangePause( p_owner->p_aout, p_owner->p_aout_input,
b_paused, i_date );
}
- else if( p_dec->fmt_in.i_cat == VIDEO_ES )
+ else if( p_dec->fmt_out.i_cat == VIDEO_ES )
{
if( p_owner->p_vout )
vout_ChangePause( p_owner->p_vout, b_paused, i_date );
@@ -1975,15 +1976,15 @@ static void DecoderProcess( decoder_t *p_dec, block_t *p_block )
p_block->i_flags &= ~BLOCK_FLAG_CORE_PRIVATE_MASK;
}
- if( p_dec->fmt_in.i_cat == AUDIO_ES )
+ if( p_dec->fmt_out.i_cat == AUDIO_ES )
{
DecoderProcessAudio( p_dec, p_block, b_flush );
}
- else if( p_dec->fmt_in.i_cat == VIDEO_ES )
+ else if( p_dec->fmt_out.i_cat == VIDEO_ES )
{
DecoderProcessVideo( p_dec, p_block, b_flush );
}
- else if( p_dec->fmt_in.i_cat == SPU_ES )
+ else if( p_dec->fmt_out.i_cat == SPU_ES )
{
DecoderProcessSpu( p_dec, p_block, b_flush );
}
@@ -2066,7 +2067,7 @@ static void DeleteDecoder( decoder_t * p_dec )
}
#endif
- if( p_dec->fmt_in.i_cat == SPU_ES )
+ if( p_dec->fmt_out.i_cat == SPU_ES )
{
vout_thread_t *p_vout;
More information about the vlc-devel
mailing list