[FFmpeg-soc] [soc]: r5361 - concat/libavformat/avplaylist.c
gkovacs
subversion at mplayerhq.hu
Sun Aug 30 01:03:40 CEST 2009
Author: gkovacs
Date: Sun Aug 30 01:03:40 2009
New Revision: 5361
Log:
offset following summed values in nb_streams_list and durations when inserting item into playlist
Modified:
concat/libavformat/avplaylist.c
Modified: concat/libavformat/avplaylist.c
==============================================================================
--- concat/libavformat/avplaylist.c Sun Aug 30 00:54:58 2009 (r5360)
+++ concat/libavformat/avplaylist.c Sun Aug 30 01:03:40 2009 (r5361)
@@ -76,20 +76,7 @@ int av_playlist_insert_item(AVPlaylistCo
return AVERROR_NOMEM;
} else
ctx->formatcontext_list = formatcontext_list_tmp;
- for (i = ctx->pelist_size; i > pos; --i) {
- ctx->flist[i] = ctx->flist[i - 1];
- ctx->durations[i] = ctx->durations[i - 1];
- ctx->nb_streams_list[i] = ctx->nb_streams_list[i - 1];
- ctx->formatcontext_list[i] = ctx->formatcontext_list[i - 1];
- }
ctx->formatcontext_list[pos] = NULL;
- itempath_len = strlen(itempath);
- ctx->flist[pos] = av_malloc(itempath_len + 1);
- if (!ctx->flist[pos]) {
- av_log(NULL, AV_LOG_ERROR, "av_malloc error in av_playlist_insert_item\n");
- return AVERROR_NOMEM;
- }
- av_strlcpy(ctx->flist[pos], itempath, itempath_len + 1);
ic = ff_playlist_alloc_formatcontext(itempath);
if (!ic) {
av_log(NULL, AV_LOG_ERROR, "failed to allocate and open %s in av_playlist_insert_item\n", itempath);
@@ -103,6 +90,19 @@ int av_playlist_insert_item(AVPlaylistCo
ctx->nb_streams_list[pos] = ic->nb_streams;
}
av_close_input_file(ic);
+ for (i = ctx->pelist_size; i > pos; --i) {
+ ctx->flist[i] = ctx->flist[i - 1];
+ ctx->durations[i] = ctx->durations[i - 1] + ctx->durations[pos];
+ ctx->nb_streams_list[i] = ctx->nb_streams_list[i - 1] + ctx->nb_streams_list[pos];
+ ctx->formatcontext_list[i] = ctx->formatcontext_list[i - 1];
+ }
+ itempath_len = strlen(itempath);
+ ctx->flist[pos] = av_malloc(itempath_len + 1);
+ if (!ctx->flist[pos]) {
+ av_log(NULL, AV_LOG_ERROR, "av_malloc error in av_playlist_insert_item\n");
+ return AVERROR_NOMEM;
+ }
+ av_strlcpy(ctx->flist[pos], itempath, itempath_len + 1);
return 0;
}
More information about the FFmpeg-soc
mailing list