[FFmpeg-devel] [PATCHv8] libavcodec: v4l2: add support for v4l2 mem2mem codecs

Mark Thompson sw at jkqxz.net
Sun Sep 3 21:13:34 EEST 2017


On 03/09/17 16:26, Jorge Ramirez wrote:
> On 09/03/2017 04:56 PM, Jorge Ramirez wrote:
>> On 09/03/2017 02:27 AM, Mark Thompson wrote:
>>>> +    .long_name      = NULL_IF_CONFIG_SMALL("V4L2 mem2mem " LONGNAME " decoder wrapper"),\
>>>> +    .type           = AVMEDIA_TYPE_VIDEO,\
>>>> +    .id             = CODEC ,\
>>>> +    .priv_data_size = sizeof(V4L2m2mContext),\
>>>> +    .priv_class     = &v4l2_m2m_ ## NAME ## _dec_class,\
>>>> +    .init           = v4l2m2m_decode_init,\
>>>> +    .receive_frame  = v4l2m2m_receive_frame,\
>>>> +    .close          = ff_v4l2m2m_codec_end,\
>>>> +    .bsfs           = bsf_name, \
>>>> +};
>>>> +
>>>> +M2MDEC(h264,  "H.264", AV_CODEC_ID_H264,       "h264_mp4toannexb");
>>>> +M2MDEC(hevc,  "HEVC",  AV_CODEC_ID_HEVC,       "h264_mp4toannexb");
>>> h264_mp4toannexb is for H.264, and will refuse to do anything with H.265:
>>>
>>> "[AVBSFContext @ 0x55f4d346c620] Codec 'hevc' (174) is not supported by the bitstream filter 'h264_mp4toannexb'. Supported codecs are: h264 (28)."
>>>
>>> (Was this decoder really tested as the commit message claims?)
>>>
>>
>> yes it was a couple of versions ago though: without it, the decoded frames could not be displayed using the dragon board 820c.
>> however just tried again and got the error message that you mentioned;
>> [...]
>> [AVBSFContext @ 0xffff74000b90] Codec 'hevc' (174) is not supported by the bitstream filter 'h264_mp4toannexb'. Supported codecs are: h264 (28)
>> [AVBSFContext @ 0xffff74000b90] Codec 'hevc' (174) is not supported by the bitstream filter 'h264_mp4toannexb'. Supported codecs are: h264 (28)
>> [AVBSFContext @ 0xffff74000b90] Codec 'hevc' (174) is not supported by the bitstream filter 'h264_mp4toannexb'. Supported codecs are: h264 (28)
>> [AVBSFContext @ 0xffff74000b90] Codec 'hevc' (174) is not supported by the bitstream filter 'h264_mp4toannexb'. Supported codecs are: h264 (28)
>> [AVBSFContext @ 0xffff74000b90] Codec 'hevc' (174) is not supported by the bitstream filter 'h264_mp4toannexb'. Supported codecs are: h264 (28)
>>
>> yeah now, after removing the h264_mp4toannexb from the decoder, I can not play any HEVC videos on the db820c.....I'll then remove HEVC from the list of supported decoders then. It is a pity.
>>
>>
>>
> 
> actually I will just remove the filter from the hevc decoder instantiation in case some v4l2 codec (different from the one in the db820) can still benefit
> 

What do you actually need here?  An H.265 annex B bitstream, such as created by hevc_mp4toannexb?


More information about the ffmpeg-devel mailing list