[FFmpeg-devel] [PATCH] Fix roq encoding

Vitor Sessak vitor1001
Tue Jul 22 23:49:11 CEST 2008


Michael Niedermayer wrote:
> On Sat, Jul 19, 2008 at 04:25:17AM +0200, Vitor Sessak wrote:
>> Michael Niedermayer wrote:
>>> On Sat, Jul 19, 2008 at 12:23:28AM +0200, Vitor Sessak wrote:
>>>> Hi,
>>>>
>>>> The following patch fix the issue 548. Not that I fully understand why
>>>> before it was ok not to set avctx->coded_frame and now it crashes...
>>>>
>>>> -Vitor
>>>>
>>>> PS: nice to know there is someone who used this encoder...
>>>> Index: libavcodec/roqvideoenc.c
>>>> ===================================================================
>>>> --- libavcodec/roqvideoenc.c	(revision 14271)
>>>> +++ libavcodec/roqvideoenc.c	(working copy)
>>>> @@ -1037,6 +1037,8 @@
>>>>      /* Encode the actual frame */
>>>>      roq_encode_video(enc);
>>>>  +    avctx->coded_frame = enc->last_frame;
>>> I think it should be set to current_frame before the pointers
>>> are swapped, that would be cleaner
>> I agree, like the attached patch?
> 
> yes, patch ok

Mike has just added a testcase for RoQ encoding in FATE and it shows 
that roq encoding segfaults on ICC. While trying to fix it I found a few 
bugs in the codebook generator that exists also in gcc:

fixroq1.diff: The algorithm involves picking three different codebook 
centroids ("high utility", "low utility" and "closest to the low utility 
one"). This enforces that they are really different.

fixroq2.diff: When picking a "high utility centroid" do not pick one 
that has no corresponding points. Not only it is the worse possible 
pick, but also I wrote my code without considering this case.

fixroq3.diff: Workaround an ICC bug.

-Vitor


-------------- next part --------------
A non-text attachment was scrubbed...
Name: fixroq1.diff
Type: text/x-patch
Size: 574 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080722/9a9a17e4/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fixroq2.diff
Type: text/x-patch
Size: 551 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080722/9a9a17e4/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fixroq3.diff
Type: text/x-patch
Size: 635 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080722/9a9a17e4/attachment-0002.bin>



More information about the ffmpeg-devel mailing list