[FFmpeg-devel] [PATCH] libavcodec/libvpx: Add VPx alpha decode support

Vignesh Venkatasubramanian vigneshv at google.com
Thu Jul 14 22:15:26 EEST 2016


On Tue, Jul 12, 2016 at 12:22 PM, James Almer <jamrial at gmail.com> wrote:
> On 7/12/2016 3:48 PM, Vignesh Venkatasubramanian wrote:
>> VPx (VP8/VP9) alpha encoding has been part of FFmpeg. Now, add the
>> ability to decode such files with alpha channel.
>>
>> Signed-off-by: Vignesh Venkatasubramanian <vigneshv at google.com>
>> ---
>>  libavcodec/libvpxdec.c          | 102 +++++++++++++++++++++++++-------
>>  tests/fate/vpx.mak              |   3 +
>>  tests/ref/fate/vp8-alpha-decode | 125 ++++++++++++++++++++++++++++++++++++++++
>>  3 files changed, 210 insertions(+), 20 deletions(-)
>>  create mode 100644 tests/ref/fate/vp8-alpha-decode
>>
>
> [...]
>
>> diff --git a/tests/fate/vpx.mak b/tests/fate/vpx.mak
>> index f0bcfac..b29a71a 100644
>> --- a/tests/fate/vpx.mak
>> +++ b/tests/fate/vpx.mak
>> @@ -31,6 +31,9 @@ fate-vp6f: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/flash-vp6/clip10
>>  FATE_VP8-$(call DEMDEC, FLV, VP8) += fate-vp8-alpha
>>  fate-vp8-alpha: CMD = framecrc -i $(TARGET_SAMPLES)/vp8_alpha/vp8_video_with_alpha.webm -vcodec copy
>>
>> +FATE_VP8-$(call DEMDEC, FLV, VP8) += fate-vp8-alpha-decode
>
> This line states the tests depends on the internal vp8 decoder, when
> in reality it needs libvpx's. It also states it needs the flv demuxer
> when it's a webm file, but i see you just copied it from the test
> above it which is wrong. I'll fix that in a moment.
>
> In any case, we don't add tests for external library based components,
> so this isn't needed.

Didn't know that. Removed the test.

>
>> +fate-vp8-alpha-decode: CMD = framecrc -vcodec libvpx -i $(TARGET_SAMPLES)/vp8_alpha/vp8_video_with_alpha.webm -vcodec rawvideo -pix_fmt yuva420p -f rawvideo
>> +
>>  FATE_VP8-$(call DEMDEC, WEBM_DASH_MANIFEST, VP8) += fate-webm-dash-manifest
>>  fate-webm-dash-manifest: CMD = run $(FFMPEG) -f webm_dash_manifest -i $(TARGET_SAMPLES)/vp8/dash_video1.webm -f webm_dash_manifest -i $(TARGET_SAMPLES)/vp8/dash_video2.webm -f webm_dash_manifest -i $(TARGET_SAMPLES)/vp8/dash_audio1.webm -f webm_dash_manifest -i $(TARGET_SAMPLES)/vp8/dash_audio2.webm -c copy -map 0 -map 1 -map 2 -map 3 -f webm_dash_manifest -adaptation_sets "id=0,streams=0,1 id=1,streams=2,3" -
>>
>> diff --git a/tests/ref/fate/vp8-alpha-decode b/tests/ref/fate/vp8-alpha-decode
>> new file mode 100644
>> index 0000000..40b28d2
>> --- /dev/null
>> +++ b/tests/ref/fate/vp8-alpha-decode
>> @@ -0,0 +1,125 @@
>> +#tb 0: 1/30
>> +#media_type 0: video
>> +#codec_id 0: rawvideo
>> +#dimensions 0: 320x213
>> +#sar 0: 1/1
>> +0,          0,          0,        1,   170560, 0x2a1293ad
>> +0,          1,          1,        1,   170560, 0x6c88cb4b
>> +0,          2,          2,        1,   170560, 0x27585dc5
>> +0,          3,          3,        1,   170560, 0x73cbe037
>> +0,          4,          4,        1,   170560, 0x4eca3cd5
>> +0,          5,          5,        1,   170560, 0xdfecde95
>> +0,          6,          6,        1,   170560, 0x38dfe631
>> +0,          7,          7,        1,   170560, 0xbbe546a1
>> +0,          8,          8,        1,   170560, 0xa78ffec3
>> +0,          9,          9,        1,   170560, 0x917923f7
>> +0,         10,         10,        1,   170560, 0x82927437
>> +0,         11,         11,        1,   170560, 0xe1bfa664
>> +0,         12,         12,        1,   170560, 0x1091e069
>> +0,         13,         13,        1,   170560, 0x96551722
>> +0,         14,         14,        1,   170560, 0x9a952c31
>> +0,         15,         15,        1,   170560, 0xb2e34dff
>> +0,         16,         16,        1,   170560, 0x09f77a76
>> +0,         17,         17,        1,   170560, 0xf6f5a3de
>> +0,         18,         18,        1,   170560, 0x6453bd09
>> +0,         19,         19,        1,   170560, 0x7d64c755
>> +0,         20,         20,        1,   170560, 0x1e11c29d
>> +0,         21,         21,        1,   170560, 0x57dca8ba
>> +0,         22,         22,        1,   170560, 0x594d982a
>> +0,         23,         23,        1,   170560, 0xd2017b7d
>> +0,         24,         24,        1,   170560, 0x46af60e2
>> +0,         25,         25,        1,   170560, 0x186b60bd
>> +0,         26,         26,        1,   170560, 0x9bd96210
>> +0,         27,         27,        1,   170560, 0x6efb7e78
>> +0,         28,         28,        1,   170560, 0xd0219673
>> +0,         29,         29,        1,   170560, 0x81bfc1c7
>> +0,         30,         30,        1,   170560, 0x61a30393
>> +0,         31,         31,        1,   170560, 0x6cfc30e0
>> +0,         32,         32,        1,   170560, 0x820557d8
>> +0,         33,         33,        1,   170560, 0xa4f88301
>> +0,         34,         34,        1,   170560, 0x072fb542
>> +0,         35,         35,        1,   170560, 0x8d3cd908
>> +0,         36,         36,        1,   170560, 0x776be292
>> +0,         37,         37,        1,   170560, 0x2074ca19
>> +0,         38,         38,        1,   170560, 0x3f5d8ab8
>> +0,         39,         39,        1,   170560, 0x393425b3
>> +0,         40,         40,        1,   170560, 0x8332948c
>> +0,         41,         41,        1,   170560, 0x151df7b7
>> +0,         42,         42,        1,   170560, 0xd8e64eb2
>> +0,         43,         43,        1,   170560, 0xa3512c1c
>> +0,         44,         44,        1,   170560, 0x27a15536
>> +0,         45,         45,        1,   170560, 0x2579d29a
>> +0,         46,         46,        1,   170560, 0x75524551
>> +0,         47,         47,        1,   170560, 0xc7236dbd
>> +0,         48,         48,        1,   170560, 0xbf2f7f6f
>> +0,         49,         49,        1,   170560, 0xaad98788
>> +0,         50,         50,        1,   170560, 0xf5ab997a
>> +0,         51,         51,        1,   170560, 0x153e84ef
>> +0,         52,         52,        1,   170560, 0x79ed8200
>> +0,         53,         53,        1,   170560, 0x524474a3
>> +0,         54,         54,        1,   170560, 0x3602695d
>> +0,         55,         55,        1,   170560, 0x13cd63cd
>> +0,         56,         56,        1,   170560, 0xdfba6dac
>> +0,         57,         57,        1,   170560, 0x8b319424
>> +0,         58,         58,        1,   170560, 0x43b49c67
>> +0,         59,         59,        1,   170560, 0x2107c194
>> +0,         60,         60,        1,   170560, 0x5ecb22f3
>> +0,         61,         61,        1,   170560, 0x1ddb4a99
>> +0,         62,         62,        1,   170560, 0xc5ac63ed
>> +0,         63,         63,        1,   170560, 0x3db28c93
>> +0,         64,         64,        1,   170560, 0x6b98a419
>> +0,         65,         65,        1,   170560, 0x17deae77
>> +0,         66,         66,        1,   170560, 0x3bcfb34e
>> +0,         67,         67,        1,   170560, 0x6f6cb81b
>> +0,         68,         68,        1,   170560, 0x0655e03b
>> +0,         69,         69,        1,   170560, 0xde7d06a1
>> +0,         70,         70,        1,   170560, 0x8e51535c
>> +0,         71,         71,        1,   170560, 0xea256867
>> +0,         72,         72,        1,   170560, 0xc08c4fdd
>> +0,         73,         73,        1,   170560, 0xe30b4791
>> +0,         74,         74,        1,   170560, 0x981b9218
>> +0,         75,         75,        1,   170560, 0x29d34848
>> +0,         76,         76,        1,   170560, 0xafc0000c
>> +0,         77,         77,        1,   170560, 0x18b477fb
>> +0,         78,         78,        1,   170560, 0x7f4ac3e3
>> +0,         79,         79,        1,   170560, 0xc653fcb9
>> +0,         80,         80,        1,   170560, 0x1bef5046
>> +0,         81,         81,        1,   170560, 0x34b28216
>> +0,         82,         82,        1,   170560, 0x2b75c377
>> +0,         83,         83,        1,   170560, 0x014b226b
>> +0,         84,         84,        1,   170560, 0x8a964e61
>> +0,         85,         85,        1,   170560, 0xe49880a4
>> +0,         86,         86,        1,   170560, 0x4472cbd1
>> +0,         87,         87,        1,   170560, 0xe56a20f8
>> +0,         88,         88,        1,   170560, 0x0ab3653f
>> +0,         89,         89,        1,   170560, 0xadc89f74
>> +0,         90,         90,        1,   170560, 0xe36dfdaf
>> +0,         91,         91,        1,   170560, 0xe2514944
>> +0,         92,         92,        1,   170560, 0xc4eb9ac9
>> +0,         93,         93,        1,   170560, 0xfde3ec34
>> +0,         94,         94,        1,   170560, 0x4a1c4a02
>> +0,         95,         95,        1,   170560, 0xd803acee
>> +0,         96,         96,        1,   170560, 0x4f8809cc
>> +0,         97,         97,        1,   170560, 0x566b6b45
>> +0,         98,         98,        1,   170560, 0x8bd2bc6a
>> +0,         99,         99,        1,   170560, 0xa509ec67
>> +0,        100,        100,        1,   170560, 0xeed1fe6d
>> +0,        101,        101,        1,   170560, 0xa8fe0bef
>> +0,        102,        102,        1,   170560, 0x909c0af9
>> +0,        103,        103,        1,   170560, 0xc8f5f598
>> +0,        104,        104,        1,   170560, 0x3e93c2e3
>> +0,        105,        105,        1,   170560, 0xa0c275b6
>> +0,        106,        106,        1,   170560, 0x93085bc0
>> +0,        107,        107,        1,   170560, 0x7fd646b1
>> +0,        108,        108,        1,   170560, 0x67a24d63
>> +0,        109,        109,        1,   170560, 0x184b79f1
>> +0,        110,        110,        1,   170560, 0x979cc32f
>> +0,        111,        111,        1,   170560, 0xdc0a064f
>> +0,        112,        112,        1,   170560, 0xabf94c6f
>> +0,        113,        113,        1,   170560, 0x614d6043
>> +0,        114,        114,        1,   170560, 0x4a963b04
>> +0,        115,        115,        1,   170560, 0x06290370
>> +0,        116,        116,        1,   170560, 0xb68ccf53
>> +0,        117,        117,        1,   170560, 0x9e379142
>> +0,        118,        118,        1,   170560, 0x09a561af
>> +0,        119,        119,        1,   170560, 0xf0fb1e9a
>>
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel



-- 
Vignesh


More information about the ffmpeg-devel mailing list