diff options
author | Anton Khirnov <anton@khirnov.net> | 2011-03-16 08:45:14 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2011-07-08 22:13:52 +0200 |
commit | 1c6d2b7df061de2a9205ed711f4344926237bb5f (patch) | |
tree | 3291fad26ceb1eb1f915dabe732c01bfacf81fdd | |
parent | e98bc78ca168bbb615752ed8e3b97bcacafdf0b7 (diff) | |
download | ffmpeg-1c6d2b7df061de2a9205ed711f4344926237bb5f.tar.gz |
lavf: update AVStream.nb_frames when muxing.
-rw-r--r-- | libavformat/matroskaenc.c | 2 | ||||
-rw-r--r-- | libavformat/utils.c | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index d132b65f5b..169e8e44da 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -932,7 +932,7 @@ static int mkv_write_ass_blocks(AVFormatContext *s, AVIOContext *pb, AVPacket *p size -= start - data; sscanf(data, "Dialogue: %d,", &layer); i = snprintf(buffer, sizeof(buffer), "%"PRId64",%d,", - s->streams[pkt->stream_index]->nb_frames++, layer); + s->streams[pkt->stream_index]->nb_frames, layer); size = FFMIN(i+size, sizeof(buffer)); memcpy(buffer+i, start, size-i); diff --git a/libavformat/utils.c b/libavformat/utils.c index 060e58e9b2..e38d9efa60 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -3023,6 +3023,9 @@ int av_write_frame(AVFormatContext *s, AVPacket *pkt) return ret; ret= s->oformat->write_packet(s, pkt); + + if (ret >= 0) + s->streams[pkt->stream_index]->nb_frames++; return ret; } @@ -3143,6 +3146,8 @@ int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt){ return ret; ret= s->oformat->write_packet(s, &opkt); + if (ret >= 0) + s->streams[opkt.stream_index]->nb_frames++; av_free_packet(&opkt); pkt= NULL; @@ -3165,6 +3170,8 @@ int av_write_trailer(AVFormatContext *s) break; ret= s->oformat->write_packet(s, &pkt); + if (ret >= 0) + s->streams[pkt.stream_index]->nb_frames++; av_free_packet(&pkt); |