X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=ffserver.c;h=b5bd8f833b97fa3526310ff2a31462e18e2cc054;hb=dff9894acdf83121b32aa8233d03c9e5dcd547c0;hp=374af99cc7a2908b1aac6fa4e49c5f39deea70a8;hpb=2ef37691a0597529280dcb5be90325687eadac26;p=ffmpeg diff --git a/ffserver.c b/ffserver.c index 374af99cc7a..b5bd8f833b9 100644 --- a/ffserver.c +++ b/ffserver.c @@ -2622,6 +2622,7 @@ static int http_start_receive_data(HTTPContext *c) { int fd; int ret; + int64_t ret64; if (c->stream->feed_opened) { http_log("Stream feed '%s' was not opened\n", @@ -2657,13 +2658,13 @@ static int http_start_receive_data(HTTPContext *c) return ret; } } else { - ret = ffm_read_write_index(fd); - if (ret < 0) { + ret64 = ffm_read_write_index(fd); + if (ret64 < 0) { http_log("Error reading write index from feed file '%s': %s\n", c->stream->feed_filename, strerror(errno)); - return ret; + return ret64; } - c->stream->feed_write_index = ret; + c->stream->feed_write_index = ret64; } c->stream->feed_write_index = FFMAX(ffm_read_write_index(fd), @@ -2995,6 +2996,8 @@ static int prepare_sdp_description(FFServerStream *stream, uint8_t **pbuffer, for(i = 0; i < stream->nb_streams; i++) { avc->streams[i] = &avs[i]; avc->streams[i]->codec = stream->streams[i]->codec; + avcodec_parameters_from_context(stream->streams[i]->codecpar, stream->streams[i]->codec); + avc->streams[i]->codecpar = stream->streams[i]->codecpar; } *pbuffer = av_mallocz(2048); if (!*pbuffer) @@ -3535,6 +3538,8 @@ static AVStream *add_av_stream1(FFServerStream *stream, fst->priv_data = av_mallocz(sizeof(FeedData)); fst->internal = av_mallocz(sizeof(*fst->internal)); + fst->internal->avctx = avcodec_alloc_context3(NULL); + fst->codecpar = avcodec_parameters_alloc(); fst->index = stream->nb_streams; avpriv_set_pts_info(fst, 33, 1, 90000); fst->sample_aspect_ratio = codec->sample_aspect_ratio;