[FFmpeg-devel] [PATCH] lavfi: add xbr filter
Clément Bœsch
u at pkh.me
Sun Oct 26 16:14:48 CET 2014
On Sun, Oct 26, 2014 at 02:51:48PM +0530, arwa arif wrote:
[...]
> +/**
> +* Mixes a pixel A, with pixel B, with B's transperancy set to 'a'
> +* In other words, A is a solid color (bottom) and B is a transparent color (top)
> +**/
> +static int mix(AVFrame *in,int x1,int y1,int x2,int y2,int a,int mode){
> + /*If red color*/
> + int col1,col2;
> + if(mode==0){
> + col1 = *(in->data[0] + y1 * in->linesize[0] + x1*3);
> + col2 = *(in->data[0] + y2 * in->linesize[0] + x2*3);
> + }
> +
> + /*If green color*/
> + else if(mode==1){
> + col1 = *(in->data[0] + y1 * in->linesize[0] + x1*3 + 1);
> + col2 = *(in->data[0] + y2 * in->linesize[0] + x2*3 + 1);
> + }
> +
> + /*If blue color*/
> + else{
> + col1 = *(in->data[0] + y1 * in->linesize[0] + x1*3 + 2);
> + col2 = *(in->data[0] + y2 * in->linesize[0] + x2*3 + 2);
> + }
All of this can be probably be simplified to:
const int col1 = in->data[0][y1 * in->linesize[0] + x1*3 + mode];
const int col2 = in->data[0][y2 * in->linesize[0] + x2*3 + mode];
And "mode" is badly named, "layer", "color" or "channel" would be more
appropriate.
[...]
> +/**
> +* Applies the xBR filter rules.
> +**/
> +static void apply_edge_detection_rules(AVFrame *in,AVFrame *out,int x,int y){
> +
> + /* Matrix: (10 is 0,0 i.e: current pixel)
> + -2 | -1| 0| +1| +2 (x)
> + ______________________________
> + -2 | [ 0][ 1][ 2]
> + -1 | [ 3][ 4][ 5][ 6][ 7]
> + 0 | [ 8][ 9][10][11][12]
> + +1 | [13][14][15][16][17]
> + +2 | [18][19][20]
> + |(y)|
Why are the spaces totally broken here?
Unless I'm mistaken, you want this:
-2 | -1| 0| +1| +2
+----------------------> (x)
-2 | [ 0][ 1][ 2]
-1 | [ 3][ 4][ 5][ 6][ 7]
0 | [ 8][ 9][10][11][12]
+1 | [13][14][15][16][17]
+2 | [18][19][20]
|
(y) v
And then my question becomes: why don't you pick the original naming with
the letters as in the specs?
[...]
--
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20141026/63789e0b/attachment.asc>
More information about the ffmpeg-devel
mailing list