[FFmpeg-devel] [PATCH]lavc/pcm-bluray: Do not use incompatible pointers on big-endian.

Hendrik Leppkes h.leppkes at gmail.com
Mon Nov 6 12:56:21 EET 2017


On Wed, Nov 1, 2017 at 7:01 PM, Carl Eugen Hoyos <ceffmpeg at gmail.com> wrote:
> 2017-11-01 18:31 GMT+01:00 Hendrik Leppkes <h.leppkes at gmail.com>:
>> On Wed, Nov 1, 2017 at 6:25 PM, Carl Eugen Hoyos <ceffmpeg at gmail.com> wrote:
>>> 2017-11-01 18:16 GMT+01:00 Hendrik Leppkes <h.leppkes at gmail.com>:
>>>> On Wed, Nov 1, 2017 at 5:16 PM, Carl Eugen Hoyos <ceffmpeg at gmail.com> wrote:
>>>>> Hi!
>>>>>
>>>>> Attached patch silences two gcc warnings, no sample for odd channel count found.
>>>>>
>>>>>  #if HAVE_BIGENDIAN
>>>>> -                    bytestream2_get_buffer(&gb, dst16, avctx->channels * 2);
>>>>> -                    dst16 += avctx->channels;
>>>>> +                    uint8_t *dst = frame->data[0];
>>>>> +                    bytestream2_get_buffer(&gb, frame->data[0], avctx->channels * 2);
>>>>> +                    dst += avctx->channels * 2;
>>>>>  #else
>>>>>                      channel = avctx->channels;
>>>>>                      do {
>>>>
>>>> This hunk seems fishy. dst is only ever set, never read, and this code
>>>> is executed in a loop but always writes to the same position.
>>>
>>> I had sent the wrong version, please review this one.
>>
>> That still won't work, dst is declared within the loop, so its reset
>> back to the start at the beginning of the frame each iteration.
>
> New try attached.
>

The indentation of the variable declaration seems off. Shouldn't it be
on the level of the do?
Otherwise it should probably work fine.

Wouldn't it be easier to cast the type, though? Just wondering, not
blocking the patch.

- Hendrik


More information about the ffmpeg-devel mailing list