• Anssi Hannula's avatar
    spdifenc: fix byte order on big-endian systems · af1e8ffd
    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: 's avatarJanne Grunau <janne-ffmpeg@jannau.net>
    (cherry picked from commit 57f2c9ae)
    af1e8ffd
spdifenc.c 19.6 KB