[FFmpeg-devel] [PATCHv2] vf_scale: Use correct chroma position in YUV420P interlaced conversions

Kieran Kunhya kierank at obe.tv
Wed Dec 24 17:08:19 CET 2014


>
>> +
>>              av_opt_set_int(*s, "src_h_chr_pos", scale->in_h_chr_pos, 0);
>>              av_opt_set_int(*s, "src_v_chr_pos", scale->in_v_chr_pos, 0);
>>              av_opt_set_int(*s, "dst_h_chr_pos", scale->out_h_chr_pos, 0);
>> @@ -520,8 +527,8 @@ static int filter_frame(AVFilterLink *link, AVFrame *in)
>>                INT_MAX);
>>
>>      if(scale->interlaced>0 || (scale->interlaced<0 && in->interlaced_frame)){
>> -        scale_slice(link, out, in, scale->isws[0], 0, (link->h+1)/2, 2, 0);
>> -        scale_slice(link, out, in, scale->isws[1], 0,  link->h   /2, 2, 1);
>> +        scale_slice(link, out, in, scale->isws[!in->top_field_first], 0, (link->h+1)/2, 2, 0);
>> +        scale_slice(link, out, in, scale->isws[in->top_field_first],  0,  link->h   /2, 2, 1);
>>      }else{
>
> are you sure this is correct ?
> maybe i misunderstand but it looks a bit odd
> i think the upper field(s) should be treated the same no matter if
> its temporally first or second

If the lower field is the first line, then the lower field has a
different chroma position.


More information about the ffmpeg-devel mailing list