summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fftools/ffmpeg.c34
-rw-r--r--tests/ref/fate/cover-art-aiff-id3v2-remux34
-rw-r--r--tests/ref/fate/cover-art-mp3-id3v2-remux22
3 files changed, 33 insertions, 57 deletions
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index bb8c6bf00c..be9a3b2e34 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -982,11 +982,6 @@ static int decode_audio(InputStream *ist, const AVPacket *pkt, int *got_output,
ist->samples_decoded += decoded_frame->nb_samples;
ist->frames_decoded++;
- /* increment next_dts to use for the case where the input stream does not
- have timestamps or there are multiple frames in the packet */
- ist->next_dts += ((int64_t)AV_TIME_BASE * decoded_frame->nb_samples) /
- decoded_frame->sample_rate;
-
audio_ts_process(ist, decoded_frame);
ist->nb_samples = decoded_frame->nb_samples;
@@ -1401,7 +1396,7 @@ static int process_input_packet(InputStream *ist, const AVPacket *pkt, int no_eo
if (!ist->saw_first_ts) {
ist->first_dts =
ist->dts = ist->st->avg_frame_rate.num ? - ist->dec_ctx->has_b_frames * AV_TIME_BASE / av_q2d(ist->st->avg_frame_rate) : 0;
- if (pkt && pkt->pts != AV_NOPTS_VALUE && !ist->decoding_needed) {
+ if (pkt && pkt->pts != AV_NOPTS_VALUE) {
ist->first_dts =
ist->dts += av_rescale_q(pkt->pts, pkt->time_base, AV_TIME_BASE_Q);
}
@@ -1424,13 +1419,10 @@ static int process_input_packet(InputStream *ist, const AVPacket *pkt, int no_eo
// while we have more to decode or while the decoder did output something on EOF
while (ist->decoding_needed) {
- int64_t duration_dts = 0;
int64_t duration_pts = 0;
int got_output = 0;
int decode_failed = 0;
- ist->dts = ist->next_dts;
-
switch (par->codec_type) {
case AVMEDIA_TYPE_AUDIO:
ret = decode_audio (ist, repeating ? NULL : avpkt, &got_output,
@@ -1440,23 +1432,6 @@ static int process_input_packet(InputStream *ist, const AVPacket *pkt, int no_eo
case AVMEDIA_TYPE_VIDEO:
ret = decode_video (ist, repeating ? NULL : avpkt, &got_output, &duration_pts, !pkt,
&decode_failed);
- if (!repeating || !pkt || got_output) {
- if (pkt && pkt->duration) {
- duration_dts = av_rescale_q(pkt->duration, pkt->time_base, AV_TIME_BASE_Q);
- } else if(ist->dec_ctx->framerate.num != 0 && ist->dec_ctx->framerate.den != 0) {
- int ticks = ist->last_pkt_repeat_pict >= 0 ?
- ist->last_pkt_repeat_pict + 1 :
- ist->dec_ctx->ticks_per_frame;
- duration_dts = ((int64_t)AV_TIME_BASE *
- ist->dec_ctx->framerate.den * ticks) /
- ist->dec_ctx->framerate.num / ist->dec_ctx->ticks_per_frame;
- }
-
- if(ist->dts != AV_NOPTS_VALUE && duration_dts) {
- ist->next_dts += duration_dts;
- }else
- ist->next_dts = AV_NOPTS_VALUE;
- }
av_packet_unref(avpkt);
break;
@@ -1520,8 +1495,7 @@ static int process_input_packet(InputStream *ist, const AVPacket *pkt, int no_eo
}
}
- /* handle stream copy */
- if (!ist->decoding_needed && pkt) {
+ if (pkt) {
ist->dts = ist->next_dts;
switch (par->codec_type) {
case AVMEDIA_TYPE_AUDIO:
@@ -1551,7 +1525,9 @@ static int process_input_packet(InputStream *ist, const AVPacket *pkt, int no_eo
}
break;
}
- } else if (!ist->decoding_needed)
+ }
+
+ if (!pkt && !ist->decoding_needed)
eof_reached = 1;
duration_exceeded = 0;
diff --git a/tests/ref/fate/cover-art-aiff-id3v2-remux b/tests/ref/fate/cover-art-aiff-id3v2-remux
index 3ca2855eb8..a59ba37c65 100644
--- a/tests/ref/fate/cover-art-aiff-id3v2-remux
+++ b/tests/ref/fate/cover-art-aiff-id3v2-remux
@@ -1,4 +1,4 @@
-d4a9481090a8bab1a3f072a8108a1d6a *tests/data/fate/cover-art-aiff-id3v2-remux.aiff
+330ad2bf538e91a31752b38024461df1 *tests/data/fate/cover-art-aiff-id3v2-remux.aiff
608914 tests/data/fate/cover-art-aiff-id3v2-remux.aiff
#tb 0: 1/44100
#media_type 0: audio
@@ -12,24 +12,24 @@ d4a9481090a8bab1a3f072a8108a1d6a *tests/data/fate/cover-art-aiff-id3v2-remux.aif
#sar 1: 1/1
#tb 2: 1/90000
#media_type 2: video
-#codec_id 2: mjpeg
+#codec_id 2: png
#dimensions 2: 350x350
#sar 2: 1/1
#tb 3: 1/90000
#media_type 3: video
-#codec_id 3: png
+#codec_id 3: bmp
#dimensions 3: 350x350
-#sar 3: 1/1
+#sar 3: 0/1
#tb 4: 1/90000
#media_type 4: video
-#codec_id 4: bmp
+#codec_id 4: mjpeg
#dimensions 4: 350x350
-#sar 4: 0/1
+#sar 4: 1/1
0, 0, 0, 1024, 4096, 0xdac4695d
1, 0, 0, 0, 19650, 0xd5662610
-2, 0, 0, 0, 19650, 0xd5662610
-3, 0, 0, 0, 184497, 0xc33f8d44
-4, 0, 0, 0, 368254, 0xfa7f4bd8
+2, 0, 0, 0, 184497, 0xc33f8d44
+3, 0, 0, 0, 368254, 0xfa7f4bd8
+4, 0, 0, 0, 19650, 0xd5662610
0, 1024, 1024, 1024, 4096, 0xad05c909
0, 2048, 2048, 1024, 4096, 0x97e3b8f8
0, 3072, 3072, 1024, 4096, 0xb08180fa
@@ -47,25 +47,25 @@ TAG:comment=Other
[/STREAM]
[STREAM]
index=2
-codec_name=mjpeg
-DISPOSITION:attached_pic=1
-TAG:title=fourth
-TAG:comment=Composer
-[/STREAM]
-[STREAM]
-index=3
codec_name=png
DISPOSITION:attached_pic=1
TAG:title=second
TAG:comment=Illustration
[/STREAM]
[STREAM]
-index=4
+index=3
codec_name=bmp
DISPOSITION:attached_pic=1
TAG:title=third
TAG:comment=Conductor
[/STREAM]
+[STREAM]
+index=4
+codec_name=mjpeg
+DISPOSITION:attached_pic=1
+TAG:title=fourth
+TAG:comment=Composer
+[/STREAM]
[FORMAT]
TAG:artist=Мельница
TAG:RATING=0
diff --git a/tests/ref/fate/cover-art-mp3-id3v2-remux b/tests/ref/fate/cover-art-mp3-id3v2-remux
index 906a646799..52b7e72a56 100644
--- a/tests/ref/fate/cover-art-mp3-id3v2-remux
+++ b/tests/ref/fate/cover-art-mp3-id3v2-remux
@@ -1,4 +1,4 @@
-c1b55a9a92226cd72d3f53ccd830d127 *tests/data/fate/cover-art-mp3-id3v2-remux.mp3
+94946f0efd5f9bb0061ac1fbff7d731f *tests/data/fate/cover-art-mp3-id3v2-remux.mp3
399346 tests/data/fate/cover-art-mp3-id3v2-remux.mp3
#tb 0: 1/14112000
#media_type 0: audio
@@ -7,22 +7,22 @@ c1b55a9a92226cd72d3f53ccd830d127 *tests/data/fate/cover-art-mp3-id3v2-remux.mp3
#channel_layout_name 0: stereo
#tb 1: 1/90000
#media_type 1: video
-#codec_id 1: mjpeg
+#codec_id 1: bmp
#dimensions 1: 263x263
-#sar 1: 96/96
+#sar 1: 0/1
#tb 2: 1/90000
#media_type 2: video
-#codec_id 2: bmp
+#codec_id 2: mjpeg
#dimensions 2: 263x263
-#sar 2: 0/1
+#sar 2: 96/96
#tb 3: 1/90000
#media_type 3: video
#codec_id 3: png
#dimensions 3: 263x263
#sar 3: 1/1
0, -353590, -353590, 368640, 417, 0x15848290, S=1, 10
-1, 0, 0, 0, 15760, 0x71d5c418
-2, 0, 0, 0, 208350, 0x291b44d1
+1, 0, 0, 0, 208350, 0x291b44d1
+2, 0, 0, 0, 15760, 0x71d5c418
3, 0, 0, 0, 165671, 0x7c1c8070
0, 15050, 15050, 368640, 418, 0x46f684a4
0, 383690, 383690, 368640, 418, 0x46f684a4
@@ -36,15 +36,15 @@ TAG:encoder=Lavf
[/STREAM]
[STREAM]
index=1
-codec_name=mjpeg
+codec_name=bmp
DISPOSITION:attached_pic=1
-TAG:comment=Other
+TAG:comment=Band/Orchestra
[/STREAM]
[STREAM]
index=2
-codec_name=bmp
+codec_name=mjpeg
DISPOSITION:attached_pic=1
-TAG:comment=Band/Orchestra
+TAG:comment=Other
[/STREAM]
[STREAM]
index=3