[FFmpeg-devel] [PATCH 1/2] libavcodec/v4l2_buffers.c: set AVFrame interlaced flags

Scott Theisen scott.the.elm at gmail.com
Mon Dec 16 22:05:17 EET 2024


On 12/15/24 22:25, James Almer wrote:
> On 12/15/2024 1:14 AM, Scott Theisen wrote:
>> Originally from:
>> https://github.com/MythTV/mythtv/commit/669955c6cb29196b4b5120451b5b998d67a65749 
>>
>> ---
>>   libavcodec/v4l2_buffers.c | 38 ++++++++++++++++++++++++++++++++++++++
>>   1 file changed, 38 insertions(+)
>>
>> diff --git a/libavcodec/v4l2_buffers.c b/libavcodec/v4l2_buffers.c
>> index 23474ee143..56a8f0825c 100644
>> --- a/libavcodec/v4l2_buffers.c
>> +++ b/libavcodec/v4l2_buffers.c
>> @@ -210,6 +210,43 @@ static enum AVColorTransferCharacteristic 
>> v4l2_get_color_trc(V4L2Buffer *buf)
>>       return AVCOL_TRC_UNSPECIFIED;
>>   }
>>   +static void v4l2_get_interlacing(AVFrame *frame, V4L2Buffer *buf)
>> +{
>> +    enum v4l2_field field;
>> +    field = V4L2_TYPE_IS_MULTIPLANAR(buf->buf.type) ?
>> +        buf->context->format.fmt.pix_mp.field :
>> +        buf->context->format.fmt.pix.field;
>> +
>> +    if (field == V4L2_FIELD_INTERLACED || field == 
>> V4L2_FIELD_INTERLACED_TB) {
>> +        frame->flags |=  AV_FRAME_FLAG_INTERLACED;
>> +        frame->flags |=  AV_FRAME_FLAG_TOP_FIELD_FIRST;
>> +#if FF_API_INTERLACED_FRAME
>> +FF_DISABLE_DEPRECATION_WARNINGS
>> +        frame->interlaced_frame = 1;
>> +        frame->top_field_first  = 1;
>
> No need to set these two fields. It's done by the generic code.
>

OK, I'll remove those lines.  Although it is not clear to me when those 
will be set after libavcodec/pthread_frame.c calls 
ff_decode_receive_frame_internal().

Regards,

Scott Theisen


More information about the ffmpeg-devel mailing list