[FFmpeg-devel] [PATCH] Add DPX decoder rev-9

Michael Niedermayer michaelni
Wed May 27 14:30:36 CEST 2009


On Tue, May 26, 2009 at 05:51:25AM +0200, Jimmy Christensen wrote:
> On 2009-05-25 23:58, Michael Niedermayer wrote:
>> On Mon, May 25, 2009 at 08:54:12AM +0200, Jimmy Christensen wrote:
>>> On 2009-05-15 03:51, Michael Niedermayer wrote:
>>>> On Mon, May 11, 2009 at 11:31:25AM +0200, Jimmy Christensen wrote:
>> [...]
>>>>
>>>>
>>>> [...]
>>>>> +    for (x = 0; x<   s->height; x++) {
>>>>> +        uint8_t *dst = ptr;
>>>>> +        for (y = 0; y<   s->width; y++) {
>>>>
>>>>> +            rgbBuffer = AV_RB32(buf);
>>>>> +            memcpy(&rgb10Field,&rgbBuffer, 4);
>>>>> +            rgb16Field.R = rgb10Field.R * 64; // 10-bit>   16-bit
>>>>> +            rgb16Field.G = rgb10Field.G * 64; // 10-bit>   16-bit
>>>>> +            rgb16Field.B = rgb10Field.B * 64; // 10-bit>   16-bit
>>>>> +            memcpy(dst,&rgb16Field, dstBpp);
>>>>
>>>> not portable
>>>>
>>>
>>> I rewrote a little, but still uses memcpy from rgb16Field to dst, since
>>> that should actually be portable.
>>
>> you will have to quote page and pararaph of the C standard that gurantees
>> bitfields to work the way you seem to belive they do
>>
>
> So the bit masking is fine (RED10, GREEN10 and BLUE10), but I need to 
> change the memcpy?

we need C code that works, any construct that has undefined or implementation
defined behavior is unacceptable. That is with a few exceptions that happen
to be exceedingly inconvenient to avoid or would cause speedloss and happen
to work on all for us relevant implementations, like
signed >> or CHAR_BIT == 8

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

It is not what we do, but why we do it that matters.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090527/f13a6983/attachment.pgp>



More information about the ffmpeg-devel mailing list