| @@ -2987,6 +2987,7 @@ static int mov_finalize_stsd_codec(MOVContext *c, AVIOContext *pb, · 2986 unmodified lines |
| 2987 | 2987 | case AV_CODEC_ID_VP9: |
| 2988 | 2988 | sti->need_parsing = AVSTREAM_PARSE_FULL; |
| 2989 | 2989 | break; |
| 2990 | + case AV_CODEC_ID_APV: |
| 2990 | 2991 | case AV_CODEC_ID_EVC: |
| 2991 | 2992 | case AV_CODEC_ID_AV1: |
| 2992 | 2993 | /* field_order detection of H264 requires parsing */ |
| @@ -9325,6 +9326,7 @@ static const MOVParseTableEntry mov_default_parse_table[] = { · 6332 unmodified lines |
| 9325 | 9326 | { MKTAG('a','m','v','e'), mov_read_amve }, /* ambient viewing environment box */ |
| 9326 | 9327 | { MKTAG('l','h','v','C'), mov_read_lhvc }, |
| 9327 | 9328 | { MKTAG('l','v','c','C'), mov_read_glbl }, |
| 9329 | +{ MKTAG('a','p','v','C'), mov_read_glbl }, |
| 9328 | 9330 | #if CONFIG_IAMFDEC |
| 9329 | 9331 | { MKTAG('i','a','c','b'), mov_read_iacb }, |
| 9330 | 9332 | #endif |
| @@ -11032,7 +11034,10 @@ static int mov_read_packet(AVFormatContext *s, AVPacket *pkt) · 1701 unmodified lines |
| 11032 | 11034 | return FFERROR_REDO; |
| 11033 | 11035 | } |
| 11034 | 11036 | #endif |
| 11035 | | − else |
| 11037 | + else if (st->codecpar->codec_id == AV_CODEC_ID_APV && sample->size > 4) { |
| 11038 | + const uint32_t au_size = avio_rb32(sc->pb); |
| 11039 | + ret = av_get_packet(sc->pb, pkt, au_size); |
| 11040 | + } else |
| 11036 | 11041 | ret = av_get_packet(sc->pb, pkt, sample->size); |
| 11037 | 11042 | if (ret < 0) { |
| 11038 | 11043 | if (should_retry(sc->pb, ret)) { |