[FFmpeg-devel] [PATCH] extract bit rate calculation into separate function

Robert Krüger krueger
Thu Nov 12 09:20:12 CET 2009


On 12.11.2009, at 09:13, Robert Kr?ger wrote:

> Hi,
>
> On 12.11.2009, at 01:42, Stefano Sabatini wrote:
>
>> On date Wednesday 2009-11-11 12:41:33 +0100, Robert Kr?ger encoded:
>> [...]
>>> Index: libavcodec/avcodec.h
>>> ===================================================================
>>> --- libavcodec/avcodec.h	(revision 20511)
>>> +++ libavcodec/avcodec.h	(working copy)
>
>>> +    int bits_per_sample;
>>> +
>>> +    switch(ctx->codec_type) {
>>> +    case CODEC_TYPE_VIDEO:
>>> +  	    bitrate = ctx->bit_rate;
>>> +        break;
>>> +    case CODEC_TYPE_AUDIO:
>>> +    	bits_per_sample = av_get_bits_per_sample(ctx->codec_id);
>>> +    	bitrate = bits_per_sample ? ctx->sample_rate * ctx->channels *
>>> bits_per_sample : ctx->bit_rate;
>>> +        break;
>>
>>> +    case CODEC_TYPE_DATA:
>>> +        bitrate = ctx->bit_rate;
>>> +        break;
>>> +    case CODEC_TYPE_SUBTITLE:
>>> +        bitrate = ctx->bit_rate;
>>> +        break;
>>> +    case CODEC_TYPE_ATTACHMENT:
>>> +        bitrate = ctx->bit_rate;
>>> +        break;
>>> +    default:
>>> +        break;
>>> +    }
>>> +    return bitrate;
>>> +}
>>> +
>>
>> VIDEO, DATA, SUBTITLE, ATTACHMENT and default cases can be  
>> factorized.
>>
>> Maybe it's simpler:
>> if (type == CODEC_AUDIO && (bits_per_sample = ...))
>>  bitrate = ...
>> else
>>  bitrate = ctx->bit_rate;
>>
> hmm, I tried not to change the behaviour of the code I extracted as  
> I only wanted to refactor and what you suggest would change the  
> behaviour for CODEC_TYPE_UNKNOWN ,  CODEC_TYPE_ATTACHMENT and  
> CODEC_TYPE_NB as it would no longer return 0 but return ctx- 
> >bit_rate. If that makes sense, I cannot judge. I'll change it  
> accordingly, if you say it does.

that should only be CODEC_TYPE_UNKNOWN and CODEC_TYPE_NB





More information about the ffmpeg-devel mailing list