From patchwork Sun Nov 13 18:44:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marton Balint X-Patchwork-Id: 39254 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp2041807pzb; Sun, 13 Nov 2022 10:44:53 -0800 (PST) X-Google-Smtp-Source: AA0mqf7liiRmFRTjC2Ef5Z4X1AkrpAYKebeq/ur2+apRVQCXP8qmxDf0TH7sohjdqhEnjNduk0fm X-Received: by 2002:a17:906:7fd8:b0:7ad:902c:d1d6 with SMTP id r24-20020a1709067fd800b007ad902cd1d6mr7897713ejs.143.1668365093383; Sun, 13 Nov 2022 10:44:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668365093; cv=none; d=google.com; s=arc-20160816; b=g7M/98k0SV0md4ZyucYcOV0vgFtWm+j6nDLqOghdgeJNzb8NmMC/R+Fhk5PA7Pc+W8 oziudkmjo82ycEQR/mpvls2tHJ5bv8JX1BhDgPHETHW9IIFOsNvo5g+x4Nqb6L+iS9ON vGQK9JdtBhp3te4GmGtycPopOZbKtT7jMpW2egfrM20W5enbRHkKelO1t4+E40DsgEYl YmhOb1Fg8R5WPqd5+OZUA+OOXi5X28A8g/eyptgoC/oqfYURCfZlySWELPRV8uv3qnmO TMb1DhfyAbrCOma3nq/pKc3K2IM1iyzSTUuyvEDSiY2hkXU75NHmHIzA8bGeX5Zt8nJK 5uDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :delivered-to; bh=jxXzZ/SxR27t3/D0vzDrBKnhDD18vjx5aTAMPaT0F9w=; b=YT43dZcQY4uWX3WB9HCBER0Lo/w6W3uNw4Ixl7wVRIXv4Q7JvFi0x7/IjEpFeV4KvX GXV3DOHeMwLJ+DSfyeiu1KZBYGUMDcwaBu+o5vgQGNgSf1v4/r2oqxujMTMzWyTG5ZIK l9kzRciiKRXwlGbMPYge917UeDzTNliccKy2V37OPEzmLY4eikMF5TebuQkqZkGRHtZ5 +AMlFBZXxrcQ+DT/GtfliBVr6uE4Qv/doZQvLqpm/oesycawCHmbJrVQCzr/8K/Z/cLm UgzgqQ0uasSDM7PBqAr7agxxyk3X7de4t4J2qA9GmvLZs/9FY6CN/DWaDXip7UyNZr+T vrEA== ARC-Authentication-Results: i=1; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id e17-20020a17090658d100b007a92b00c094si4842451ejs.421.2022.11.13.10.44.52; Sun, 13 Nov 2022 10:44:53 -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 5965668B22C; Sun, 13 Nov 2022 20:44:48 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from iq.passwd.hu (iq.passwd.hu [217.27.212.140]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7473868B22C for ; Sun, 13 Nov 2022 20:44:46 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id 8338BE75DA; Sun, 13 Nov 2022 19:44:44 +0100 (CET) X-Virus-Scanned: amavisd-new at passwd.hu Received: from iq.passwd.hu ([127.0.0.1]) by localhost (iq.passwd.hu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id D94rN8icAlhj; Sun, 13 Nov 2022 19:44:43 +0100 (CET) Received: from bluegene.passwd.hu (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id C0707E710F; Sun, 13 Nov 2022 19:44:42 +0100 (CET) From: Marton Balint To: ffmpeg-devel@ffmpeg.org Date: Sun, 13 Nov 2022 19:44:39 +0100 Message-Id: <20221113184441.1741-1-cus@passwd.hu> X-Mailer: git-send-email 2.35.3 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] avformat/electronicarts: fix EOF check X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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: Marton Balint Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: bcuaSPBPob2c Similar to feof(), avio_feof() is only true after an actual overread. Signed-off-by: Marton Balint --- libavformat/electronicarts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c index e7f0cb9b9e..0a0d6249e8 100644 --- a/libavformat/electronicarts.c +++ b/libavformat/electronicarts.c @@ -582,9 +582,9 @@ static int ea_read_packet(AVFormatContext *s, AVPacket *pkt) int av_uninit(num_samples); while ((!packet_read && !hit_end) || partial_packet) { + chunk_type = avio_rl32(pb); if (avio_feof(pb)) return AVERROR_EOF; - chunk_type = avio_rl32(pb); chunk_size = ea->big_endian ? avio_rb32(pb) : avio_rl32(pb); if (chunk_size < 8) return AVERROR_INVALIDDATA; From patchwork Sun Nov 13 18:44:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marton Balint X-Patchwork-Id: 39255 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp2041866pzb; Sun, 13 Nov 2022 10:45:03 -0800 (PST) X-Google-Smtp-Source: AA0mqf6vhmyk4aViFdj7ndkMcEkoxZZ87OGGlPh/91UWicpClgb9oxGLnhwwziwRDafgePdEaTIH X-Received: by 2002:aa7:cc91:0:b0:459:4c7:60d7 with SMTP id p17-20020aa7cc91000000b0045904c760d7mr9103326edt.175.1668365103370; Sun, 13 Nov 2022 10:45:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668365103; cv=none; d=google.com; s=arc-20160816; b=0Z6IiNbLHqOpXLmQ9S0Spx4Dnp2ckllaRDgdzkVMTueGc941HFyQ5dysAtJJyX4cW8 lJfKofGsKvcekCoBSdBQ1gf4TATpn5eY5dgZs2nMbHyvrqdDGsUxgqaK7mknk+AKMCZA kZ3S+6SK1dzA39neLBvZcBY5acKdv20rm0mjYawWaEf65EWBQLkhnTrN4PIkL+PA9MbE oXIDZp11MBR3/FZ7UAPLVURRFF88Xxj8ntdnbsIcpaULkRRn0xpdCo1+JgiiLh2Qu8gY fxUz5hQDG4H+lU0EEyEaV6srsmmL5uBf8sNyFNaSnJQ1KeEbquBMXHewJWuA8S9RlDns gN+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=nJQUx5ievlIlpqrYoZWviG/kwxMaw7AZvNTr+LMKa/Q=; b=UhEInCT3na1ZdvWgyWOagb+JbGMbn7dRjwiu4FKojyYipCNNY28ghCWBKZ4/vbvvzP lbSyh8ZidSNkgkBViPor8WjFrTNYLG5MO7b5JTqyT5ZGAoRgMUvcHoi9aArmBmiYvjGK kugwrxdooJBz4cW63VVEshwwRkid4UwTPSt8R/+Q8GR1/RoyEmfaKEw1bCfC11TWOKg/ VWrnLVjSSnMM7P9nsIQymDui2xl9iPDwaVxwBnTeSqmN0whW5pQI5IE2ICiXFfW48zDI ZblWL6okNFM6FY+TrZwaB9GR48DxvvBl55a4KDxp7l6VJ07gN+EfuCUnL9121zO9BWjO sQKQ== ARC-Authentication-Results: i=1; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id t36-20020a056402242400b0045cc02ce2aasi7752964eda.319.2022.11.13.10.45.03; Sun, 13 Nov 2022 10:45:03 -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 635AA68BA9A; Sun, 13 Nov 2022 20:44:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from iq.passwd.hu (iq.passwd.hu [217.27.212.140]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 39BA268BA4A for ; Sun, 13 Nov 2022 20:44:50 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id 731CAE75DA; Sun, 13 Nov 2022 19:44:48 +0100 (CET) X-Virus-Scanned: amavisd-new at passwd.hu Received: from iq.passwd.hu ([127.0.0.1]) by localhost (iq.passwd.hu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id a1byUKkMU3xA; Sun, 13 Nov 2022 19:44:47 +0100 (CET) Received: from bluegene.passwd.hu (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id 48A52E710F; Sun, 13 Nov 2022 19:44:47 +0100 (CET) From: Marton Balint To: ffmpeg-devel@ffmpeg.org Date: Sun, 13 Nov 2022 19:44:40 +0100 Message-Id: <20221113184441.1741-2-cus@passwd.hu> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20221113184441.1741-1-cus@passwd.hu> References: <20221113184441.1741-1-cus@passwd.hu> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/3] avformat/electronicarts: set packet_read in one place X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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: Marton Balint Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Fu+I/KUu0knB Signed-off-by: Marton Balint --- libavformat/electronicarts.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c index 0a0d6249e8..0532264f38 100644 --- a/libavformat/electronicarts.c +++ b/libavformat/electronicarts.c @@ -726,8 +726,9 @@ get_video_packet: ret = av_append_packet(pb, pkt, chunk_size); } else ret = av_get_packet(pb, pkt, chunk_size); + packet_read = 1; + if (ret < 0) { - packet_read = 1; partial_packet = 0; break; } @@ -737,7 +738,6 @@ get_video_packet: else pkt->stream_index = ea->video.stream_index; pkt->flags |= key; - packet_read = 1; break; default: From patchwork Sun Nov 13 18:44:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marton Balint X-Patchwork-Id: 39256 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp2042240pzb; Sun, 13 Nov 2022 10:45:11 -0800 (PST) X-Google-Smtp-Source: AA0mqf4hrQDw4RyJBgZfVf65mG4yuOTg3oMjUWukpWcXtrApsVDuHee3XHM3cImjSaazDwwwi3y9 X-Received: by 2002:a17:906:e2c4:b0:7ad:dfb5:a3f2 with SMTP id gr4-20020a170906e2c400b007addfb5a3f2mr7998947ejb.351.1668365111250; Sun, 13 Nov 2022 10:45:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668365111; cv=none; d=google.com; s=arc-20160816; b=sC3zTl+qK4tqxl++lsCarfKgMGWO6rh2q7GJhjT1An+7ZTOD/UuUSYKxlRy1fb6oxZ dvDT98i5dPcn8+GiZN9APU1QZ0IiP8PGwHC1JXA2oMGTJGDP/l53Yzt3YPIK79d45+jm VVRwvQpv/2dR0JdcjY9CHTu/lK2Kv0nZZDbwQmox7rJ2cV1yCEugNMX/+IKojuCCpHKR mUa0F9tSiFGpTGsn19pDa+BgeJ9cPRE2q7U/UpxTbP2kEwEmUIQ6Pw4K3i3xZgxeM/Q6 VOZ4gUUrLmRG8VeFdSxC5MGTfmBu/3O5pqnaswDYcYEYy0+GVGc3h98BGg7OdOeG2C4U y36A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=hIzd6HS32gfktam3KD+4yArpse9/jrLGE7wBno1Ti8U=; b=NA8DDd4DvPr78wJbcBXOPVh16I96xYyoU2KSlqlb4egb7j87NJkzUMNUoiiEqFvsVp 96nsZ1HZGn6E2Cjd1ynt+tLh6EfCeE5nTKsU2GNtonRefxQw36nsxKAxpir6P1VGihB2 WiVL8RPuDC751zAalevR2PlKyChXwrtAj9bZrX4c/tIZmtf2pe7+KNzAteAPBdV7uRAp 9/7yx/FfHv66A4+A0ZcuqAgLm5aftW8EIj+4hEoRUxL0d+WAfwNub2+ju0V/j/uSHUYp ER8XZGbtDM9RCpNzXe77PV8pvPPIGBRfuwOVXd58/xaPa1K22YaXWM5fRDl0dJdNpVeQ UmyQ== ARC-Authentication-Results: i=1; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id f19-20020a0564021e9300b00462f4ea167esi8093514edf.315.2022.11.13.10.45.10; Sun, 13 Nov 2022 10:45:11 -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 6B69F68BABF; Sun, 13 Nov 2022 20:44:54 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from iq.passwd.hu (iq.passwd.hu [217.27.212.140]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F22AA680C4A for ; Sun, 13 Nov 2022 20:44:52 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id 2EF16E710F; Sun, 13 Nov 2022 19:44:51 +0100 (CET) X-Virus-Scanned: amavisd-new at passwd.hu Received: from iq.passwd.hu ([127.0.0.1]) by localhost (iq.passwd.hu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5igPaFZxiF-e; Sun, 13 Nov 2022 19:44:49 +0100 (CET) Received: from bluegene.passwd.hu (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id BF8F5E75DA; Sun, 13 Nov 2022 19:44:49 +0100 (CET) From: Marton Balint To: ffmpeg-devel@ffmpeg.org Date: Sun, 13 Nov 2022 19:44:41 +0100 Message-Id: <20221113184441.1741-3-cus@passwd.hu> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20221113184441.1741-1-cus@passwd.hu> References: <20221113184441.1741-1-cus@passwd.hu> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/3] avformat/electronicarts: add option to return alpha channel in the main video stream in VP6A codec X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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: Marton Balint Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 4hTxf2iRT7EL Signed-off-by: Marton Balint --- doc/demuxers.texi | 18 ++++++++++++++++ libavformat/electronicarts.c | 42 +++++++++++++++++++++++++++++++----- libavformat/version.h | 2 +- 3 files changed, 56 insertions(+), 6 deletions(-) diff --git a/doc/demuxers.texi b/doc/demuxers.texi index 2b6dd86c2a..f07f3f5318 100644 --- a/doc/demuxers.texi +++ b/doc/demuxers.texi @@ -285,6 +285,24 @@ This demuxer accepts the following option: @end table +@section ea + +Electronic Arts Multimedia format demuxer. + +This format is used by various Electronic Arts games. + +@subsection Options + +@table @option + +@item merge_alpha @var{bool} + +Normally the VP6 alpha channel (if exists) is returned as a secondary video +stream, by setting this option you can make the demuxer return a single video +stream which contains the alpha channel in addition to the ordinary video. + +@end table + @section imf Interoperable Master Format demuxer. diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c index 0532264f38..e7f574aede 100644 --- a/libavformat/electronicarts.c +++ b/libavformat/electronicarts.c @@ -28,6 +28,7 @@ #include #include "libavutil/intreadwrite.h" +#include "libavutil/opt.h" #include "avformat.h" #include "internal.h" @@ -75,6 +76,8 @@ typedef struct VideoProperties { } VideoProperties; typedef struct EaDemuxContext { + const AVClass *class; + int big_endian; VideoProperties video, alpha; @@ -88,6 +91,7 @@ typedef struct EaDemuxContext { int num_samples; int platform; + int merge_alpha; } EaDemuxContext; static uint32_t read_arbitrary(AVIOContext *pb) @@ -442,6 +446,10 @@ static int process_ea_header(AVFormatContext *s) case AVhd_TAG: err = process_video_header_vp6(s, &ea->alpha); + if (err >= 0 && ea->video.codec == AV_CODEC_ID_VP6 && ea->merge_alpha) { + ea->alpha.codec = 0; + ea->video.codec = AV_CODEC_ID_VP6A; + } break; } @@ -578,7 +586,7 @@ static int ea_read_packet(AVFormatContext *s, AVPacket *pkt) int partial_packet = 0; int hit_end = 0; unsigned int chunk_type, chunk_size; - int ret = 0, packet_read = 0, key = 0; + int ret = 0, packet_read = 0, key = 0, vp6a; int av_uninit(num_samples); while ((!packet_read && !hit_end) || partial_packet) { @@ -721,19 +729,28 @@ static int ea_read_packet(AVFormatContext *s, AVPacket *pkt) get_video_packet: if (!chunk_size) continue; + if (chunk_size > INT_MAX - 3) + return AVERROR_INVALIDDATA; + + vp6a = (ea->video.codec == AV_CODEC_ID_VP6A && (chunk_type == MV0F_TAG || chunk_type == MV0K_TAG)); if (partial_packet) { ret = av_append_packet(pb, pkt, chunk_size); - } else - ret = av_get_packet(pb, pkt, chunk_size); + } else { + if (vp6a) + avio_seek(pb, -3, SEEK_CUR); + ret = av_get_packet(pb, pkt, chunk_size + (vp6a ? 3 : 0)); + if (ret >= 0 && vp6a) + AV_WB24(pkt->data, chunk_size); + } packet_read = 1; if (ret < 0) { partial_packet = 0; break; } - partial_packet = chunk_type == MVIh_TAG; - if (chunk_type == AV0K_TAG || chunk_type == AV0F_TAG) + partial_packet = vp6a || chunk_type == MVIh_TAG; + if (ea->alpha.codec && (chunk_type == AV0K_TAG || chunk_type == AV0F_TAG)) pkt->stream_index = ea->alpha.stream_index; else pkt->stream_index = ea->video.stream_index; @@ -752,6 +769,20 @@ get_video_packet: return ret; } +#define OFFSET(x) offsetof(EaDemuxContext, x) +#define FLAGS AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM +static const AVOption options[] = { + {"merge_alpha", "return VP6 alpha in the main video stream", OFFSET(merge_alpha), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, FLAGS }, + {NULL} +}; + +static const AVClass ea_class = { + .class_name = "ea demuxer", + .item_name = av_default_item_name, + .option = options, + .version = LIBAVUTIL_VERSION_INT, +}; + const AVInputFormat ff_ea_demuxer = { .name = "ea", .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts Multimedia"), @@ -759,4 +790,5 @@ const AVInputFormat ff_ea_demuxer = { .read_probe = ea_probe, .read_header = ea_read_header, .read_packet = ea_read_packet, + .priv_class = &ea_class, }; diff --git a/libavformat/version.h b/libavformat/version.h index 7c9d50b7b3..a7e5a9ac66 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -32,7 +32,7 @@ #include "version_major.h" #define LIBAVFORMAT_VERSION_MINOR 34 -#define LIBAVFORMAT_VERSION_MICRO 101 +#define LIBAVFORMAT_VERSION_MICRO 102 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ LIBAVFORMAT_VERSION_MINOR, \