From patchwork Wed Jun 6 20:34:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Carl Eugen Hoyos X-Patchwork-Id: 9274 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:11c:0:0:0:0:0 with SMTP id c28-v6csp1285266jad; Wed, 6 Jun 2018 13:34:53 -0700 (PDT) X-Google-Smtp-Source: ADUXVKJGGSe6VNYpW2/q0ND+4I925zYPCaJeHzFLVk9hNB2VhyK6esXWbb3BSkxRw0w5ncuGqAy1 X-Received: by 2002:adf:9525:: with SMTP id 34-v6mr3262349wrs.99.1528317293907; Wed, 06 Jun 2018 13:34:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528317293; cv=none; d=google.com; s=arc-20160816; b=jFsoL/LJFszzPVeHZetQLL3xcwRqNBSD2LCHK3lk6AseZwScVnjwXUOdfNiMe7/Du0 9YqQpzAs2+4JEIjgb46J1pZI9pY1lnLk5hAzUv895HPqa688vhnLh0XXk6oGn/pvXziB 4ul1WtfzeWfWg1V9lZH5a9ICMob/Y4DW8CaeoYCpWfbepdLjQ1sjdtGWL2X7qpnXN7kb uKJTFSPfxvGePxO5KBtmiLV5rIkpmH8rCEcX/K7Ns4oPOSD+0obpMMuldTSWsbiV8CW1 AEB6PentfRPxCD2WI7EWjDiOutDBpIyQAsF87S9gxFaZzUzm1qEgXY+GHu1rV1ma5qF1 Sa5A== 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:to :message-id:date:from:mime-version:dkim-signature:delivered-to :arc-authentication-results; bh=sBCM9rqB7aexnmgbMbX1wOKVCYxZpGEXZQcVtjz9++k=; b=hjPkTzTWcLRNKbieCuJ5mVM24zUCrDaPZJ8ycZFg76Dw26wh0Y0CoV1JhnCu/QgsKW 8TvOb6UMsUq1JSOYtwdtKchWF+NlPEcV3drkFRXOz5KHxnIpQg2Oto0/iazpFdTZjw9/ vACJqNe2BNQMjatzM+DDJFSUqq9FqrvVtgaRv4rSUTubiFUdpwLamGAv91FKd3eOW1RD rCuxXjldU6Gt4TVJdW3l59LnzrFmM9+iWE6lEahzEGl/2pACf8r/qHW/Y6KKQn7aXQhf c+m8Pj16FU2rNlTyYCHv8SDiC53a71Q45s7T9l9E40V8s9NiixAUNLOfAJ+nD3ylxPx7 tXSA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=fqaMTz+Y; 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 e194-v6si3891483wmf.221.2018.06.06.13.34.53; Wed, 06 Jun 2018 13:34:53 -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=fqaMTz+Y; 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 7FB2C68A71F; Wed, 6 Jun 2018 23:34:04 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-io0-f180.google.com (mail-io0-f180.google.com [209.85.223.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 01CC268A6B0 for ; Wed, 6 Jun 2018 23:33:58 +0300 (EEST) Received: by mail-io0-f180.google.com with SMTP id t6-v6so9178226iob.10 for ; Wed, 06 Jun 2018 13:34:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=lSt92JDb3LPN9mKEp0/JFKfa4IqGlih9IEve6GoOKSM=; b=fqaMTz+Yifn8x1ZyodT/sDbiA0c635K0UWFKkMReg+OfuE/lxHa/bRALYA+rRTtFzM efbDKXbkRDNT7GfDo7GfWP8go7s/k5RhEghLlhICLo3bUU5WJKxykllHkF2fqjX/91m+ hMIOcWwaCoayiP3muCTkElKt0iPOXF+c2nYaUojtsbpW7/+qYXbxuIToM1L+hHXio9Jr DyoEHNmApSKUsI198HzC/BtF9VpT+T1bxwp6inLt+1vsGfuoNlnapkoLdLyonBCJBbpF /CCvONmmD157rMfFq6iYW2Gf/UrAqBzpoMPjInIo2fP+iFgzcSRBPOMpUjdbP/yydeqA 0Gvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=lSt92JDb3LPN9mKEp0/JFKfa4IqGlih9IEve6GoOKSM=; b=tD+zhAs37BkLvc8StqFUAHpOKnuUMjepOAH61vMl/FGopt8Wut+pA2/Pt1p78a8vgi C1P7xUu8Qo2c4n/6oGKb1wVudyJ1JC7KubrO4aw/M2u3QE0/mGtRlfeb9PBuU8I6RTJm y4QPDssfMJcJ/BraR2bcV1KmXHLrWXQaB4BcPjYXMN1xkiJOTls683BD4aiKSi+GwEiU PCTcCWLf0ErM57j6NGPaemzRgRx7BAIae++S7fud/CTaZMfftLlDrHRNnDi7tcQYosMX eyVYY/g0b/u6TUSVSVv0EcPnNn5eIVnEr+4N5eXeuYNQeoCK0m6X6EP5RwybQdBApsom wNHA== X-Gm-Message-State: APt69E3PcV9tNltW2qkwPL6dUPHjlv55/5lvzC5Idd3HQmCW697CnR+y IdoTwRF9K0O536qG+mx1HIzDgJyisCsBe2QdDs8= X-Received: by 2002:a6b:520d:: with SMTP id g13-v6mr4712778iob.60.1528317283829; Wed, 06 Jun 2018 13:34:43 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a02:b09b:0:0:0:0:0 with HTTP; Wed, 6 Jun 2018 13:34:42 -0700 (PDT) From: Carl Eugen Hoyos Date: Wed, 6 Jun 2018 22:34:42 +0200 Message-ID: To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH]ffmpeg: Fail if the user requested impossible subtitle encoding 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" Hi! Attached patch is meant to fix ticket #7239. Please comment, Carl Eugen From 309b7855f663053a5d11c5403a811bd723e472b9 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Wed, 6 Jun 2018 21:09:38 +0200 Subject: [PATCH] ffmpeg: Fail if the user requested impossible subtitle encoding. --- fftools/ffmpeg.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 10f3012..d4ac690 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -3485,6 +3485,23 @@ static int init_output_stream(OutputStream *ost, char *error, int error_len) return ret; } } + if (ist && ist->dec->type == AVMEDIA_TYPE_SUBTITLE && ost->enc->type == AVMEDIA_TYPE_SUBTITLE) { + int input_props = 0, output_props = 0; + AVCodecDescriptor const *input_descriptor = + avcodec_descriptor_get(dec->codec_id); + AVCodecDescriptor const *output_descriptor = + avcodec_descriptor_get(ost->enc_ctx->codec_id); + if (input_descriptor) + input_props = input_descriptor->props & (AV_CODEC_PROP_TEXT_SUB | AV_CODEC_PROP_BITMAP_SUB); + if (output_descriptor) + output_props = output_descriptor->props & (AV_CODEC_PROP_TEXT_SUB | AV_CODEC_PROP_BITMAP_SUB); + if (input_props && output_props && input_props != output_props) { + snprintf(error, error_len, + "Subtitle encoding currently only possible from text to text " + "or bitmap to bitmap"); + return AVERROR_INVALIDDATA; + } + } if ((ret = avcodec_open2(ost->enc_ctx, codec, &ost->encoder_opts)) < 0) { if (ret == AVERROR_EXPERIMENTAL) -- 1.7.10.4