From patchwork Fri Apr 6 15:04:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gyan X-Patchwork-Id: 8346 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.1.70 with SMTP id c67csp772140jad; Fri, 6 Apr 2018 08:04:28 -0700 (PDT) X-Google-Smtp-Source: AIpwx48ktpGnBtSg7lpQCuaFbRD5qLKqtmLDWwXLWnPzRXYcEGvzSZjogcqfegRUFXchX4ZpTDdD X-Received: by 10.223.174.227 with SMTP id y90mr18800083wrc.76.1523027068303; Fri, 06 Apr 2018 08:04:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523027068; cv=none; d=google.com; s=arc-20160816; b=rQGV5fMiIZfhZSh92Bs3kbQcJvM1hPrQmd/VDyIBR0LI4ip0ctuznGTEFTJ6Zy4BF4 Bo8u/sWo/qHTG/VUNZSel7fci+F6kAevZU20KGNZVWe26ELv0P4zVu1HGJnglCrWdtD/ kHEXPYmfODiPXgidVmhnORcirU8Cud/61cgtDoSNwKRh/t4Go9V6gI3tZ0348g4eyATc MTrR9us9UHwB0fA6zn/Kyg7a7wf5Wr8ARWEF88tQZinXEKhsJ1Id6KgSowzyhCm+1LON GanH06Z2j7+PeOdLAt2AQgH0/MHyfaVO287OwyYFiBEHgpI5anmszYDHKqlVZaSGBlEf JEZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:to:dkim-signature:delivered-to :arc-authentication-results; bh=FnVZFOdrRLFGl0CLjPQWLnqinUmKnFDbLi8HktsAQy8=; b=CNNWJr0hY6bn3z061Mo+n4KiXCropyWpU9HYTY2Z1QBkyKh1jW5SZ+vYGd3tRHr+pX laWdOUBXScpj4UbO2Bp2hl/hxFqmoJrameTy1pvCKRDgV0FSC9Nio/AKccVVTbjceh2i o6QXRNZEHpIgd0AQ3eOxpLjjGPTqMxYZAqDbs/WTzFfHDaJtuJCofpftny5T6uzUqGSi 2+upUsRddtT6hzdE8nA8nHbV0m4iu3Xs2HPDba3scm6LAOSdybxsYF8Hd5OBEUm+7SM5 ECNrvLwsiVqFlRfBShVkDZy6tpI/5dfdHskfLvP9xqTZgsW+DC6OqKTwB1PAEgDEWwdq K6+w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=DBC8trM6; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id b47si7960108wrd.20.2018.04.06.08.04.27; Fri, 06 Apr 2018 08:04:28 -0700 (PDT) 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; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=DBC8trM6; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 110C0680429; Fri, 6 Apr 2018 18:04:04 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf0-f176.google.com (mail-pf0-f176.google.com [209.85.192.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F1443680429 for ; Fri, 6 Apr 2018 18:03:56 +0300 (EEST) Received: by mail-pf0-f176.google.com with SMTP id h69so927438pfe.13 for ; Fri, 06 Apr 2018 08:04:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language; bh=T5GJXG8WRjaZro+VaR99Tv4k13ju/lEVknKeJNeGf78=; b=DBC8trM67joRaU0viOy4jcjfv+IOV2L8bWfGgbUT+v0g4z5BBhrvbYk9o82X0L9nhV zNUS9o4mTSn5KGF5wvsmSG3pURsVsLrjV5VYl5uaiG6sCln1j5khkzujXPTZRqVA2Sml 5Jr4NcAuwGT6zzu4FbRVoDaS2vJwIbtdb4AOEBQtQH2prskMg1/sGt3NYC1jUETCtSyG uxNoEt2dtfuyIOhG2paUGd/rcre2bSN7j2v6vQJUfjFnZZnkc0qT+UNpJCliFZP2Up2p 9qYVYEOgvK53o3alTuH1s37UAY9VW6D7funNf/KIeHBogvpAXcDWfvSpuqsgQ+1l80tD F5kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=T5GJXG8WRjaZro+VaR99Tv4k13ju/lEVknKeJNeGf78=; b=beP8Q9q63ac7MYyQ1wTEpWcoqbTi74bs+PxnCyiii5IO3j9lDxkBR7NtiR0hyTdig6 aKZnjr1/4bTEkJQFmVAUuWYGJSUOsd/U24uDmkWDStrXMkabIQyY8drX/lG25j3e70DU cqshyPg5YwyMdlrQrnZyFBXss6AHqnOq3hIfI+zxCEVE+MkYeDHb/MLUZjKfruTVr0sl dvWfGTjaSq+Z9XXP8Xhz0T8FTaiDi8bES/1+Np4UZSoNXPzcF5rXa3ubItCWKgfge20y ErOtQA6626SQ3vGzd/hseGH0nIzqsrZL5gqDTvCC5Oz9CSmxT5jVOW98G4z9s85nusxa X6ag== X-Gm-Message-State: AElRT7EHsx/hq0EX6QMwtPZNXiR7BJf1iaho8dPHqhu9BFFVLgVcj0l8 IGDlYqVkTh5uVgsZ5/qt7tmvyhcX X-Received: by 10.98.204.12 with SMTP id a12mr20807659pfg.3.1523027056794; Fri, 06 Apr 2018 08:04:16 -0700 (PDT) Received: from [192.168.1.225] ([103.206.134.222]) by smtp.gmail.com with ESMTPSA id 13sm21725115pfm.10.2018.04.06.08.04.14 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 06 Apr 2018 08:04:15 -0700 (PDT) To: ffmpeg-devel@ffmpeg.org References: <20180404183904.GV20131@michaelspb> From: Gyan Doshi Message-ID: <90b8080b-bccd-81cb-04d4-935f2b1c8a8f@gmail.com> Date: Fri, 6 Apr 2018 20:34:12 +0530 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <20180404183904.GV20131@michaelspb> Content-Language: en-US Subject: Re: [FFmpeg-devel] [PATCH] avformat/rawenc: check stream type 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" On 4/5/2018 12:09 AM, Michael Niedermayer wrote: > > This does not work > breaks fate-unknown_layout-ac3 > > also the tests mayb too strict, there are similar codec_ids like mpeg1/2 > or jpeg variants which are all basically the same from a muxers point of view Revised patch passes FATE. Set looser conditions for mpeg-1/2/4 and jpeg muxer. Regards, Gyan From a4ae3eb20af9a4c6e5feb201347b5b044541c59b Mon Sep 17 00:00:00 2001 From: Gyan Doshi Date: Fri, 6 Apr 2018 20:21:57 +0530 Subject: [PATCH v2] avformat/rawenc: check stream type Validate codec of stream to be muxed except for data muxer. --- libavformat/rawenc.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/libavformat/rawenc.c b/libavformat/rawenc.c index 809ca23b1a..19028329f7 100644 --- a/libavformat/rawenc.c +++ b/libavformat/rawenc.c @@ -34,12 +34,48 @@ int ff_raw_write_packet(AVFormatContext *s, AVPacket *pkt) static int force_one_stream(AVFormatContext *s) { +enum AVCodecID id; +const char *idname; + if (s->nb_streams != 1) { av_log(s, AV_LOG_ERROR, "%s files have exactly one stream\n", s->oformat->name); return AVERROR(EINVAL); } + + if (!strcmp("data", s->oformat->name)) + return 0; + +id = s->streams[0]->codecpar->codec_id; +idname = avcodec_get_name(id); + + switch(s->streams[0]->codecpar->codec_type) { + case AVMEDIA_TYPE_AUDIO: + if (s->oformat->audio_codec != id) + goto fail; + break; + case AVMEDIA_TYPE_VIDEO: + if (strstr(s->oformat->name, "mpeg") != NULL) { + if (strstr(idname, "mpeg") == NULL) + goto fail; + } else if (strstr(s->oformat->name, "m4v") != NULL) { + if (strstr(idname, "mpeg4") == NULL) + goto fail; + } else if (strstr(s->oformat->name, "jpeg") != NULL) { + if (strstr(idname, "jpeg") == NULL) + goto fail; + } else if (s->oformat->video_codec != id) + goto fail; + break; + default: + goto fail; + } + return 0; + +fail: + av_log(s, AV_LOG_ERROR, "Stream not of type %s\n", s->oformat->name); + return AVERROR(EINVAL); } /* Note: Do not forget to add new entries to the Makefile as well. */