Am So., 14. Feb. 2021 um 19:07 Uhr schrieb Vasily Postnicov
<[email protected]>:
>
> Hello. I try to add APE decoder support to my own library of audio
> codecs. Since APE is a closed format, I use ffmpeg as a reference
> trying to understand how it works.

> I cannot understand how this line works in libavcodec/apedec.c:
> s->bdsp.bswap_buf((uint32_t *) s->data, (const uint32_t *) buf, buf_size >> 
> 2);
> I thought it swaps even and odd bytes,

No, bswap_buf() is about doing a byte swap on 32bit data, what
you describe would be a byte swap on 16 bit data.

> but it does something more than
> that. It's written in assembly code which I can not read clearly.

A debugger has many disadvantages over running git grep:
See libavcodec/bswapdsp.c and libavutil/bswap.h

> Also it lacks any documentation.

The function is only for internal use and byte swapping is
assumed to be common knowledge, FFmpeg is supposed
to run on both little- and big-endian hardware.

Carl Eugen
_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to