From 0332f549455a6ed85a4cf021047473790cab7ec2 Mon Sep 17 00:00:00 2001 From: Baptiste Coudurier Date: Fri, 30 May 2008 02:26:07 +0000 Subject: set got_key_frame when packet is video, fix first video packet with index 0 and 2 streams Originally committed as revision 13551 to svn://svn.ffmpeg.org/ffmpeg/trunk --- ffserver.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'ffserver.c') diff --git a/ffserver.c b/ffserver.c index eb60deb775..5bfa162286 100644 --- a/ffserver.c +++ b/ffserver.c @@ -2100,17 +2100,11 @@ static int http_prepare_data(HTTPContext *c) for(i=0;istream->nb_streams;i++) { if (c->feed_streams[i] == pkt.stream_index) { pkt.stream_index = i; - if (pkt.flags & PKT_FLAG_KEY) - c->got_key_frame |= 1 << i; - /* See if we have all the key frames, then - * we start to send. This logic is not quite - * right, but it works for the case of a - * single video stream with one or more - * audio streams (for which every frame is - * typically a key frame). - */ - if (!c->stream->send_on_key || - ((c->got_key_frame + 1) >> c->stream->nb_streams)) + if (pkt.flags & PKT_FLAG_KEY && + c->fmt_in->streams[source_index]->codec->codec_type + == CODEC_TYPE_VIDEO) + c->got_key_frame = 1; + if (!c->stream->send_on_key || c->got_key_frame) goto send_it; } } -- cgit v1.2.3