* 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
This commit is contained in:
parent
4cb3ca724d
commit
a4d70941cd
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user