static int dca_convert_bitstream(uint8_t * src, int src_size, uint8_t * dst,
                          int max_size)
{
    uint32_t mrk;
    int i, tmp;
    uint16_t *ssrc = (uint16_t *) src, *sdst = (uint16_t *) dst;
    PutBitContext pb;
    mrk = AV_RB32(src);
    switch (mrk) {
    case DCA_MARKER_RAW_BE:
        memcpy(dst, src, FFMIN(src_size, max_size));
        return FFMIN(src_size, max_size);
    case DCA_MARKER_RAW_LE:
        for (i = 0; i < (FFMIN(src_size, max_size) + 1) >> 1; i++)
            *sdst++ = bswap_16(*ssrc++);
        return FFMIN(src_size, max_size);
    case DCA_MARKER_14B_BE:
    case DCA_MARKER_14B_LE:
        init_put_bits(&pb, dst, max_size);
        for (i = 0; i < (src_size + 1) >> 1; i++, src += 2) {
            tmp = ((mrk == DCA_MARKER_14B_BE) ? AV_RB16(src) : AV_RL16(src)) & 0x3FFF;
            put_bits(&pb, 14, tmp);
        }
        flush_put_bits(&pb);
        return (put_bits_count(&pb) + 7) >> 3;
    default:
    }
}
static int dca_convert_bitstream(uint8_t * src, int src_size, uint8_t * dst,
                          int max_size)
{
    uint32_t mrk;
    int i, tmp;
    uint16_t *ssrc = (uint16_t *) src, *sdst = (uint16_t *) dst;
    PutBitContext pb;
    mrk = AV_RB32(src);
    switch (mrk) {
    case DCA_MARKER_RAW_BE:
        memcpy(dst, src, FFMIN(src_size, max_size));
        return FFMIN(src_size, max_size);
    case DCA_MARKER_RAW_LE:
        for (i = 0; i < (FFMIN(src_size, max_size) + 1) >> 1; i++)
            *sdst++ = bswap_16(*ssrc++);
        return FFMIN(src_size, max_size);
    case DCA_MARKER_14B_BE:
    case DCA_MARKER_14B_LE:
        init_put_bits(&pb, dst, max_size);
        for (i = 0; i < (src_size + 1) >> 1; i++, src += 2) {
            tmp = ((mrk == DCA_MARKER_14B_BE) ? AV_RB16(src) : AV_RL16(src)) & 0x3FFF;
            put_bits(&pb, 14, tmp);
        }
        flush_put_bits(&pb);
        return (put_bits_count(&pb) + 7) >> 3;
    default:
    }
}
static int FUNC_0(uint8_t * VAR_0, int VAR_1, uint8_t * VAR_2,
                          int VAR_3)
{
    uint32_t mrk;
    int VAR_4, VAR_5;
    uint16_t *ssrc = (uint16_t *) VAR_0, *sdst = (uint16_t *) VAR_2;
    PutBitContext pb;
    mrk = AV_RB32(VAR_0);
    switch (mrk) {
    case DCA_MARKER_RAW_BE:
        memcpy(VAR_2, VAR_0, FFMIN(VAR_1, VAR_3));
        return FFMIN(VAR_1, VAR_3);
    case DCA_MARKER_RAW_LE:
        for (VAR_4 = 0; VAR_4 < (FFMIN(VAR_1, VAR_3) + 1) >> 1; VAR_4++)
            *sdst++ = bswap_16(*ssrc++);
        return FFMIN(VAR_1, VAR_3);
    case DCA_MARKER_14B_BE:
    case DCA_MARKER_14B_LE:
        init_put_bits(&pb, VAR_2, VAR_3);
        for (VAR_4 = 0; VAR_4 < (VAR_1 + 1) >> 1; VAR_4++, VAR_0 += 2) {
            VAR_5 = ((mrk == DCA_MARKER_14B_BE) ? AV_RB16(VAR_0) : AV_RL16(VAR_0)) & 0x3FFF;
            put_bits(&pb, 14, VAR_5);
        }
        flush_put_bits(&pb);
        return (put_bits_count(&pb) + 7) >> 3;
    default:
    }
}
static int FUNC_0(uint8_t * VAR_0, int VAR_1, uint8_t * VAR_2,
int VAR_3)
{ uint32_t mrk; int VAR_4, VAR_5; uint16_t *ssrc = (uint16_t *) VAR_0, *sdst = (uint16_t *) VAR_2; PutBitContext pb; mrk = AV_RB32(VAR_0); switch (mrk) { case DCA_MARKER_RAW_BE:
memcpy(VAR_2, VAR_0, FFMIN(VAR_1, VAR_3)); return FFMIN(VAR_1, VAR_3); case DCA_MARKER_RAW_LE:
for (VAR_4 = 0; VAR_4 < (FFMIN(VAR_1, VAR_3) + 1) >> 1; VAR_4++) *sdst++ = bswap_16(*ssrc++); return FFMIN(VAR_1, VAR_3); case DCA_MARKER_14B_BE:
case DCA_MARKER_14B_LE:
init_put_bits(&pb, VAR_2, VAR_3); for (VAR_4 = 0; VAR_4 < (VAR_1 + 1) >> 1; VAR_4++, VAR_0 += 2) { VAR_5 = ((mrk == DCA_MARKER_14B_BE) ? AV_RB16(VAR_0) : AV_RL16(VAR_0)) & 0x3FFF; put_bits(&pb, 14, VAR_5); } flush_put_bits(&pb); return (put_bits_count(&pb) + 7) >> 3; default:
} }