.nb_max_http_connections = 2000,
.nb_max_connections = 5,
.max_bandwidth = 1000,
+ .use_defaults = 1,
};
static void new_connection(int server_fd, int is_rtsp);
c->state = HTTPSTATE_SEND_DATA_TRAILER;
}
+ av_freep(&c->pb_buffer);
len = avio_close_dyn_buf(ctx->pb, &c->pb_buffer);
c->cur_frame_bytes = len;
c->buffer_ptr = c->pb_buffer;
if (!fst)
return NULL;
if (copy) {
- fst->codec = avcodec_alloc_context3(NULL);
- memcpy(fst->codec, codec, sizeof(AVCodecContext));
- if (codec->extradata_size) {
- fst->codec->extradata = av_mallocz(codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
- memcpy(fst->codec->extradata, codec->extradata,
- codec->extradata_size);
- }
+ fst->codec = avcodec_alloc_context3(codec->codec);
+ avcodec_copy_context(fst->codec, codec);
} else {
/* live streams must use the actual feed's codec since it may be
* updated later to carry extradata needed by them.
av = st->codec;
for(i=0;i<feed->nb_streams;i++) {
- st = feed->streams[i];
- av1 = st->codec;
+ av1 = feed->streams[i]->codec;
if (av1->codec_id == av->codec_id &&
av1->codec_type == av->codec_type &&
av1->bit_rate == av->bit_rate) {
fst = add_av_stream1(feed, av, 0);
if (!fst)
return -1;
+ if (av_stream_get_recommended_encoder_configuration(st))
+ av_stream_set_recommended_encoder_configuration(fst,
+ av_strdup(av_stream_get_recommended_encoder_configuration(st)));
return feed->nb_streams - 1;
}
if (uptime < 30)
/* Turn off any more restarts */
- feed->child_argv = 0;
+ ffserver_free_child_args(&feed->child_argv);
}
}
}