[FFmpeg-devel] [PATCH] Move param initialization and colorspace details from sws_getContext() to sws_init_context().

Alexander Strange astrange
Thu Sep 30 01:09:53 CEST 2010


On Sep 29, 2010, at 6:56 PM, Stefano Sabatini wrote:

> On date Wednesday 2010-09-29 19:25:28 +0200, Michael Niedermayer encoded:
>> On Wed, Sep 29, 2010 at 06:00:27PM +0200, Stefano Sabatini wrote:
>>> Allow to automatically set the default parameters without explicitely
>>> set them, also simplify conversion to the new sws_init_context() API.
>>> ---
>>> utils.c |   18 +++++++-----------
>>> 1 files changed, 7 insertions(+), 11 deletions(-)
>>> 
>>> diff --git a/utils.c b/utils.c
>>> index 938af9e..bee5a3a 100644
>>> --- a/utils.c
>>> +++ b/utils.c
>>> @@ -761,10 +761,17 @@ int sws_init_context(SwsContext *c, SwsFilter *srcFilter, SwsFilter *dstFilter)
>>>     int dstW= c->dstW;
>>>     int dstH= c->dstH;
>>>     int flags;
>>> +    c->srcRange = handle_jpeg(&c->srcFormat);
>>> +    c->dstRange = handle_jpeg(&c->dstFormat);
>> 
>> that breaks user setted *Range
> 
> I'm aware but I cannot see a simpler way. A possibility would be to
> introduce an hack external to this function, but then doesn't look
> that good as well.
> 
> The problem is: how should the new API deal with JPEG colorspaces?
> Currently when we want to use the JPEG colorspace we pass one of the
> YUVJ* pixel formats. Avoiding this hack would mean to make the various
> FFmpeg components (well, mainly codecs) explicitely define which
> colorspace/range to use.

They should already be doing that, using color_range and co. Although the YUVJ codecs don't set that at the moment.

Which reminds me, ffmpeg.c and other clients of swscale probably ignore AVColorSpace when doing yuv->rgb.




More information about the ffmpeg-devel mailing list