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

James Almer jamrial at gmail.com
Mon Dec 16 22:25:36 EET 2024


On 12/16/2024 5:05 PM, Scott Theisen wrote:
> 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().

They are set in decode_receive_frame_internal(), libavcodec/decode.c, 
not too long before the frame is ultimately returned to the caller.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 495 bytes
Desc: OpenPGP digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20241216/372cfd0e/attachment.sig>


More information about the ffmpeg-devel mailing list