[FFmpeg-devel] 回复: [PATCH v1 17/19] avcodec/vvc: support fields
Wu Jianhua
toqsxw at outlook.com
Tue Apr 1 21:11:08 EEST 2025
Andreas Rheinhardt <andreas.rheinhardt at outlook.com>:
> toqsxw at gmail.com:
>> From: Wu Jianhua <toqsxw at outlook.com>
>>
>> passed files:
>> FIELD_A_Panasonic_4.bit
>> FIELD_B_Panasonic_2.bit
>>
>> Signed-off-by: Wu Jianhua <toqsxw at outlook.com>
>> ---
>> libavcodec/vvc/refs.c | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/libavcodec/vvc/refs.c b/libavcodec/vvc/refs.c
>> index cfbc2977c0..79967b77d3 100644
>> --- a/libavcodec/vvc/refs.c
>> +++ b/libavcodec/vvc/refs.c
>> @@ -160,6 +160,14 @@ static VVCFrame *alloc_frame(VVCContext *s, VVCFrameContext *fc)
>> frame->ref_width = pps->r->pps_pic_width_in_luma_samples - win->left_offset - win->right_offset;
>> frame->ref_height = pps->r->pps_pic_height_in_luma_samples - win->bottom_offset - win->top_offset;
>>
>> + if (fc->sei.frame_field_info.present) {
>> + if (fc->sei.frame_field_info.picture_struct == AV_PICTURE_STRUCTURE_TOP_FIELD)
>> + frame->frame->flags |= AV_FRAME_FLAG_TOP_FIELD_FIRST;
>> + if (fc->sei.frame_field_info.picture_struct == AV_PICTURE_STRUCTURE_TOP_FIELD ||
>> + fc->sei.frame_field_info.picture_struct == AV_PICTURE_STRUCTURE_BOTTOM_FIELD)
>> + frame->frame->flags |= AV_FRAME_FLAG_INTERLACED;
>> + }
>> +
>> frame->progress = alloc_progress();
>> if (!frame->progress)
>> goto fail;
>
> Does this output the fields separately? Normally, FFmpeg/libavcodec only
> outputs actual frames and marks these with the AV_FRAME_FLAG_INTERLACED
> flag if the content is interlaced. AV_FRAME_FLAG_INTERLACED does not
> mean that it is a single field.
>
>- Andreas
The vvc decoder will output the each single fields and need to use the filter 'tinterlace' to output the actual frames,
so I don't need to mark it with AV_FRAME_FLAG_INTERLACED flag, right?
Jianhua
More information about the ffmpeg-devel
mailing list