On Mar 10, 2014, at 4:28 PM, J Decker <[email protected]> wrote:

> I would think you would just use 'sws_getContext' and 'sws_scale'
> worked good for me... 

Thank you for the pointer.  May I have a little more info regarding how you 
used sws_getContext()?  I found its API definition as follows:

struct SwsContext *     sws_getContext (int srcW, int srcH, enum PixelFormat 
srcFormat, int dstW, int dstH, enum PixelFormat dstFormat, int flags, SwsFilter 
*srcFilter, SwsFilter *dstFilter, const double *param)

and it allocates and returns a struct SwsContext*.

In my case I am not modifying anything in my filter, why is this function good 
for me? (I am assuming this performs some kind of transformation because 
there's a source and destination).  Also in the returned SwsContext struct, I 
see there are 4 members:

int     lumXInc
int     chrXInc
int     lumYInc
int     chrYInc

perhaps this is where I can get the luminance?  In that case, does it mean I 
have to perform some kind of transformation before even able to get the Context?


Thank you for in advance for clarification.



> On Mon, Mar 10, 2014 at 4:18 PM, Ricky Huang <[email protected]> wrote:
> Hello all,
> 
> I am writing code that extracts the luminance component of an input video 
> using my own custom filter in libavfilter - specifically I am extracting it 
> from "PIX_FMT_YUV420P" a video and I am wondering how to go about doing so.  
> According to the pixfmt.h header: 
>> 
>> PIX_FMT_YUV420P,   ///< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y 
>> samples)
> 
> I am not sure how to interpret that.  Assuming I am doing this in my 
> draw_slice() function. It has the definition of:
>> 
>> static void draw_slice(AVFilterLink *inlink, int y0, int h, int slice_dir)
> 
> I know I can get to the input data plane by:
>> 
>> AVFilterBufferRef *cur_pic = link->cur_buf;
>> uint8_t *data = cur_pic->data[0];
> 
> But there are multiple "planes" in the data.  Does data[0], data[1], data[2] 
> correspond to each of the Y, U, V channels?
> 
> Also, once I am able to point my pointer at the correct coordinate, how 
> should I interpret the extracted result (float, int, etc)?
> 
> 
> Thank you in advance.
> 
> _______________________________________________
> Libav-user mailing list
> [email protected]
> http://ffmpeg.org/mailman/listinfo/libav-user
> 
> 
> _______________________________________________
> Libav-user mailing list
> [email protected]
> http://ffmpeg.org/mailman/listinfo/libav-user

_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to