1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

avcodec/utils: Support APTX (HD) in av_get_audio_frame_duration()

APTX decodes four bytes of input to four stereo samples; APTX HD
does the same with six bytes of input. So it can be easily supported
in av_get_audio_frame_duration().

This fixes invalid durations and (derived) timestamps of demuxed
APTX HD packets and therefore fixed the timestamp in the aptx-hd
FATE test.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2021-08-29 18:29:34 +02:00
parent 9884d14711
commit 6f22d1965e
2 changed files with 14 additions and 7 deletions

View File

@ -682,6 +682,10 @@ static int get_audio_frame_duration(enum AVCodecID id, int sr, int ch, int ba,
return 256 * (frame_bytes / 64);
if (id == AV_CODEC_ID_RA_144)
return 160 * (frame_bytes / 20);
if (id == AV_CODEC_ID_APTX)
return 4 * (frame_bytes / 4);
if (id == AV_CODEC_ID_APTX_HD)
return 4 * (frame_bytes / 6);
if (bps > 0) {
/* calc from frame_bytes and bits_per_coded_sample */

View File

@ -6,10 +6,13 @@
#sample_rate 0: 44100
#channel_layout_name 0: 2 channels
0, 0, 0, 1024, 8192, 0xa99888c6
0, 1536, 1536, 1024, 8192, 0xc3e03a3c
0, 3072, 3072, 1024, 8192, 0x3f06e090
0, 4608, 4608, 1024, 8192, 0x92fb18f3
0, 6144, 6144, 1024, 8192, 0x3d5603a2
0, 7680, 7680, 1024, 8192, 0xcc3d3101
0, 9216, 9216, 1024, 8192, 0xbcc022ef
0, 10752, 10752, 273, 2184, 0x9873af57
0, 1024, 1024, 1024, 8192, 0xc3e03a3c
0, 2048, 2048, 1024, 8192, 0x3f06e090
0, 3072, 3072, 1024, 8192, 0x92fb18f3
0, 4096, 4096, 1024, 8192, 0x3d5603a2
0, 5120, 5120, 1024, 8192, 0xcc3d3101
0, 6144, 6144, 1024, 8192, 0xbcc022ef
0, 7168, 7168, 1024, 8192, 0x600cbb73
0, 8192, 8192, 1024, 8192, 0xdc938cbb
0, 9216, 9216, 1024, 8192, 0x37d968bc
0, 10240, 10240, 785, 6280, 0x48243144