[FFmpeg-cvslog] r22007 - trunk/ffplay.c

David Conrad lessen42
Fri Mar 5 00:04:47 CET 2010


On Feb 23, 2010, at 12:09 PM, michael wrote:

> Author: michael
> Date: Tue Feb 23 18:09:53 2010
> New Revision: 22007
> 
> Log:
> Dont modify wanted_stream.
> 
> Modified:
>   trunk/ffplay.c
> 
> Modified: trunk/ffplay.c
> ==============================================================================
> --- trunk/ffplay.c	Tue Feb 23 17:56:23 2010	(r22006)
> +++ trunk/ffplay.c	Tue Feb 23 18:09:53 2010	(r22007)
> @@ -1980,6 +1980,7 @@ static int decode_thread(void *arg)
>     AVFormatContext *ic;
>     int err, i, ret;
>     int st_index[CODEC_TYPE_NB];
> +    int st_count[CODEC_TYPE_NB]={0};
>     AVPacket pkt1, *pkt = &pkt1;
>     AVFormatParameters params, *ap = ¶ms;
>     int eof=0;
> @@ -2045,18 +2046,20 @@ static int decode_thread(void *arg)
>     for(i = 0; i < ic->nb_streams; i++) {
>         AVCodecContext *avctx = ic->streams[i]->codec;
>         ic->streams[i]->discard = AVDISCARD_ALL;
> +        if(avctx->codec_type >= (unsigned)CODEC_TYPE_NB)
> +            exit(1);

Why error out if the codec_type is unknown? (this broke ogg with any unhandled tracks since we don't know codec_type unless we can handle the track)

> +        if(st_count[avctx->codec_type]++ != wanted_stream[avctx->codec_type] && wanted_stream[avctx->codec_type] >= 0)
> +            continue;
> +
>         switch(avctx->codec_type) {
>         case CODEC_TYPE_AUDIO:
> -            if (wanted_stream[CODEC_TYPE_AUDIO]-- >= 0 && !audio_disable)
> +            if (!audio_disable)
>                 st_index[CODEC_TYPE_AUDIO] = i;
>             break;
>         case CODEC_TYPE_VIDEO:
> -            if (wanted_stream[CODEC_TYPE_VIDEO]-- >= 0 && !video_disable)
> -                st_index[CODEC_TYPE_VIDEO] = i;
> -            break;
>         case CODEC_TYPE_SUBTITLE:
> -            if (wanted_stream[CODEC_TYPE_SUBTITLE]-- >= 0 && !video_disable)
> -                st_index[CODEC_TYPE_SUBTITLE] = i;
> +            if (!video_disable)
> +                st_index[avctx->codec_type] = i;
>             break;
>         default:
>             break;
> _______________________________________________
> ffmpeg-cvslog mailing list
> ffmpeg-cvslog at mplayerhq.hu
> https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-cvslog




More information about the ffmpeg-cvslog mailing list