@@ -572,7 +572,6 @@ static int dash_init(AVFormatContext *s)
{
DASHContext *c = s->priv_data;
int ret = 0, i;
- AVOutputFormat *oformat;
char *ptr;
char basename[1024];
@@ -596,10 +595,6 @@ static int dash_init(AVFormatContext *s)
if (ptr)
*ptr = '\0';
- oformat = av_guess_format("mp4", NULL, NULL);
- if (!oformat)
- return AVERROR_MUXER_NOT_FOUND;
-
c->streams = av_mallocz(sizeof(*c->streams) * s->nb_streams);
if (!c->streams)
return AVERROR(ENOMEM);
@@ -623,23 +618,25 @@ static int dash_init(AVFormatContext *s)
return AVERROR(EINVAL);
}
- ctx = avformat_alloc_context();
- if (!ctx)
+ ret = avformat_alloc_output_context2(&ctx, NULL, "mp4", NULL);
+ if (ret < 0)
return AVERROR(ENOMEM);
os->ctx = ctx;
- ctx->oformat = oformat;
ctx->interrupt_callback = s->interrupt_callback;
ctx->opaque = s->opaque;
ctx->io_close = s->io_close;
ctx->io_open = s->io_open;
+ av_dict_copy(&ctx->metadata, s->metadata, 0);
if (!(st = avformat_new_stream(ctx, NULL)))
return AVERROR(ENOMEM);
avcodec_parameters_copy(st->codecpar, s->streams[i]->codecpar);
st->sample_aspect_ratio = s->streams[i]->sample_aspect_ratio;
st->time_base = s->streams[i]->time_base;
+ st->avg_frame_rate = s->streams[i]->avg_frame_rate;
ctx->avoid_negative_ts = s->avoid_negative_ts;
ctx->flags = s->flags;
+ ctx->max_delay = s->max_delay;
ret = avio_open_dyn_buf(&ctx->pb);
if (ret < 0)
Also copy stream metadata to output stream. Signed-off-by: Peter Große <pegro@friiks.de> --- libavformat/dashenc.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-)