[FFmpeg-devel] [PATCH] avcodec: Pass the HDR10+ metadata to the packet side data in VP9 encoder

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Mon Jun 7 22:58:54 EEST 2021


Michael Niedermayer:
> On Mon, Jun 07, 2021 at 10:39:19AM -0700, Mohammad Izadi wrote:
>> HDR10+ metadata is stored in the bit stream for HEVC. The story is different for VP9 and cannot store the metadata in the bit stream. HDR10+ should be passed to packet side data an stored in the container (mkv) for VP9.
>>
>> This CL is taking HDR10+ from AVFrame side data in libvpxenc and is passing it to the AVPacket side data.
>> ---
>>  doc/APIchanges         |  2 +
>>  libavcodec/avpacket.c  |  1 +
>>  libavcodec/decode.c    |  1 +
>>  libavcodec/libvpxenc.c | 98 ++++++++++++++++++++++++++++++++++++++++++
>>  libavcodec/packet.h    |  8 ++++
>>  libavcodec/version.h   |  4 +-
>>  6 files changed, 112 insertions(+), 2 deletions(-)
> 
> still crashing  ...
>  
>  heres a test with a fate sample:
>  
>  -i ~/fate/msmpeg4v1/mpg4.avi -vcodec libvpx -y   vpx.webm
> 
> 
> frame=   50 fps=0.7 q=0.0 Lsize=      58kB time=00:00:01.63 bitrate= 288.0kbits/s speed=0.0229x    
> video:57kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.558648%
> ==26333== Invalid read of size 4
> ==26333==    at 0x1220B5E: av_fifo_size (fifo.c:79)
> ==26333==    by 0x9F64C5: free_hdr10_plus_fifo (libvpxenc.c:346)
> ==26333==    by 0x9F699D: vpx_free (libvpxenc.c:443)
> ==26333==    by 0x7A20D6: avcodec_close (avcodec.c:472)
> ==26333==    by 0xAE5002: avcodec_free_context (options.c:163)
> ==26333==    by 0x24AC0F: ffmpeg_cleanup (ffmpeg.c:609)
> ==26333==    by 0x24258A: exit_program (cmdutils.c:135)
> ==26333==    by 0x25C5AF: main (ffmpeg.c:5034)
> ==26333==  Address 0x24 is not stack'd, malloc'd or (recently) free'd
> 
> 
The reason is that the fifo is not allocated unconditionally, but when
freeing it is checked whether the fifo is empty even when the fifo has
never been allocated at all.

- Andreas


More information about the ffmpeg-devel mailing list