Browse Source

* 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
tags/v0.5
Philip Gladstone 23 years ago
parent
commit
a4d70941cd
1 changed files with 9 additions and 0 deletions
  1. +9
    -0
      ffserver.c

+ 9
- 0
ffserver.c View File

@@ -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…
Cancel
Save