From patchwork Wed Nov 23 19:13:05 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 1535 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.90.1 with SMTP id o1csp2907843vsb; Wed, 23 Nov 2016 11:13:24 -0800 (PST) X-Received: by 10.28.24.67 with SMTP id 64mr8433272wmy.136.1479928404679; Wed, 23 Nov 2016 11:13:24 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id yo3si32695946wjb.43.2016.11.23.11.13.24; Wed, 23 Nov 2016 11:13:24 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 605D7689A83; Wed, 23 Nov 2016 21:13:12 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vie01a-dmta-pe03-3.mx.upcmail.net (vie01a-dmta-pe03-3.mx.upcmail.net [62.179.121.162]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EFDD1689A73 for ; Wed, 23 Nov 2016 21:13:04 +0200 (EET) Received: from [172.31.216.43] (helo=vie01a-pemc-psmtp-pe01) by vie01a-dmta-pe03.mx.upcmail.net with esmtp (Exim 4.87) (envelope-from ) id 1c9cyi-0002gP-8G for ffmpeg-devel@ffmpeg.org; Wed, 23 Nov 2016 20:13:08 +0100 Received: from localhost ([213.47.41.20]) by vie01a-pemc-psmtp-pe01 with SMTP @ mailcloud.upcmail.net id BXD71u01F0S5wYM01XD8EC; Wed, 23 Nov 2016 20:13:08 +0100 X-SourceIP: 213.47.41.20 From: Michael Niedermayer To: FFmpeg development discussions and patches , Reynaldo Verdejo Date: Wed, 23 Nov 2016 20:13:05 +0100 Message-Id: <20161123191305.5703-2-michael@niedermayer.cc> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20161123191305.5703-1-michael@niedermayer.cc> References: <20161123191305.5703-1-michael@niedermayer.cc> Subject: [FFmpeg-devel] [PATCH 2/2] ffserver: Remove extract_mpeg4_header() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This should not be needed, our AVParsers should do this I do not have a testcase though, please help testing this and please add fate tests if you can. Signed-off-by: Michael Niedermayer --- ffserver.c | 52 ---------------------------------------------------- 1 file changed, 52 deletions(-) diff --git a/ffserver.c b/ffserver.c index 01f311d..d40fe80 100644 --- a/ffserver.c +++ b/ffserver.c @@ -3599,57 +3599,6 @@ static void remove_stream(FFServerStream *stream) } } -/* specific MPEG4 handling : we extract the raw parameters */ -static void extract_mpeg4_header(AVFormatContext *infile) -{ - int mpeg4_count, i, size; - AVPacket pkt; - AVStream *st; - const uint8_t *p; - - infile->flags |= AVFMT_FLAG_NOFILLIN | AVFMT_FLAG_NOPARSE; - - mpeg4_count = 0; - for(i=0;inb_streams;i++) { - st = infile->streams[i]; - if (st->codec->codec_id == AV_CODEC_ID_MPEG4 && - st->codec->extradata_size == 0) { - mpeg4_count++; - } - } - if (!mpeg4_count) - return; - - printf("MPEG4 without extra data: trying to find header in %s\n", - infile->filename); - while (mpeg4_count > 0) { - if (av_read_frame(infile, &pkt) < 0) - break; - st = infile->streams[pkt.stream_index]; - if (st->codec->codec_id == AV_CODEC_ID_MPEG4 && - st->codec->extradata_size == 0) { - av_freep(&st->codec->extradata); - /* fill extradata with the header */ - /* XXX: we make hard suppositions here ! */ - p = pkt.data; - while (p < pkt.data + pkt.size - 4) { - /* stop when vop header is found */ - if (p[0] == 0x00 && p[1] == 0x00 && - p[2] == 0x01 && p[3] == 0xb6) { - size = p - pkt.data; - st->codec->extradata = av_mallocz(size + AV_INPUT_BUFFER_PADDING_SIZE); - st->codec->extradata_size = size; - memcpy(st->codec->extradata, pkt.data, size); - break; - } - p++; - } - mpeg4_count--; - } - av_packet_unref(&pkt); - } -} - /* compute the needed AVStream for each file */ static void build_file_streams(void) { @@ -3700,7 +3649,6 @@ static void build_file_streams(void) avformat_close_input(&infile); goto fail; } - extract_mpeg4_header(infile); for(i=0;inb_streams;i++) add_av_stream1(stream, infile->streams[i]->codec, 1);