mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 12:09:55 +00:00
avformat/utils: inject audio skip side data before the side data merge code
This ensures that its handled the same way as other side data Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
01923bab98
commit
f0f75dfa34
@ -1398,6 +1398,18 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt)
|
||||
if (!got_packet && s->parse_queue)
|
||||
ret = read_from_packet_buffer(&s->parse_queue, &s->parse_queue_end, pkt);
|
||||
|
||||
if (ret >= 0) {
|
||||
AVStream *st = s->streams[pkt->stream_index];
|
||||
if (st->skip_samples) {
|
||||
uint8_t *p = av_packet_new_side_data(pkt, AV_PKT_DATA_SKIP_SAMPLES, 10);
|
||||
if (p) {
|
||||
AV_WL32(p, st->skip_samples);
|
||||
av_log(s, AV_LOG_DEBUG, "demuxer injecting skip %d\n", st->skip_samples);
|
||||
}
|
||||
st->skip_samples = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if(ret >= 0 && !(s->flags & AVFMT_FLAG_KEEP_SIDE_DATA))
|
||||
av_packet_merge_side_data(pkt);
|
||||
|
||||
@ -1490,15 +1502,6 @@ int av_read_frame(AVFormatContext *s, AVPacket *pkt)
|
||||
return_packet:
|
||||
|
||||
st = s->streams[pkt->stream_index];
|
||||
if (st->skip_samples) {
|
||||
uint8_t *p = av_packet_new_side_data(pkt, AV_PKT_DATA_SKIP_SAMPLES, 10);
|
||||
if (p) {
|
||||
AV_WL32(p, st->skip_samples);
|
||||
av_log(s, AV_LOG_DEBUG, "demuxer injecting skip %d\n", st->skip_samples);
|
||||
}
|
||||
st->skip_samples = 0;
|
||||
}
|
||||
|
||||
if ((s->iformat->flags & AVFMT_GENERIC_INDEX) && pkt->flags & AV_PKT_FLAG_KEY) {
|
||||
ff_reduce_index(s, st->index);
|
||||
av_add_index_entry(st, pkt->pos, pkt->dts, 0, 0, AVINDEX_KEYFRAME);
|
||||
|
@ -1,6 +1,6 @@
|
||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 417
|
||||
ret: 0 st:-1 flags:0 ts:-1.000000
|
||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 417
|
||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 440
|
||||
ret: 0 st:-1 flags:1 ts: 1.894167
|
||||
ret: 0 st: 0 flags:1 dts: 1.880816 pts: 1.880816 pos: 30093 size: 418
|
||||
ret: 0 st: 0 flags:0 ts: 0.788334
|
||||
@ -18,7 +18,7 @@ ret: 0 st: 0 flags:1 dts: 2.168163 pts: 2.168163 pos: 34690 size: 418
|
||||
ret: 0 st:-1 flags:1 ts: 1.047503
|
||||
ret: 0 st: 0 flags:1 dts: 1.044898 pts: 1.044898 pos: 16718 size: 418
|
||||
ret: 0 st: 0 flags:0 ts:-0.058330
|
||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 417
|
||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 440
|
||||
ret: 0 st: 0 flags:1 ts: 2.835837
|
||||
ret: 0 st: 0 flags:1 dts: 2.821224 pts: 2.821224 pos: 45139 size: 418
|
||||
ret: 0 st:-1 flags:0 ts: 1.730004
|
||||
@ -26,7 +26,7 @@ ret: 0 st: 0 flags:1 dts: 1.750204 pts: 1.750204 pos: 28003 size: 418
|
||||
ret: 0 st:-1 flags:1 ts: 0.624171
|
||||
ret: 0 st: 0 flags:1 dts: 0.600816 pts: 0.600816 pos: 9613 size: 418
|
||||
ret: 0 st: 0 flags:0 ts:-0.481662
|
||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 417
|
||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 440
|
||||
ret: 0 st: 0 flags:1 ts: 2.412505
|
||||
ret: 0 st: 0 flags:1 dts: 2.403265 pts: 2.403265 pos: 38452 size: 418
|
||||
ret: 0 st:-1 flags:0 ts: 1.306672
|
||||
@ -34,7 +34,7 @@ ret: 0 st: 0 flags:1 dts: 1.332245 pts: 1.332245 pos: 21315 size: 418
|
||||
ret: 0 st:-1 flags:1 ts: 0.200839
|
||||
ret: 0 st: 0 flags:1 dts: 0.182857 pts: 0.182857 pos: 2925 size: 418
|
||||
ret: 0 st: 0 flags:0 ts:-0.904994
|
||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 417
|
||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 440
|
||||
ret: 0 st: 0 flags:1 ts: 1.989173
|
||||
ret: 0 st: 0 flags:1 dts: 1.985306 pts: 1.985306 pos: 31764 size: 418
|
||||
ret: 0 st:-1 flags:0 ts: 0.883340
|
||||
|
Loading…
Reference in New Issue
Block a user