From patchwork Mon May 8 04:46:53 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rostislav Pehlivanov X-Patchwork-Id: 3613 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.3.129 with SMTP id 123csp686908vsd; Sun, 7 May 2017 21:55:05 -0700 (PDT) X-Received: by 10.223.161.30 with SMTP id o30mr36307386wro.186.1494219305119; Sun, 07 May 2017 21:55:05 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id n81si13535440wrb.62.2017.05.07.21.55.04; Sun, 07 May 2017 21:55:05 -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; 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=NONE 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 969586882CF; Mon, 8 May 2017 07:54:56 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 587D16801E2 for ; Mon, 8 May 2017 07:54:50 +0300 (EEST) Received: by mail-wm0-f66.google.com with SMTP id y10so12802052wmh.0 for ; Sun, 07 May 2017 21:54:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=bP4N4ivNaZ3hcluNTUbPu/D8HHHx5DUM1SEw0GFQH/g=; b=BpDU91TL6r9aT7JC2Uv9K/T63e1peyH/mcSY0SdG1ZUoEEOiOyqR1wqjyD3HupSeEX i28AFaw7+QUzdAfQZwQAauah6FaCwL8P8lU+aeAg42AVxBz6NSrycN3gMaELTk8lAPkr FWFSbFE4Ex9c//eEDg7THAEJEKJzVKc4VkOKx2ULkoljAyNFrQEHFoXFMyh7tHpoXD44 7N6YDfBE7L53ATfGO4SAXlkF8fQ74YSzNjIv8pK27A3GvHJqr+JspAWH+1eZXKpaexoP BdAJfZF4H9R0z4Q+dvK7e/bMVZ37hNJ4xaaCXYoCMM6JpsKYrshghahyJ0KKeG9rmlon tWzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=bP4N4ivNaZ3hcluNTUbPu/D8HHHx5DUM1SEw0GFQH/g=; b=LVD5MKLuGBF6fduEqaHaSBnW+sU9bZW7I4q/a+VQOTwvDgJytfOhgulK6lkP8pV8Ta RJ6dAHqp+VtzR3Yd1A8ZkG9y2nfYcmwmi56RtgCxVNbEKanFH7SAUGH05yTXGPZ5EFAs 6LaIcBsLYejb7D/WL5dyNW7oZeQtDvCCBP8vjnbninzEx9cM8XVMLoa08MauaGYGYWi2 DvPlROg/18dokd5Ciu83XhCPGh5Nvfi7FSDzjFStC9jMFYHQU5D5/6UwHUuvvBo9V0Yj I0l2jKZiITPTzCOM8Te3rCg6fchI0A70WuSZjVu0JxoGAsAOCPJBQTd4HyV54LT6Nvdd fwlA== X-Gm-Message-State: AODbwcDKC01pYucmIXKayWZTr6CzXjtnFQoSQk06AhQvIeC39zaW1npG llBUe3tSYexN3g== X-Received: by 10.28.26.208 with SMTP id a199mr11310325wma.116.1494218819565; Sun, 07 May 2017 21:46:59 -0700 (PDT) Received: from moonbase.lan (host86-146-192-79.range86-146.btcentralplus.com. [86.146.192.79]) by smtp.gmail.com with ESMTPSA id q108sm13675925wrb.3.2017.05.07.21.46.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 07 May 2017 21:46:58 -0700 (PDT) From: Rostislav Pehlivanov To: ffmpeg-devel@ffmpeg.org Date: Mon, 8 May 2017 05:46:53 +0100 Message-Id: <20170508044654.53299-2-atomnuker@gmail.com> X-Mailer: git-send-email 2.13.0.rc1.294.g07d810a77f In-Reply-To: <20170508044654.53299-1-atomnuker@gmail.com> References: <20170508044654.53299-1-atomnuker@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/3] img2dec: add support for piped SVG demuxing 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 Cc: Rostislav Pehlivanov MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Only checks the extension and MIME type, since determining whether a file is SVG is difficult since they're just XML files. Signed-off-by: Rostislav Pehlivanov --- libavformat/Makefile | 1 + libavformat/allformats.c | 1 + libavformat/img2dec.c | 20 ++++++++++++++++++++ 3 files changed, 22 insertions(+) diff --git a/libavformat/Makefile b/libavformat/Makefile index 4e169fdce5..bfba0c1cb4 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -237,6 +237,7 @@ OBJS-$(CONFIG_IMAGE_PPM_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_PSD_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_QDRAW_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_SGI_PIPE_DEMUXER) += img2dec.o img2.o +OBJS-$(CONFIG_IMAGE_SVG_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_TIFF_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_WEBP_PIPE_DEMUXER) += img2dec.o img2.o diff --git a/libavformat/allformats.c b/libavformat/allformats.c index 09e62c3cfc..62661d14a4 100644 --- a/libavformat/allformats.c +++ b/libavformat/allformats.c @@ -369,6 +369,7 @@ static void register_all(void) REGISTER_DEMUXER (IMAGE_PSD_PIPE, image_psd_pipe); REGISTER_DEMUXER (IMAGE_QDRAW_PIPE, image_qdraw_pipe); REGISTER_DEMUXER (IMAGE_SGI_PIPE, image_sgi_pipe); + REGISTER_DEMUXER (IMAGE_SVG_PIPE, image_svg_pipe); REGISTER_DEMUXER (IMAGE_SUNRAST_PIPE, image_sunrast_pipe); REGISTER_DEMUXER (IMAGE_TIFF_PIPE, image_tiff_pipe); REGISTER_DEMUXER (IMAGE_WEBP_PIPE, image_webp_pipe); diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c index b454071168..1d532e9343 100644 --- a/libavformat/img2dec.c +++ b/libavformat/img2dec.c @@ -971,6 +971,26 @@ AVInputFormat ff_image_ ## imgname ## _pipe_demuxer = {\ .raw_codec_id = codecid,\ }; +static const AVClass svg_class = { + .class_name = "svg demuxer", + .item_name = av_default_item_name, + .option = ff_img_options, + .version = LIBAVUTIL_VERSION_INT, +}; + +AVInputFormat ff_image_svg_pipe_demuxer = { + .name = "svg_pipe", + .long_name = NULL_IF_CONFIG_SMALL("piped svg sequence"), + .priv_data_size = sizeof(VideoDemuxData), + .read_header = ff_img_read_header, + .read_packet = ff_img_read_packet, + .priv_class = &svg_class, + .mime_type = "image/svg+xml", + .extensions = "svg,svgz", + .flags = AVFMT_GENERIC_INDEX, + .raw_codec_id = AV_CODEC_ID_SVG, +}; + IMAGEAUTO_DEMUXER(bmp, AV_CODEC_ID_BMP) IMAGEAUTO_DEMUXER(dds, AV_CODEC_ID_DDS) IMAGEAUTO_DEMUXER(dpx, AV_CODEC_ID_DPX)