提交 a4d70941 编写于 作者: P Philip Gladstone

* Try and fix the crashes in ffserver associated with the coded_frame stuff.

  This code is wrong, but it is not obvious what the right code is.
* Make sure that we reset SIGPIPE before execing ffmpeg.

Originally committed as revision 1330 to svn://svn.ffmpeg.org/ffmpeg/trunk
上级 4cb3ca72
......@@ -148,6 +148,8 @@ typedef struct HTTPContext {
seconds max) */
} HTTPContext;
static AVFrame dummy_frame;
/* each generated stream is described here */
enum StreamType {
STREAM_TYPE_LIVE,
......@@ -402,6 +404,8 @@ static void start_children(FFStream *feed)
/* This is needed to make relative pathnames work */
chdir(my_program_dir);
signal(SIGPIPE, SIG_DFL);
execvp(pathname, feed->child_argv);
_exit(1);
......@@ -2090,6 +2094,10 @@ static int http_prepare_data(HTTPContext *c)
sizeof(AVStream));
st->codec.frame_number = 0; /* XXX: should be done in
AVStream, not in codec */
/* I'm pretty sure that this is not correct...
* However, without it, we crash
*/
st->codec.coded_frame = &dummy_frame;
}
c->got_key_frame = 0;
......@@ -3156,6 +3164,7 @@ AVStream *add_av_stream1(FFStream *stream, AVCodecContext *codec)
return NULL;
fst->priv_data = av_mallocz(sizeof(FeedData));
memcpy(&fst->codec, codec, sizeof(AVCodecContext));
fst->codec.coded_frame = &dummy_frame;
stream->streams[stream->nb_streams++] = fst;
return fst;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册