This gives more accurate time stamps that do not need to be rounded.
Updating FATE seek-ac3_ac3 test accordingly.
---
libavformat/ac3dec.c | 19 +++++++++++++-
tests/ref/seek/ac3_ac3 | 60 ++++++++++++++++++++++++------------------------
2 files changed, 47 insertions(+), 32 deletions(-)
diff --git a/libavformat/ac3dec.c b/libavformat/ac3dec.c
index 4078b1b..f9bf443 100644
--- a/libavformat/ac3dec.c
+++ b/libavformat/ac3dec.c
@@ -22,6 +22,7 @@
#include "libavutil/crc.h"
#include "libavcodec/ac3_parser.h"
#include "avformat.h"
+#include "internal.h"
#include "rawdec.h"
static int ac3_eac3_probe(AVProbeData *p, enum CodecID expected_codec_id)
@@ -64,6 +65,20 @@ static int ac3_eac3_probe(AVProbeData *p, enum CodecID
expected_codec_id)
else return 0;
}
+static int ac3_eac3_read_header(AVFormatContext *s)
+{
+ int ret;
+ if ((ret = ff_raw_audio_read_header(s)) < 0)
+ return ret;
+
+ // for time base, use LCM of all possible samples-per-frame and sample
rates
+ // samples-per-frame: 256, 512, 768, 1536
+ // sample rates: 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100,
48000
+ avpriv_set_pts_info(s->streams[0], 64, 1, 28224000);
+
+ return 0;
+}
+
#if CONFIG_AC3_DEMUXER
static int ac3_probe(AVProbeData *p)
{
@@ -74,7 +89,7 @@ AVInputFormat ff_ac3_demuxer = {
.name = "ac3",
.long_name = NULL_IF_CONFIG_SMALL("raw AC-3"),
.read_probe = ac3_probe,
- .read_header = ff_raw_audio_read_header,
+ .read_header = ac3_eac3_read_header,
.read_packet = ff_raw_read_partial_packet,
.flags= AVFMT_GENERIC_INDEX,
.extensions = "ac3",
@@ -92,7 +107,7 @@ AVInputFormat ff_eac3_demuxer = {
.name = "eac3",
.long_name = NULL_IF_CONFIG_SMALL("raw E-AC-3"),
.read_probe = eac3_probe,
- .read_header = ff_raw_audio_read_header,
+ .read_header = ac3_eac3_read_header,
.read_packet = ff_raw_read_partial_packet,
.flags= AVFMT_GENERIC_INDEX,
.extensions = "eac3",
diff --git a/tests/ref/seek/ac3_ac3 b/tests/ref/seek/ac3_ac3
index 167dc8d..9a399b8 100644
--- a/tests/ref/seek/ac3_ac3
+++ b/tests/ref/seek/ac3_ac3
@@ -2,48 +2,48 @@ ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:
0 size: 556
ret: 0 st:-1 flags:0 ts:-1.000000
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size:
556
ret: 0 st:-1 flags:1 ts: 1.894167
-ret: 0 st: 0 flags:1 dts: 1.880400 pts: 1.880400 pos: 30092 size:
558
-ret: 0 st: 0 flags:0 ts: 0.788333
-ret: 0 st: 0 flags:1 dts: 0.800911 pts: 0.800911 pos: 12818 size:
556
-ret:-1 st: 0 flags:1 ts:-0.317500
+ret: 0 st: 0 flags:1 dts: 1.880816 pts: 1.880816 pos: 30092 size:
558
+ret: 0 st: 0 flags:0 ts: 0.788334
+ret: 0 st: 0 flags:1 dts: 0.801088 pts: 0.801088 pos: 12818 size:
556
+ret:-1 st: 0 flags:1 ts:-0.317499
ret: 0 st:-1 flags:0 ts: 2.576668
-ret: 0 st: 0 flags:1 dts: 2.576844 pts: 2.576844 pos: 41238 size:
558
+ret: 0 st: 0 flags:1 dts: 2.577415 pts: 2.577415 pos: 41238 size:
558
ret: 0 st:-1 flags:1 ts: 1.470835
-ret: 0 st: 0 flags:1 dts: 1.462533 pts: 1.462533 pos: 23406 size:
556
-ret: 0 st: 0 flags:0 ts: 0.365000
-ret: 0 st: 0 flags:1 dts: 0.383044 pts: 0.383044 pos: 6130 size:
558
-ret:-1 st: 0 flags:1 ts:-0.740833
+ret: 0 st: 0 flags:1 dts: 1.462857 pts: 1.462857 pos: 23406 size:
556
+ret: 0 st: 0 flags:0 ts: 0.365002
+ret: 0 st: 0 flags:1 dts: 0.383129 pts: 0.383129 pos: 6130 size:
558
+ret:-1 st: 0 flags:1 ts:-0.740831
ret: 0 st:-1 flags:0 ts: 2.153336
-ret: 0 st: 0 flags:1 dts: 2.158978 pts: 2.158978 pos: 34552 size:
556
+ret: 0 st: 0 flags:1 dts: 2.159456 pts: 2.159456 pos: 34552 size:
556
ret: 0 st:-1 flags:1 ts: 1.047503
-ret: 0 st: 0 flags:1 dts: 1.044667 pts: 1.044667 pos: 16718 size:
558
-ret: 0 st: 0 flags:0 ts:-0.058333
+ret: 0 st: 0 flags:1 dts: 1.044898 pts: 1.044898 pos: 16718 size:
558
+ret: 0 st: 0 flags:0 ts:-0.058330
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size:
556
-ret: 0 st: 0 flags:1 ts: 2.835833
-ret: 0 st: 0 flags:1 dts: 2.820600 pts: 2.820600 pos: 45140 size:
556
+ret: 0 st: 0 flags:1 ts: 2.835837
+ret: 0 st: 0 flags:1 dts: 2.821224 pts: 2.821224 pos: 45140 size:
556
ret: 0 st:-1 flags:0 ts: 1.730004
-ret: 0 st: 0 flags:1 dts: 1.741111 pts: 1.741111 pos: 27864 size:
556
+ret: 0 st: 0 flags:1 dts: 1.741497 pts: 1.741497 pos: 27864 size:
556
ret: 0 st:-1 flags:1 ts: 0.624171
-ret: 0 st: 0 flags:1 dts: 0.591978 pts: 0.591978 pos: 9474 size:
556
-ret: 0 st: 0 flags:0 ts:-0.481667
+ret: 0 st: 0 flags:1 dts: 0.592109 pts: 0.592109 pos: 9474 size:
556
+ret: 0 st: 0 flags:0 ts:-0.481662
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size:
556
-ret: 0 st: 0 flags:1 ts: 2.412500
-ret: 0 st: 0 flags:1 dts: 2.402733 pts: 2.402733 pos: 38452 size:
558
+ret: 0 st: 0 flags:1 ts: 2.412505
+ret: 0 st: 0 flags:1 dts: 2.403265 pts: 2.403265 pos: 38452 size:
558
ret: 0 st:-1 flags:0 ts: 1.306672
-ret: 0 st: 0 flags:1 dts: 1.323244 pts: 1.323244 pos: 21176 size:
558
+ret: 0 st: 0 flags:1 dts: 1.323537 pts: 1.323537 pos: 21176 size:
558
ret: 0 st:-1 flags:1 ts: 0.200839
-ret: 0 st: 0 flags:1 dts: 0.174111 pts: 0.174111 pos: 2786 size:
558
-ret: 0 st: 0 flags:0 ts:-0.904989
+ret: 0 st: 0 flags:1 dts: 0.174150 pts: 0.174150 pos: 2786 size:
558
+ret: 0 st: 0 flags:0 ts:-0.904994
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size:
556
-ret: 0 st: 0 flags:1 ts: 1.989178
-ret: 0 st: 0 flags:1 dts: 1.984867 pts: 1.984867 pos: 31764 size:
558
+ret: 0 st: 0 flags:1 ts: 1.989173
+ret: 0 st: 0 flags:1 dts: 1.985306 pts: 1.985306 pos: 31764 size:
558
ret: 0 st:-1 flags:0 ts: 0.883340
-ret: 0 st: 0 flags:1 dts: 0.905378 pts: 0.905378 pos: 14488 size:
558
+ret: 0 st: 0 flags:1 dts: 0.905578 pts: 0.905578 pos: 14488 size:
558
ret:-1 st:-1 flags:1 ts:-0.222493
-ret: 0 st: 0 flags:0 ts: 2.671678
-ret: 0 st: 0 flags:1 dts: 2.681311 pts: 2.681311 pos: 42910 size:
558
-ret: 0 st: 0 flags:1 ts: 1.565844
-ret: 0 st: 0 flags:1 dts: 1.532178 pts: 1.532178 pos: 24520 size:
558
+ret: 0 st: 0 flags:0 ts: 2.671674
+ret: 0 st: 0 flags:1 dts: 2.681905 pts: 2.681905 pos: 42910 size:
558
+ret: 0 st: 0 flags:1 ts: 1.565841
+ret: 0 st: 0 flags:1 dts: 1.532517 pts: 1.532517 pos: 24520 size:
558
ret: 0 st:-1 flags:0 ts: 0.460008
-ret: 0 st: 0 flags:1 dts: 0.487511 pts: 0.487511 pos: 7802 size:
556
+ret: 0 st: 0 flags:1 dts: 0.487619 pts: 0.487619 pos: 7802 size:
556
ret:-1 st:-1 flags:1 ts:-0.645825
--
1.7.1
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel