X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fac3_parser.c;h=9ed6ede5c318766b4580b181ca1ce69464bf9907;hb=f4df5039a791a56de85c64e6b9e4448a221b5c40;hp=1e203ae6ac233df247d799c562dc3f41a45c680d;hpb=27e30c73d722ec13e59753dea91be00859c72bf2;p=ffmpeg diff --git a/libavcodec/ac3_parser.c b/libavcodec/ac3_parser.c index 1e203ae6ac2..9ed6ede5c31 100644 --- a/libavcodec/ac3_parser.c +++ b/libavcodec/ac3_parser.c @@ -201,6 +201,12 @@ static int ac3_sync(uint64_t state, AACAC3ParseContext *hdr_info, AC3HeaderInfo hdr; GetBitContext gbc; + if (tmp.u8[1] == 0x77 && tmp.u8[2] == 0x0b) { + FFSWAP(uint8_t, tmp.u8[1], tmp.u8[2]); + FFSWAP(uint8_t, tmp.u8[3], tmp.u8[4]); + FFSWAP(uint8_t, tmp.u8[5], tmp.u8[6]); + } + init_get_bits(&gbc, tmp.u8+8-AC3_HEADER_SIZE, 54); err = ff_ac3_parse_header(&gbc, &hdr); @@ -234,7 +240,7 @@ static av_cold int ac3_parse_init(AVCodecParserContext *s1) } -AVCodecParser ff_ac3_parser = { +const AVCodecParser ff_ac3_parser = { .codec_ids = { AV_CODEC_ID_AC3, AV_CODEC_ID_EAC3 }, .priv_data_size = sizeof(AACAC3ParseContext), .parser_init = ac3_parse_init,