[FFmpeg-devel] GSoC Weely report (libswscale)
Michael Niedermayer
michael at niedermayer.cc
Sun Jul 19 04:38:27 CEST 2015
On Wed, Jul 15, 2015 at 08:06:49PM -0300, Pedro Arthur wrote:
[...]
> diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h
> index 2299aa5..82713fd 100644
> --- a/libswscale/swscale_internal.h
> +++ b/libswscale/swscale_internal.h
> @@ -269,6 +269,9 @@ typedef void (*yuv2anyX_fn)(struct SwsContext *c, const int16_t *lumFilter,
> const int16_t **alpSrc, uint8_t **dest,
> int dstW, int y);
>
> +struct SwsSlice;
> +struct SwsFilterDescriptor;
> +
> /* This struct should be aligned on at least a 32-byte boundary. */
> typedef struct SwsContext {
> /**
> @@ -319,6 +322,12 @@ typedef struct SwsContext {
> uint16_t *gamma;
> uint16_t *inv_gamma;
>
> + int numDesc;
> + int descIndex[2];
> + int numSlice;
> + struct SwsSlice *slice;
> + struct SwsFilterDescriptor *desc;
> +
> uint32_t pal_yuv[256];
> uint32_t pal_rgb[256];
>
> @@ -908,4 +917,55 @@ static inline void fillPlane16(uint8_t *plane, int stride, int width, int height
> }
> }
>
> +#define MAX_SLICE_PLANES 4
> +
> +typedef struct SwsPlane
> +{
> + int available_lines;
> + int sliceY;
> + int sliceH;
> + uint8_t **line;
> +} SwsPlane;
> +
> +typedef struct SwsSlice
> +{
> + int width;
> + int h_chr_sub_sample;
> + int v_chr_sub_sample;
> + int is_ring;
> + int should_free_lines;
> + enum AVPixelFormat fmt;
> + SwsPlane plane[MAX_SLICE_PLANES];
> +} SwsSlice;
> +
> +typedef struct SwsFilterDescriptor
> +{
> + SwsSlice * src;
> + SwsSlice * dst;
> +
> + int alpha;
> + void * instance;
> +
> + int (*process)(SwsContext*, struct SwsFilterDescriptor*, int, int);
^^^^^^^
missing indentifier names, "int" alone says nothing about what they
represent
> +} SwsFilterDescriptor;
> +
> +typedef struct ConvertInstance
> +{
> + uint32_t * pal;
> +} ConvertInstance;
the instance context is generally called a WhateverContext
in FFmpeg, using the same naming style might reduce confusion
that is ConvertContext though "Convert" is maybe too generic,
if you have an idea for a more specific term then Convert then
please use that instead otherwise the name isnt important ATM
> +
> +typedef struct ScaleInstance
> +{
> + uint16_t * filter;
> + int * filter_pos;
> + int filter_size;
> + int xInc;
> +} ScaleInstance;
all the structs need documentation describing what they represent
also "Scale" too is a little generic unless its intended to be
used for (nearly) every scaling case
> +
> +int ff_init_slice_from_src(SwsSlice * s, uint8_t *src[4], int stride[4], int srcW, int lumY, int lumH, int chrY, int chrH);
> +int ff_init_slice_from_lp(SwsSlice *s, uint8_t ***linesPool, int dstW, int lumY, int lumH, int chrY, int chrH);
> +int ff_init_filters(SwsContext *c);
> +int ff_free_filters(SwsContext *c);
> +int ff_rotate_slice(SwsSlice *s, int lum, int chr);
similar also all the functions need documentation
(something basic like 2-3 lines describing what they do is fine)
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Observe your enemies, for they first find out your faults. -- Antisthenes
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150719/d59cda8f/attachment.sig>
More information about the ffmpeg-devel
mailing list