• Anssi Hannula's avatar
    spdifenc: fix byte order on big-endian systems · 57f2c9ae
    Anssi Hannula authored
    There is a check for HAVE_BIGENDIAN when outputting the IEC 61937
    stream. On big-endian systems the payload data is not byteswapped,
    causing in effect the outputted payload data to be in a different byte
    order on big-endian than on little-endian systems.
    However, the IEC 61937 preamble (and the final odd byte if present) is
    always outputted in the same byte order. This means that on big-endian
    systems the headers have a different byte order than the payload,
    preventing useful use of the output.
    Fix that by outputting the data in a format suitable for sending to an
    audio device in S16LE format by default. Output as big-endian (S16BE)
    is added as an AVOption. This makes the muxer output the same on all
    archs by default.
    Signed-off-by: default avatarJanne Grunau <janne-ffmpeg@jannau.net>
spdifenc.c 19.6 KB