[FFmpeg-devel] [PATCH] wmv3 encoder : msmpeg4.c changes
Denis Fortin
fortin
Thu Jun 21 21:29:05 CEST 2007
Michael Niedermayer a ?crit :
> Hi
>
> On Tue, Jun 19, 2007 at 09:54:48PM +0200, Denis Fortin wrote:
>> This patch includes changes useful for wmv3 encoder.
>> Remove some static inline (this has been previously discussed and
>> benchmarked)
>> Add wmv3 specific behavior (it won't affect anything else)
>
> [...]
>> @@ -593,7 +593,7 @@
>> s->misc_bits += get_bits_diff(s);
>>
>> for (i = 0; i < 6; i++) {
>> - msmpeg4_encode_block(s, block[i], i);
>> + ff_msmpeg4_encode_block(s, block[i], i);
>> }
>> s->i_tex_bits += get_bits_diff(s);
>> s->i_count++;
>> @@ -783,7 +783,8 @@
>> static void msmpeg4_encode_dc(MpegEncContext * s, int level, int n, int *dir_ptr)
>> {
>> int sign, code;
>> - int pred;
>> + int pred, extquant;
>> + int extrabits = 0;
>>
>> if(s->msmpeg4_version==1){
>> int32_t *dc_val;
>> @@ -825,7 +826,16 @@
>> code = level;
>> if (code > DC_MAX)
>> code = DC_MAX;
>> -
>> + else if( s->msmpeg4_version>=6 ) {
>> + if( s->qscale == 1 ) {
>> + extquant = (level + 3) & 0x3;
>> + code = ((level+3)>>2);
>> + } else if( s->qscale == 2 ) {
>> + extquant = (level + 1) & 0x1;
>> + code = ((level+1)>>1);
>> + }
>> + }
>> +
>> if (s->dc_table_index == 0) {
>
> trailing whitespace, and the static X -> ff_X change belongs into a
> seperate patch
>
>
> [...]
>> @@ -937,10 +952,18 @@
>> if(s->esc3_level_length==0){
>> s->esc3_level_length=8;
>> s->esc3_run_length= 6;
>> - if(s->qscale<8)
>> - put_bits(&s->pb, 6, 3);
>> - else
>> - put_bits(&s->pb, 8, 3);
>> + if(s->msmpeg4_version<6) {
>> + if(s->qscale<8)
>> + put_bits(&s->pb, 6, 3);
>> + else
>> + put_bits(&s->pb, 8, 3);
>> + } else {
>> + if(s->qscale<8)
>> + put_bits(&s->pb,5,0);
>> + else
>> + put_bits(&s->pb,6,0);
>> + put_bits(&s->pb,2,3);
>> + }
>
> ideg ...
>
> that is just
>
> if(s->qscale<8)
> put_bits(&s->pb, 6 + (s->msmpeg4_version>=6), 3);
> else
> put_bits(&s->pb, 8, 3);
>
> [...]
Updated patch with comments addressed
Denis
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mswmv3.patch
Type: text/x-patch
Size: 2645 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20070621/b7a3f054/attachment.bin>
More information about the ffmpeg-devel
mailing list