[FFmpeg-devel] [PATCH] libavformat/hls: add support for SAMPLE-AES decryption in HLS demuxer

Nachiket Tarate nachiket.tarate at outlook.com
Mon Oct 19 17:53:30 EEST 2020



________________________________________
From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> on behalf of Steven Liu <lq at chinaffmpeg.org>
Sent: Monday, October 19, 2020 3:17 PM
To: FFmpeg development discussions and patches
Cc: Steven Liu
Subject: Re: [FFmpeg-devel] [PATCH] libavformat/hls: add support for SAMPLE-AES decryption in HLS demuxer



> 2020年10月19日 下午4:10,Nachiket Tarate <nachiket.tarate at outlook.com> 写道:
>
>
>
> ________________________________________
> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> on behalf of Steven Liu <lingjiujianke at gmail.com>
> Sent: Monday, October 19, 2020 7:43 AM
> To: FFmpeg development discussions and patches
> Subject: Re: [FFmpeg-devel] [PATCH] libavformat/hls: add support for SAMPLE-AES decryption in HLS demuxer
>
> Nachiket Tarate <nachiket.tarate at outlook.com> 于2020年10月18日周日 上午8:07写道:
>>
>> _______________________________________
>> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> on behalf of Michael Niedermayer <michael at niedermayer.cc>
>> Sent: Thursday, October 15, 2020 11:35 PM
>> To: FFmpeg development discussions and patches
>> Subject: Re: [FFmpeg-devel] [PATCH] libavformat/hls: add support for SAMPLE-AES decryption in HLS demuxer
>>
>> On Thu, Oct 15, 2020 at 10:15:13PM +0530, Nachiket Tarate wrote:
>>> Apple HTTP Live Streaming Sample Encryption:
>>>
>>> https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/HLS_Sample_Encryption
>>>
>>> Signed-off-by: Nachiket Tarate <nachiket.tarate at outlook.com>
>>> ---
>>> libavformat/Makefile         |   2 +-
>>> libavformat/hls.c            |  93 ++++++-
>>> libavformat/hls_sample_aes.c | 497 +++++++++++++++++++++++++++++++++++
>>> libavformat/hls_sample_aes.h |  64 +++++
>>> libavformat/mpegts.c         |  15 ++
>>> 5 files changed, 657 insertions(+), 14 deletions(-)
>>> create mode 100644 libavformat/hls_sample_aes.c
>>> create mode 100644 libavformat/hls_sample_aes.h
>>
>> This seems to break fate (segfault)
>> I guess patchwork will notice it too but as i already tested and noticed ...
>>
>> --- ./tests/ref/fate/segment-mp4-to-ts  2020-10-10 18:08:06.500253003 +0200
>> +++ tests/data/fate/segment-mp4-to-ts   2020-10-15 20:03:24.586303460 +0200
>> @@ -128,5 +128,3 @@
>> 0,     428400,     435600,     3600,      156, 0xd2c3406c, F=0x0, S=1,        1, 0x00e000e0
>> 0,     432000,     439200,     3600,      330, 0x150d9b60, F=0x0, S=1,        1, 0x00e000e0
>> 0,     435600,     446400,     3600,      324, 0x558194ee, F=0x0, S=1,        1, 0x00e000e0
>> -0,     439200,     442800,     3600,      191, 0x108e54d1, F=0x0, S=1,        1, 0x00e000e0
>> -0,     442800,     450000,     3600,      233, 0xac5b6486, F=0x0
>> Test segment-mp4-to-ts failed. Look at tests/data/fate/segment-mp4-to-ts.err for details.
>> tests/Makefile:255: recipe for target 'fate-segment-mp4-to-ts' failed
>> make: *** [fate-segment-mp4-to-ts] Error 139
>>
>>
>> I ran FATE with samples again but I didn't get segfault. Can you please help me to reproduce it ?
>
> https://patchwork.ffmpeg.org/project/ffmpeg/patch/SG2PR01MB269339627C977C841E26B05DF2020@SG2PR01MB2693.apcprd01.prod.exchangelabs.com/
> fate failed message here.
>
> TEST    segment-mp4-to-ts
> --- /Users/liuqi/multimedia/upstream_ffmpeg/ffmpeg/tests/ref/fate/segment-mp4-to-ts
> 2020-10-19 09:24:15.000000000 +0800
> +++ tests/data/fate/segment-mp4-to-ts 2020-10-19 10:09:43.000000000 +0800
> @@ -128,5 +128,3 @@
> 0,     428400,     435600,     3600,      156, 0xd2c3406c, F=0x0,
> S=1,        1, 0x00e000e0
> 0,     432000,     439200,     3600,      330, 0x150d9b60, F=0x0,
> S=1,        1, 0x00e000e0
> 0,     435600,     446400,     3600,      324, 0x558194ee, F=0x0,
> S=1,        1, 0x00e000e0
> -0,     439200,     442800,     3600,      191, 0x108e54d1, F=0x0,
> S=1,        1, 0x00e000e0
> -0,     442800,     450000,     3600,      233, 0xac5b6486, F=0x0
> Test segment-mp4-to-ts failed. Look at
> tests/data/fate/segment-mp4-to-ts.err for details.
> make: *** [fate-segment-mp4-to-ts] Error 134
> (base) liuqi05:ufbuild liuqi$ history |grep make | tail -n 5
>  318  make -j6
>  319  make fate-rsync
>  320  make fate
>
> (base) liuqi05:ufbuild liuqi$ ./ffmpeg
> ffmpeg version N-99556-gf7e2f090ed Copyright (c) 2000-2020 the FFmpeg developers
>  built with Apple clang version 12.0.0 (clang-1200.0.32.2)
>  configuration: --cc=clang --quiet --enable-htmlpages
> --enable-libx264 --enable-libxml2 --enable-gpl --extra-ldflags='-O0
> -g3 -fsanitize=address -Wno-error -fPIC -I/usr/local/include'
> --extra-ldflags='-O0 -g3 -fsanitize=address -Wno-error -fPIC
> -L/usr/local/lib' --enable-libfreetype --enable-fontconfig
> --enable-libspeex --enable-libopus --enable-libzmq --enable-libx265
> --enable-libass --enable-videotoolbox --disable-optimizations
> --enable-audiotoolbox --enable-opengl --disable-stripping
> --samples=../../fate-suite/
>
>
> need use samples --samples=../../fate-suite/
> and make fate-rsync
>
> after above two step, you can make fate reproduce it.
>
>
> Actually, I did
>
> make fate-rsync SAMPLES=fate-suite/
> make fate SAMPLES=fate-suite/
>
> It is same.
>
> But segmentation fault didn't occur while executing segment-mp4-to-ts.

What your configure options?

ffprobe version N-99561-g3aeaa2043e Copyright (c) 2007-2020 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
  configuration: --disable-static --enable-shared --enable-debug --disable-stripping --extra-cflags=-g --extra-ldflags='-Wl,-rpath,/usr/local/lib' --enable-gpl --enable-nonfree --enable-version3 --enable-openssl --enable-libfreetype --enable-libass --enable-libmp3lame --enable-libfdk-aac --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265

--
Best Regards,
Nachiket Tarate


More information about the ffmpeg-devel mailing list