From 81fbe8ca719feb4e02b826bee0a779401a785e3f Mon Sep 17 00:00:00 2001 From: Miguel Freitas Date: Sat, 2 Dec 2006 22:35:18 +0000 Subject: two fixes to viz glue code: - avoid overrunning the provided input audio buffer. - generate a bad frame if time is due but we don't have enough data for updating the viz plugin. this could happen in some rare situations but the result was pretty catastrophic: xine froze with 100% cpu usage. CVS patchset: 8400 CVS date: 2006/12/02 22:35:18 --- src/post/goom/xine_goom.c | 30 +++++++++++++++++++----------- src/post/visualizations/fftgraph.c | 22 +++++++++++++++------- src/post/visualizations/fftscope.c | 22 +++++++++++++++------- src/post/visualizations/fooviz.c | 22 +++++++++++++++------- src/post/visualizations/oscope.c | 22 +++++++++++++++------- 5 files changed, 79 insertions(+), 39 deletions(-) (limited to 'src/post') diff --git a/src/post/goom/xine_goom.c b/src/post/goom/xine_goom.c index f879f1ebc..e4f55068b 100644 --- a/src/post/goom/xine_goom.c +++ b/src/post/goom/xine_goom.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_goom.c,v 1.63 2006/10/23 21:13:44 hadess Exp $ + * $Id: xine_goom.c,v 1.64 2006/12/02 22:35:18 miguelfreitas Exp $ * * GOOM post plugin. * @@ -43,7 +43,7 @@ #include "goom.h" -#define NUMSAMPLES 512 +#define NUMSAMPLES 512 /* hardcoded into goom api */ #define FPS 14 #define GOOM_WIDTH 320 @@ -83,7 +83,7 @@ struct post_plugin_goom_s { PluginInfo *goom; int data_idx; - gint16 data [2][512]; + gint16 data [2][NUMSAMPLES]; audio_buffer_t buf; /* dummy buffer just to hold a copy of audio data */ int channels; @@ -386,6 +386,7 @@ static int goom_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream, this->sample_rate = rate; this->samples_per_frame = rate / this->fps; this->data_idx = 0; + this->sample_counter = 0; init_yuv_planes(&this->yuv, this->width, this->height); this->skip_frame = 0; @@ -445,7 +446,6 @@ static void goom_port_put_buffer (xine_audio_port_t *port_gen, buf = &this->buf; this->sample_counter += buf->num_frames; - j = (this->channels >= 2) ? 1 : 0; do { @@ -455,7 +455,7 @@ static void goom_port_put_buffer (xine_audio_port_t *port_gen, data8 += samples_used * this->channels; /* scale 8 bit data to 16 bits and convert to signed as well */ - for( i = 0; i < buf->num_frames && this->data_idx < NUMSAMPLES; + for( i = samples_used; i < buf->num_frames && this->data_idx < NUMSAMPLES; i++, this->data_idx++, data8 += this->channels ) { this->data[0][this->data_idx] = ((int16_t)data8[0] << 8) - 0x8000; this->data[1][this->data_idx] = ((int16_t)data8[j] << 8) - 0x8000; @@ -464,16 +464,15 @@ static void goom_port_put_buffer (xine_audio_port_t *port_gen, data = buf->mem; data += samples_used * this->channels; - for( i = 0; i < buf->num_frames && this->data_idx < NUMSAMPLES; + for( i = samples_used; i < buf->num_frames && this->data_idx < NUMSAMPLES; i++, this->data_idx++, data += this->channels ) { this->data[0][this->data_idx] = data[0]; this->data[1][this->data_idx] = data[j]; } } - if( this->sample_counter >= this->samples_per_frame && - this->data_idx == NUMSAMPLES ) { - this->data_idx = 0; + if( this->sample_counter >= this->samples_per_frame ) { + samples_used += this->samples_per_frame; frame = this->vo_port->get_frame (this->vo_port, this->width_back, this->height_back, @@ -481,14 +480,23 @@ static void goom_port_put_buffer (xine_audio_port_t *port_gen, VO_BOTH_FIELDS); frame->extra_info->invalid = 1; - frame->bad_frame = 0; + + /* frame is marked as bad if we don't have enough samples for + * updating the viz plugin (calculations may be skipped). + * we must keep the framerate though. */ + if( this->data_idx == NUMSAMPLES ) { + frame->bad_frame = 0; + this->data_idx = 0; + } else { + frame->bad_frame = 1; + } frame->duration = 90000 * this->samples_per_frame / this->sample_rate; frame->pts = pts; this->metronom->got_video_frame(this->metronom, frame); this->sample_counter -= this->samples_per_frame; - if (!this->skip_frame) { + if (!this->skip_frame && !frame->bad_frame) { /* Try to be fast */ goom_frame = (uint8_t *)goom_update (this->goom, this->data, 0, 0, NULL, NULL); diff --git a/src/post/visualizations/fftgraph.c b/src/post/visualizations/fftgraph.c index f9f8f0d4a..669a4bc94 100644 --- a/src/post/visualizations/fftgraph.c +++ b/src/post/visualizations/fftgraph.c @@ -20,7 +20,7 @@ * FftGraph Visualization Post Plugin For xine * by Thibaut Mattern (tmattern@noos.fr) * - * $Id: fftgraph.c,v 1.14 2006/01/27 07:46:14 tmattern Exp $ + * $Id: fftgraph.c,v 1.15 2006/12/02 22:35:18 miguelfreitas Exp $ * */ @@ -230,6 +230,7 @@ static int fftgraph_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream this->lines_per_channel = FFTGRAPH_HEIGHT / this->channels; this->samples_per_frame = rate / FPS; this->data_idx = 0; + this->sample_counter = 0; this->vo_port->open(this->vo_port, XINE_ANON_STREAM); this->metronom->set_master(this->metronom, stream->metronom); @@ -342,7 +343,7 @@ static void fftgraph_port_put_buffer (xine_audio_port_t *port_gen, data8 += samples_used * this->channels; /* scale 8 bit data to 16 bits and convert to signed as well */ - for( i = 0; i < buf->num_frames && this->data_idx < NUMSAMPLES; + for( i = samples_used; i < buf->num_frames && this->data_idx < NUMSAMPLES; i++, this->data_idx++, data8 += this->channels ) { for( c = 0; c < this->channels; c++){ this->wave[c][this->data_idx].re = (double)(data8[c] << 8) - 0x8000; @@ -353,7 +354,7 @@ static void fftgraph_port_put_buffer (xine_audio_port_t *port_gen, data = buf->mem; data += samples_used * this->channels; - for( i = 0; i < buf->num_frames && this->data_idx < NUMSAMPLES; + for( i = samples_used; i < buf->num_frames && this->data_idx < NUMSAMPLES; i++, this->data_idx++, data += this->channels ) { for( c = 0; c < this->channels; c++){ this->wave[c][this->data_idx].re = (double)data[c]; @@ -362,17 +363,24 @@ static void fftgraph_port_put_buffer (xine_audio_port_t *port_gen, } } - if( this->sample_counter >= this->samples_per_frame && - this->data_idx == NUMSAMPLES ) { + if( this->sample_counter >= this->samples_per_frame ) { - this->data_idx = 0; samples_used += this->samples_per_frame; frame = this->vo_port->get_frame (this->vo_port, FFTGRAPH_WIDTH, FFTGRAPH_HEIGHT, this->ratio, XINE_IMGFMT_YUY2, VO_BOTH_FIELDS); frame->extra_info->invalid = 1; - frame->bad_frame = 0; + + /* frame is marked as bad if we don't have enough samples for + * updating the viz plugin (calculations may be skipped). + * we must keep the framerate though. */ + if( this->data_idx == NUMSAMPLES ) { + frame->bad_frame = 0; + this->data_idx = 0; + } else { + frame->bad_frame = 1; + } frame->duration = 90000 * this->samples_per_frame / port->rate; frame->pts = pts; this->metronom->got_video_frame(this->metronom, frame); diff --git a/src/post/visualizations/fftscope.c b/src/post/visualizations/fftscope.c index 8448f3a65..aef517c59 100644 --- a/src/post/visualizations/fftscope.c +++ b/src/post/visualizations/fftscope.c @@ -22,7 +22,7 @@ * * FFT code by Steve Haehnichen, originally licensed under GPL v1 * - * $Id: fftscope.c,v 1.29 2006/01/27 07:46:14 tmattern Exp $ + * $Id: fftscope.c,v 1.30 2006/12/02 22:35:18 miguelfreitas Exp $ * */ @@ -289,6 +289,7 @@ static int fftscope_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream this->channels = MAXCHANNELS; this->samples_per_frame = rate / FPS; this->data_idx = 0; + this->sample_counter = 0; this->fft = fft_new(FFT_BITS); this->vo_port->open(this->vo_port, XINE_ANON_STREAM); @@ -363,7 +364,7 @@ static void fftscope_port_put_buffer (xine_audio_port_t *port_gen, data8 += samples_used * this->channels; /* scale 8 bit data to 16 bits and convert to signed as well */ - for( i = 0; i < buf->num_frames && this->data_idx < NUMSAMPLES; + for( i = samples_used; i < buf->num_frames && this->data_idx < NUMSAMPLES; i++, this->data_idx++, data8 += this->channels ) { for( c = 0; c < this->channels; c++){ this->wave[c][this->data_idx].re = (double)(data8[c] << 8) - 0x8000; @@ -374,7 +375,7 @@ static void fftscope_port_put_buffer (xine_audio_port_t *port_gen, data = buf->mem; data += samples_used * this->channels; - for( i = 0; i < buf->num_frames && this->data_idx < NUMSAMPLES; + for( i = samples_used; i < buf->num_frames && this->data_idx < NUMSAMPLES; i++, this->data_idx++, data += this->channels ) { for( c = 0; c < this->channels; c++){ this->wave[c][this->data_idx].re = (double)data[c]; @@ -383,17 +384,24 @@ static void fftscope_port_put_buffer (xine_audio_port_t *port_gen, } } - if( this->sample_counter >= this->samples_per_frame && - this->data_idx == NUMSAMPLES ) { + if( this->sample_counter >= this->samples_per_frame ) { - this->data_idx = 0; samples_used += this->samples_per_frame; frame = this->vo_port->get_frame (this->vo_port, FFT_WIDTH, FFT_HEIGHT, this->ratio, XINE_IMGFMT_YUY2, VO_BOTH_FIELDS); frame->extra_info->invalid = 1; - frame->bad_frame = 0; + + /* frame is marked as bad if we don't have enough samples for + * updating the viz plugin (calculations may be skipped). + * we must keep the framerate though. */ + if( this->data_idx == NUMSAMPLES ) { + frame->bad_frame = 0; + this->data_idx = 0; + } else { + frame->bad_frame = 1; + } frame->duration = 90000 * this->samples_per_frame / port->rate; frame->pts = pts; this->metronom->got_video_frame(this->metronom, frame); diff --git a/src/post/visualizations/fooviz.c b/src/post/visualizations/fooviz.c index 8d1e84150..9e69fefab 100644 --- a/src/post/visualizations/fooviz.c +++ b/src/post/visualizations/fooviz.c @@ -23,7 +23,7 @@ * process. It simply paints the screen a solid color and rotates through * colors on each iteration. * - * $Id: fooviz.c,v 1.27 2006/07/10 22:08:44 dgp85 Exp $ + * $Id: fooviz.c,v 1.28 2006/12/02 22:35:18 miguelfreitas Exp $ * */ @@ -118,6 +118,7 @@ static int fooviz_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream, this->channels = _x_ao_mode2channels(mode); this->samples_per_frame = rate / FPS; this->data_idx = 0; + this->sample_counter = 0; this->vo_port->open(this->vo_port, XINE_ANON_STREAM); this->metronom->set_master(this->metronom, stream->metronom); @@ -180,7 +181,7 @@ static void fooviz_port_put_buffer (xine_audio_port_t *port_gen, data8 += samples_used * this->channels; /* scale 8 bit data to 16 bits and convert to signed as well */ - for( i = 0; i < buf->num_frames && this->data_idx < NUMSAMPLES; + for( i = samples_used; i < buf->num_frames && this->data_idx < NUMSAMPLES; i++, this->data_idx++, data8 += this->channels ) { this->data[0][this->data_idx] = ((int16_t)data8[0] << 8) - 0x8000; this->data[1][this->data_idx] = ((int16_t)data8[j] << 8) - 0x8000; @@ -189,24 +190,31 @@ static void fooviz_port_put_buffer (xine_audio_port_t *port_gen, data = buf->mem; data += samples_used * this->channels; - for( i = 0; i < buf->num_frames && this->data_idx < NUMSAMPLES; + for( i = samples_used; i < buf->num_frames && this->data_idx < NUMSAMPLES; i++, this->data_idx++, data += this->channels ) { this->data[0][this->data_idx] = data[0]; this->data[1][this->data_idx] = data[j]; } } - if( this->sample_counter >= this->samples_per_frame && - this->data_idx == NUMSAMPLES ) { + if( this->sample_counter >= this->samples_per_frame ) { - this->data_idx = 0; samples_used += this->samples_per_frame; frame = this->vo_port->get_frame (this->vo_port, FOO_WIDTH, FOO_HEIGHT, this->ratio, XINE_IMGFMT_YUY2, VO_BOTH_FIELDS); frame->extra_info->invalid = 1; - frame->bad_frame = 0; + + /* frame is marked as bad if we don't have enough samples for + * updating the viz plugin (calculations may be skipped). + * we must keep the framerate though. */ + if( this->data_idx == NUMSAMPLES ) { + frame->bad_frame = 0; + this->data_idx = 0; + } else { + frame->bad_frame = 1; + } frame->duration = 90000 * this->samples_per_frame / port->rate; frame->pts = pts; this->metronom->got_video_frame(this->metronom, frame); diff --git a/src/post/visualizations/oscope.c b/src/post/visualizations/oscope.c index 68ae0e054..483fc39ab 100644 --- a/src/post/visualizations/oscope.c +++ b/src/post/visualizations/oscope.c @@ -20,7 +20,7 @@ * Basic Oscilloscope Visualization Post Plugin For xine * by Mike Melanson (melanson@pcisys.net) * - * $Id: oscope.c,v 1.20 2006/01/27 07:46:14 tmattern Exp $ + * $Id: oscope.c,v 1.21 2006/12/02 22:35:18 miguelfreitas Exp $ * */ @@ -191,6 +191,7 @@ static int oscope_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream, this->channels = MAXCHANNELS; this->samples_per_frame = rate / FPS; this->data_idx = 0; + this->sample_counter = 0; init_yuv_planes(&this->yuv, OSCOPE_WIDTH, OSCOPE_HEIGHT); this->vo_port->open(this->vo_port, XINE_ANON_STREAM); @@ -252,7 +253,7 @@ static void oscope_port_put_buffer (xine_audio_port_t *port_gen, data8 += samples_used * this->channels; /* scale 8 bit data to 16 bits and convert to signed as well */ - for( i = 0; i < buf->num_frames && this->data_idx < NUMSAMPLES; + for( i = samples_used; i < buf->num_frames && this->data_idx < NUMSAMPLES; i++, this->data_idx++, data8 += this->channels ) for( c = 0; c < this->channels; c++) this->data[c][this->data_idx] = ((int16_t)data8[c] << 8) - 0x8000; @@ -260,23 +261,30 @@ static void oscope_port_put_buffer (xine_audio_port_t *port_gen, data = buf->mem; data += samples_used * this->channels; - for( i = 0; i < buf->num_frames && this->data_idx < NUMSAMPLES; + for( i = samples_used; i < buf->num_frames && this->data_idx < NUMSAMPLES; i++, this->data_idx++, data += this->channels ) for( c = 0; c < this->channels; c++) this->data[c][this->data_idx] = data[c]; } - if( this->sample_counter >= this->samples_per_frame && - this->data_idx == NUMSAMPLES ) { + if( this->sample_counter >= this->samples_per_frame ) { - this->data_idx = 0; samples_used += this->samples_per_frame; frame = this->vo_port->get_frame (this->vo_port, OSCOPE_WIDTH, OSCOPE_HEIGHT, this->ratio, XINE_IMGFMT_YUY2, VO_BOTH_FIELDS); frame->extra_info->invalid = 1; - frame->bad_frame = 0; + + /* frame is marked as bad if we don't have enough samples for + * updating the viz plugin (calculations may be skipped). + * we must keep the framerate though. */ + if( this->data_idx == NUMSAMPLES ) { + frame->bad_frame = 0; + this->data_idx = 0; + } else { + frame->bad_frame = 1; + } frame->duration = 90000 * this->samples_per_frame / port->rate; frame->pts = pts; this->metronom->got_video_frame(this->metronom, frame); -- cgit v1.2.3 From 4d3ead5b20de46118087552ea6db715720f8374e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Thu, 21 Dec 2006 09:54:44 +0000 Subject: Apply the textrel patch from Gentoo, thanks to PaX team for providing it. The patch was applied and tested for a while in Gentoo and Pardus, and solves also Debian's problems with non-PIC code. If problems will arise, they'll be debugged. CVS patchset: 8431 CVS date: 2006/12/21 09:54:44 --- .../deinterlace/plugins/greedy2frame_template.c | 33 +++++---- src/post/deinterlace/plugins/greedyh.asm | 66 ++++++++++-------- .../plugins/tomsmocomp/SearchLoop0A.inc | 4 +- .../plugins/tomsmocomp/SearchLoopBottom.inc | 53 ++++++++------ .../plugins/tomsmocomp/SearchLoopTop.inc | 64 +++++++++-------- .../deinterlace/plugins/tomsmocomp/StrangeBob.inc | 80 +++++++++++----------- .../plugins/tomsmocomp/TomsMoCompAll.inc | 6 +- .../deinterlace/plugins/tomsmocomp/WierdBob.inc | 40 +++++------ .../plugins/tomsmocomp/tomsmocompmacros.h | 12 ++-- 9 files changed, 193 insertions(+), 165 deletions(-) (limited to 'src/post') diff --git a/src/post/deinterlace/plugins/greedy2frame_template.c b/src/post/deinterlace/plugins/greedy2frame_template.c index 42c575f58..728bceed5 100644 --- a/src/post/deinterlace/plugins/greedy2frame_template.c +++ b/src/post/deinterlace/plugins/greedy2frame_template.c @@ -1,5 +1,5 @@ /***************************************************************************** -** $Id: greedy2frame_template.c,v 1.9 2006/02/04 14:06:29 miguelfreitas Exp $ +** $Id: greedy2frame_template.c,v 1.10 2006/12/21 09:54:45 dgp85 Exp $ ****************************************************************************** ** Copyright (c) 2000 John Adcock, Tom Barry, Steve Grimm All rights reserved. ** port copyright (c) 2003 Miguel Freitas @@ -19,6 +19,9 @@ ** CVS Log ** ** $Log: greedy2frame_template.c,v $ +** Revision 1.10 2006/12/21 09:54:45 dgp85 +** Apply the textrel patch from Gentoo, thanks to PaX team for providing it. The patch was applied and tested for a while in Gentoo and Pardus, and solves also Debian's problems with non-PIC code. If problems will arise, they'll be debugged. +** ** Revision 1.9 2006/02/04 14:06:29 miguelfreitas ** Enable AMD64 mmx/sse support in some plugins (tvtime, libmpeg2, goom...) ** patch by dani3l @@ -187,7 +190,7 @@ static void DeinterlaceGreedy2Frame_MMX(uint8_t *output, int outstride, * See above for a description of the algorithm. */ ".align 8 \n\t" - "movq "MANGLE(Mask)", %%mm6 \n\t" + "movq %4, %%mm6 \n\t" "movq %0, %%mm1 \n\t" // T1 "movq %1, %%mm0 \n\t" // M1 @@ -195,7 +198,7 @@ static void DeinterlaceGreedy2Frame_MMX(uint8_t *output, int outstride, "movq %3, %%mm2 \n\t" // M0 : /* no output */ : "m" (*T1), "m" (*M1), - "m" (*B1), "m" (*M0) ); + "m" (*B1), "m" (*M0), "m" (Mask) ); asm volatile( @@ -252,10 +255,10 @@ static void DeinterlaceGreedy2Frame_MMX(uint8_t *output, int outstride, #endif /* if |M1-M0| > Threshold we want dword worth of twos */ - "pcmpgtb "MANGLE(qwGreedyTwoFrameThreshold)", %%mm4 \n\t" - "pand "MANGLE(Mask)", %%mm4 \n\t" /* get rid of sign bit */ - "pcmpgtd "MANGLE(DwordOne)", %%mm4 \n\t" /* do we want to bob */ - "pandn "MANGLE(DwordTwo)", %%mm4 \n\t" + "pcmpgtb %3, %%mm4 \n\t" + "pand %4, %%mm4 \n\t" /* get rid of sign bit */ + "pcmpgtd %5, %%mm4 \n\t" /* do we want to bob */ + "pandn %6, %%mm4 \n\t" "movq %1, %%mm2 \n\t" /* mm2 = T0 */ @@ -268,11 +271,11 @@ static void DeinterlaceGreedy2Frame_MMX(uint8_t *output, int outstride, "pand %%mm6, %%mm5 \n\t" /* if |T1-T0| > Threshold we want dword worth of ones */ - "pcmpgtb "MANGLE(qwGreedyTwoFrameThreshold)", %%mm5 \n\t" + "pcmpgtb %3, %%mm5 \n\t" "pand %%mm6, %%mm5 \n\t" /* get rid of sign bit */ - "pcmpgtd "MANGLE(DwordOne)", %%mm5 \n\t" - "pandn "MANGLE(DwordOne)", %%mm5 \n\t" + "pcmpgtd %5, %%mm5 \n\t" + "pandn %5, %%mm5 \n\t" "paddd %%mm5, %%mm4 \n\t" "movq %2, %%mm2 \n\t" /* B0 */ @@ -286,13 +289,13 @@ static void DeinterlaceGreedy2Frame_MMX(uint8_t *output, int outstride, "pand %%mm6, %%mm5 \n\t" /* if |B1-B0| > Threshold we want dword worth of ones */ - "pcmpgtb "MANGLE(qwGreedyTwoFrameThreshold)", %%mm5 \n\t" + "pcmpgtb %3, %%mm5 \n\t" "pand %%mm6, %%mm5 \n\t" /* get rid of any sign bit */ - "pcmpgtd "MANGLE(DwordOne)", %%mm5 \n\t" - "pandn "MANGLE(DwordOne)", %%mm5 \n\t" + "pcmpgtd %5, %%mm5 \n\t" + "pandn %5, %%mm5 \n\t" "paddd %%mm5, %%mm4 \n\t" - "pcmpgtd "MANGLE(DwordTwo)", %%mm4 \n\t" + "pcmpgtd %6, %%mm4 \n\t" /* debugging feature * output the value of mm4 at this point which is pink where we will weave @@ -318,7 +321,7 @@ static void DeinterlaceGreedy2Frame_MMX(uint8_t *output, int outstride, #endif : "=m" (*Dest2) - : "m" (*T0), "m" (*B0) ); + : "m" (*T0), "m" (*B0), "m" (qwGreedyTwoFrameThreshold), "m" (Mask), "m" (DwordOne), "m" (DwordTwo) ); /* Advance to the next set of pixels. */ T1 += 8; diff --git a/src/post/deinterlace/plugins/greedyh.asm b/src/post/deinterlace/plugins/greedyh.asm index 0bbd745aa..11b28ca76 100644 --- a/src/post/deinterlace/plugins/greedyh.asm +++ b/src/post/deinterlace/plugins/greedyh.asm @@ -43,7 +43,6 @@ static void FUNCT_NAME(uint8_t *output, int outstride, int Line; long LoopCtr; - long oldbx; unsigned int Pitch = stride*2; int FieldHeight = height / 2; @@ -52,6 +51,7 @@ static void FUNCT_NAME(uint8_t *output, int outstride, unsigned char* L3; // ptr to Line3 unsigned char* L2P; // ptr to prev Line2 + unsigned char* temp; unsigned char* Dest = output; int64_t LastAvg=0; //interp value from left qword @@ -121,25 +121,21 @@ static void FUNCT_NAME(uint8_t *output, int outstride, #define asmLastAvg "%0" #define asmL1 "%1" #define asmL3 "%2" -#define asmL2P "%3" +#define asmtemp "%3" #define asmL2 "%4" #define asmDest "%5" #define asmLoopCtr "%6" -#define asmoldbx "%7" #endif // For ease of reading, the comments below assume that we're operating on an odd // field (i.e., that InfoIsOdd is true). Assume the obvious for even lines.. + temp = L2P; __asm__ __volatile__ ( - // save ebx (-fPIC) - MOVX" %%"XBX", "asmoldbx"\n\t" - MOVX" "asmL1", %%"XAX"\n\t" - LEAX" 8(%%"XAX"), %%"XBX"\n\t" // next qword needed by DJR + LEAX" 8(%%"XAX"), %%"XDX"\n\t" // next qword needed by DJR MOVX" "asmL3", %%"XCX"\n\t" SUBX" %%"XAX", %%"XCX"\n\t" // carry L3 addr as an offset - MOVX" "asmL2P", %%"XDX"\n\t" MOVX" "asmL2", %%"XSI"\n\t" MOVX" "asmDest", %%"XDI"\n\t" // DL1 if Odd or DL2 if Even @@ -148,11 +144,14 @@ static void FUNCT_NAME(uint8_t *output, int outstride, "movq (%%"XSI"), %%mm0\n\t" // L2 - the newest weave pixel value "movq (%%"XAX"), %%mm1\n\t" // L1 - the top pixel + PUSHX" %%"XDX "\n\t" + MOVX" "asmtemp", %%"XDX"\n\t" "movq (%%"XDX"), %%mm2\n\t" // L2P - the prev weave pixel + POPX" %%"XDX "\n\t" "movq (%%"XAX", %%"XCX"), %%mm3\n\t" // L3, next odd row "movq %%mm1, %%mm6\n\t" // L1 - get simple single pixel interp // pavgb mm6, mm3 // use macro below - V_PAVGB ("%%mm6", "%%mm3", "%%mm4", MANGLE(ShiftMask)) + V_PAVGB ("%%mm6", "%%mm3", "%%mm4", "%8") // DJR - Diagonal Jaggie Reduction // In the event that we are going to use an average (Bob) pixel we do not want a jagged @@ -166,24 +165,24 @@ static void FUNCT_NAME(uint8_t *output, int outstride, "psllq $16, %%mm7\n\t" // left justify 3 pixels "por %%mm7, %%mm4\n\t" // and combine - "movq (%%"XBX"), %%mm5\n\t" // next horiz qword from L1 + "movq (%%"XDX"), %%mm5\n\t" // next horiz qword from L1 // pavgb mm5, qword ptr[ebx+ecx] // next horiz qword from L3, use macro below - V_PAVGB ("%%mm5", "(%%"XBX",%%"XCX")", "%%mm7", MANGLE(ShiftMask)) + V_PAVGB ("%%mm5", "(%%"XDX",%%"XCX")", "%%mm7", "%8") "psllq $48, %%mm5\n\t" // left just 1 pixel "movq %%mm6, %%mm7\n\t" // another copy of simple bob pixel "psrlq $16, %%mm7\n\t" // right just 3 pixels "por %%mm7, %%mm5\n\t" // combine // pavgb mm4, mm5 // avg of forward and prev by 1 pixel, use macro - V_PAVGB ("%%mm4", "%%mm5", "%%mm5", MANGLE(ShiftMask)) // mm5 gets modified if MMX + V_PAVGB ("%%mm4", "%%mm5", "%%mm5", "%8") // mm5 gets modified if MMX // pavgb mm6, mm4 // avg of center and surround interp vals, use macro - V_PAVGB ("%%mm6", "%%mm4", "%%mm7", MANGLE(ShiftMask)) + V_PAVGB ("%%mm6", "%%mm4", "%%mm7", "%8") // Don't do any more averaging than needed for mmx. It hurts performance and causes rounding errors. #ifndef IS_MMX // pavgb mm4, mm6 // 1/4 center, 3/4 adjacent - V_PAVGB ("%%mm4", "%%mm6", "%%mm7", MANGLE(ShiftMask)) + V_PAVGB ("%%mm4", "%%mm6", "%%mm7", "%8") // pavgb mm6, mm4 // 3/8 center, 5/8 adjacent - V_PAVGB ("%%mm6", "%%mm4", "%%mm7", MANGLE(ShiftMask)) + V_PAVGB ("%%mm6", "%%mm4", "%%mm7", "%8") #endif // get abs value of possible L2 comb @@ -236,64 +235,71 @@ static void FUNCT_NAME(uint8_t *output, int outstride, // pminub mm5, mm3 // now = Min(L1,L3), use macro V_PMINUB ("%%mm5", "%%mm3", "%%mm7") // allow the value to be above the high or below the low by amt of MaxComb - "psubusb "MANGLE(MaxComb)", %%mm5\n\t" // lower min by diff - "paddusb "MANGLE(MaxComb)", %%mm2\n\t" // increase max by diff + "psubusb %9, %%mm5\n\t" // lower min by diff + "paddusb %9, %%mm2\n\t" // increase max by diff // pmaxub mm4, mm5 // now = Max(best,Min(L1,L3) use macro V_PMAXUB ("%%mm4", "%%mm5") // pminub mm4, mm2 // now = Min( Max(best, Min(L1,L3), L2 )=L2 clipped V_PMINUB ("%%mm4", "%%mm2", "%%mm7") // Blend weave pixel with bob pixel, depending on motion val in mm0 - "psubusb "MANGLE(MotionThreshold)", %%mm0\n\t"// test Threshold, clear chroma change >>>?? - "pmullw "MANGLE(MotionSense)", %%mm0\n\t" // mul by user factor, keep low 16 bits - "movq "MANGLE(QW256)", %%mm7\n\t" + "psubusb %10, %%mm0\n\t"// test Threshold, clear chroma change >>>?? + "pmullw %11, %%mm0\n\t" // mul by user factor, keep low 16 bits + "movq %12, %%mm7\n\t" #ifdef IS_SSE "pminsw %%mm7, %%mm0\n\t" // max = 256 #else - "paddusw "MANGLE(QW256B)", %%mm0\n\t" // add, may sat at fff.. - "psubusw "MANGLE(QW256B)", %%mm0\n\t" // now = Min(L1,256) + "paddusw %13, %%mm0\n\t" // add, may sat at fff.. + "psubusw %13, %%mm0\n\t" // now = Min(L1,256) #endif "psubusw %%mm0, %%mm7\n\t" // so the 2 sum to 256, weighted avg "movq %%mm4, %%mm2\n\t" // save weave chroma info before trashing - "pand "MANGLE(YMask)", %%mm4\n\t" // keep only luma from calc'd value + "pand %14, %%mm4\n\t" // keep only luma from calc'd value "pmullw %%mm7, %%mm4\n\t" // use more weave for less motion - "pand "MANGLE(YMask)", %%mm6\n\t" // keep only luma from calc'd value + "pand %14, %%mm6\n\t" // keep only luma from calc'd value "pmullw %%mm0, %%mm6\n\t" // use more bob for large motion "paddusw %%mm6, %%mm4\n\t" // combine "psrlw $8, %%mm4\n\t" // div by 256 to get weighted avg // chroma comes from weave pixel - "pand "MANGLE(UVMask)", %%mm2\n\t" // keep chroma + "pand %15, %%mm2\n\t" // keep chroma "por %%mm4, %%mm2\n\t" // and combine V_MOVNTQ ("(%%"XDI")", "%%mm2") // move in our clipped best, use macro // bump ptrs and loop LEAX" 8(%%"XAX"), %%"XAX"\n\t" - LEAX" 8(%%"XBX"), %%"XBX"\n\t" LEAX" 8(%%"XDX"), %%"XDX"\n\t" + ADDX" $8, "asmtemp"\n\t" LEAX" 8(%%"XDI"), %%"XDI"\n\t" LEAX" 8(%%"XSI"), %%"XSI"\n\t" DECX" "asmLoopCtr"\n\t" "jg 1b\n\t" // loop if not to last line // note P-III default assumes backward branches taken "jl 1f\n\t" // done - MOVX" %%"XAX", %%"XBX"\n\t" // sharpness lookahead 1 byte only, be wrong on 1 + MOVX" %%"XAX", %%"XDX"\n\t" // sharpness lookahead 1 byte only, be wrong on 1 "jmp 1b\n\t" "1:\n\t" - MOVX" "asmoldbx", %%"XBX"\n\t" : /* no outputs */ : "m"(LastAvg), "m"(L1), "m"(L3), - "m"(L2P), + "m"(temp), "m"(L2), "m"(Dest), "m"(LoopCtr), - "m"(oldbx) + "m"(temp), + "m"(ShiftMask), + "m"(MaxComb), + "m"(MotionThreshold), + "m"(MotionSense), + "m"(QW256), + "m"(QW256B), + "m"(YMask), + "m"(UVMask) : XAX, XCX, XDX, XSI, XDI, #ifdef ARCH_X86 diff --git a/src/post/deinterlace/plugins/tomsmocomp/SearchLoop0A.inc b/src/post/deinterlace/plugins/tomsmocomp/SearchLoop0A.inc index 844c6f91a..b1d9aeca7 100644 --- a/src/post/deinterlace/plugins/tomsmocomp/SearchLoop0A.inc +++ b/src/post/deinterlace/plugins/tomsmocomp/SearchLoop0A.inc @@ -7,9 +7,9 @@ // up by a little, and adjust later #ifdef IS_SSE2 - "paddusb "MANGLE(ONES)", %%xmm7\n\t" // bias toward no motion + "paddusb "_ONES", %%xmm7\n\t" // bias toward no motion #else - "paddusb "MANGLE(ONES)", %%mm7\n\t" // bias toward no motion + "paddusb "_ONES", %%mm7\n\t" // bias toward no motion #endif MERGE4PIXavg("(%%"XDI", %%"XCX")", "(%%"XSI", %%"XCX")") // center, in old and new diff --git a/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc b/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc index 63755d1fc..72a2782a2 100644 --- a/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc +++ b/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc @@ -18,7 +18,7 @@ // Use the best weave if diffs less than 10 as that // means the image is still or moving cleanly // if there is motion we will clip which will catch anything - "psubusb "MANGLE(FOURS)", %%mm7\n\t" // sets bits to zero if weave diff < 4 + "psubusb "_FOURS", %%mm7\n\t" // sets bits to zero if weave diff < 4 "pxor %%mm0, %%mm0\n\t" "pcmpeqb %%mm0, %%mm7\n\t" // all ff where weave better, else 00 "pcmpeqb %%mm7, %%mm0\n\t" // all ff where bob better, else 00 @@ -28,10 +28,10 @@ #else // Use the better of bob or weave // pminub mm4, TENS // the most we care about - V_PMINUB ("%%mm4", MANGLE(TENS), "%%mm0") // the most we care about + V_PMINUB ("%%mm4", _TENS, "%%mm0") // the most we care about "psubusb %%mm4, %%mm7\n\t" // foregive that much from weave est? - "psubusb "MANGLE(FOURS)", %%mm7\n\t" // bias it a bit toward weave + "psubusb "_FOURS", %%mm7\n\t" // bias it a bit toward weave "pxor %%mm0, %%mm0\n\t" "pcmpeqb %%mm0, %%mm7\n\t" // all ff where weave better, else 00 "pcmpeqb %%mm7, %%mm0\n\t" // all ff where bob better, else 00 @@ -42,9 +42,9 @@ // pminub mm0, Max_Vals // but clip to catch the stray error -// V_PMINUB ("%%mm0", MANGLE(Max_Vals), "%%mm1") // but clip to catch the stray error +// V_PMINUB ("%%mm0", _Max_Vals, "%%mm1") // but clip to catch the stray error // pmaxub mm0, Min_Vals -// V_PMAXUB ("%%mm0", MANGLE(Min_Vals)) +// V_PMAXUB ("%%mm0", _Min_Vals) #endif @@ -53,28 +53,29 @@ #ifdef USE_VERTICAL_FILTER "movq %%mm0, %%mm1\n\t" - // pavgb mm0, qword ptr["XBX"] - V_PAVGB ("%%mm0", "(%%"XBX")", "%%mm2", MANGLE(ShiftMask)) - // movntq qword ptr["XAX"+"XDX"], mm0 - V_MOVNTQ ("(%"XAX", %%"XDX")", "%%mm0") - // pavgb mm1, qword ptr["XBX"+"XCX"] - V_PAVGB ("%%mm1", "(%%"XBX", %%"XCX")", "%%mm2", MANGLE(ShiftMask)) - "addq "_dst_pitchw", %%"XBX - // movntq qword ptr["XAX"+"XDX"], mm1 - V_MOVNTQ ("(%%"XAX", %%"XDX")", "%%mm1") + // pavgb mm0, qword ptr["XDX"] + V_PAVGB ("%%mm0", "(%%"XDX")", "%%mm2", _ShiftMask) + // movntq qword ptr["XAX"+"olddx"], mm0 + ADDX" "_olddx", %%"XAX"\n\t" + V_MOVNTQ ("(%%"XAX")", "%%mm0") + // pavgb mm1, qword ptr["XDX"+"XCX"] + V_PAVGB ("%%mm1", "(%%"XDX", %%"XCX")", "%%mm2", _ShiftMask) + "addq "_dst_pitchw", %%"XDX + // movntq qword ptr["XAX"+"olddx"], mm1 + V_MOVNTQ ("(%%"XAX")", "%%mm1") #else - // movntq qword ptr["XAX"+"XDX"], mm0 - V_MOVNTQ ("(%%"XAX", %%"XDX")", "%%mm0") + // movntq qword ptr["XAX"+"olddx"], mm0 + ADDX" "_olddx", %%"XAX"\n\t" + V_MOVNTQ ("(%%"XAX")", "%%mm0") #endif - LEAX" 8(%%"XDX"), %%"XDX"\n\t" // bump offset pointer - CMPX" "_Last8", %%"XDX"\n\t" // done with line? + ADDX" $8, "_olddx"\n\t" // bump offset pointer + MOVX" "_olddx", %%"XAX"\n\t" + CMPX" "_Last8", %%"XAX"\n\t" // done with line? "jb 1b\n\t" // y #endif - MOVX" "_oldbx", %%"XBX"\n\t" - : /* no outputs */ : "m"(pBob), @@ -85,7 +86,17 @@ "m"(pSrc), "m"(pSrcP), "m"(pBobP), - "m"(oldbx) + "m"(olddx), + "m"(UVMask), + "m"(ShiftMask), + "m"(FOURS), + "m"(TENS), + "m"(Max_Vals), + "m"(Min_Vals), + "m"(YMask), + "m"(Max_Mov), + "m"(ONES), + "m"(DiffThres) : XAX, XCX, XDX, XSI, XDI, #ifdef ARCH_X86 diff --git a/src/post/deinterlace/plugins/tomsmocomp/SearchLoopTop.inc b/src/post/deinterlace/plugins/tomsmocomp/SearchLoopTop.inc index 5e9f7f04a..4504be1d1 100644 --- a/src/post/deinterlace/plugins/tomsmocomp/SearchLoopTop.inc +++ b/src/post/deinterlace/plugins/tomsmocomp/SearchLoopTop.inc @@ -66,7 +66,17 @@ long dst_pitchw = dst_pitch; // local stor so asm can ref #define _pSrc "%5" #define _pSrcP "%6" #define _pBobP "%7" -#define _oldbx "%8" +#define _olddx "%8" +#define _UVMask "%9" +#define _ShiftMask "%10" +#define _FOURS "%11" +#define _TENS "%12" +#define _Max_Vals "%13" +#define _Min_Vals "%14" +#define _YMask "%15" +#define _Max_Mov "%16" +#define _ONES "%17" +#define _DiffThres "%18" #endif for (y=1; y < FldHeight-1; y++) @@ -77,75 +87,73 @@ long dst_pitchw = dst_pitch; // local stor so asm can ref // Loop general reg usage // // XAX - pBobP, then pDest - // XBX - pBob + // XDX - pBob // XCX - src_pitch2 - // XDX - current offset + // _olddx - current offset // XDI - prev weave pixels, 1 line up // XSI - next weave pixels, 1 line up - // Save "XBX" (-fPIC) - MOVX" %%"XBX", "_oldbx"\n\t" - #ifdef IS_SSE2 // sse2 code deleted for now #else // simple bob first 8 bytes - MOVX" "_pBob", %%"XBX"\n\t" + MOVX" "_pBob", %%"XDX"\n\t" MOVX" "_src_pitch2", %%"XCX"\n\t" #ifdef USE_VERTICAL_FILTER - "movq (%%"XBX"), %%mm0\n\t" - "movq (%%"XBX", %%"XCX"), %%mm1\n\t" //, qword ptr["XBX"+"XCX"] + "movq (%%"XDX"), %%mm0\n\t" + "movq (%%"XDX", %%"XCX"), %%mm1\n\t" //, qword ptr["XDX"+"XCX"] "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // halfway between - V_PAVGB ("%%mm0", "%%mm2", "%%mm3", MANGLE(ShiftMask)) // 1/4 way - V_PAVGB ("%%mm1", "%%mm2", "%%mm3", MANGLE(ShiftMask)) // 3/4 way + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // halfway between + V_PAVGB ("%%mm0", "%%mm2", "%%mm3", _ShiftMask) // 1/4 way + V_PAVGB ("%%mm1", "%%mm2", "%%mm3", _ShiftMask) // 3/4 way MOVX" "_pDest", %%"XDI"\n\t" MOVX" "_dst_pitchw", %%"XAX"\n\t" V_MOVNTQ ("(%%"XDI")", "%%mm0") V_MOVNTQ ("(%%"XDI", %%"XAX")", "%%mm1") // qword ptr["XDI"+"XAX"], mm1 // simple bob last 8 bytes - MOVX" "_Last8", %%"XDX"\n\t" - LEAX" (%%"XBX", %%"XDX"), %%"XSI"\n\t" // ["XBX"+"XDX"] + MOVX" "_Last8", %%"XSI"\n\t" + ADDX" %%"XDX", %%"XSI"\n\t" // ["XDX"+"olddx"] "movq (%%"XSI"), %%mm0\n\t" "movq (%%"XSI", %%"XCX"), %%mm1\n\t" // qword ptr["XSI"+"XCX"] "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // halfway between - V_PAVGB ("%%mm0", "%%mm2", "%%mm3", MANGLE(ShiftMask)) // 1/4 way - V_PAVGB ("%%mm1", "%%mm2", "%%mm3", MANGLE(ShiftMask)) // 3/4 way - ADDX" %%"XDX", %%"XDI"\n\t" // last 8 bytes of dest + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // halfway between + V_PAVGB ("%%mm0", "%%mm2", "%%mm3", _ShiftMask) // 1/4 way + V_PAVGB ("%%mm1", "%%mm2", "%%mm3", _ShiftMask) // 3/4 way + ADDX" "_olddx", %%"XDI"\n\t" // last 8 bytes of dest V_MOVNTQ ("%%"XDI"", "%%mm0") V_MOVNTQ ("(%%"XDI", %%"XAX")", "%%mm1") // qword ptr["XDI"+"XAX"], mm1) #else - "movq (%%"XBX"), %%mm0\n\t" - // pavgb mm0, qword ptr["XBX"+"XCX"] - V_PAVGB ("%%mm0", "(%%"XBX", %%"XCX")", "%%mm2", MANGLE(ShiftMask)) // qword ptr["XBX"+"XCX"], mm2, ShiftMask) + "movq (%%"XDX"), %%mm0\n\t" + // pavgb mm0, qword ptr["XDX"+"XCX"] + V_PAVGB ("%%mm0", "(%%"XDX", %%"XCX")", "%%mm2", _ShiftMask) // qword ptr["XDX"+"XCX"], mm2, ShiftMask) MOVX" "_pDest", %%"XDI"\n\t" V_MOVNTQ ("(%%"XDI")", "%%mm0") // simple bob last 8 bytes - MOVX" "_Last8", %%"XDX"\n\t" - LEAX" (%%"XBX", %%"XDX"), %%"XSI"\n\t" //"XSI", ["XBX"+"XDX"] + MOVX" "_Last8", %%"XSI"\n\t" + ADDX" %%"XDX", %%"XSI"\n\t" //"XSI", ["XDX"+"olddx"] "movq (%%"XSI"), %%mm0\n\t" // pavgb mm0, qword ptr["XSI"+"XCX"] - V_PAVGB ("%%mm0", "(%%"XSI", %%"XCX")", "%%mm2", MANGLE(ShiftMask)) // qword ptr["XSI"+"XCX"], mm2, ShiftMask) - V_MOVNTQ ("(%%"XDI", %%"XDX")", "%%mm0") // qword ptr["XDI"+"XDX"], mm0) + V_PAVGB ("%%mm0", "(%%"XSI", %%"XCX")", "%%mm2", _ShiftMask) // qword ptr["XSI"+"XCX"], mm2, ShiftMask) + ADDX" "_olddx", %%"XDI"\n\t" + V_MOVNTQ ("(%%"XDI")", "%%mm0") // qword ptr["XDI"+"olddx"], mm0) #endif // now loop and get the middle qwords MOVX" "_pSrc", %%"XSI"\n\t" MOVX" "_pSrcP", %%"XDI"\n\t" - MOVX" $8, %%"XDX"\n\t" // curr offset longo all lines + MOVX" $8, "_olddx"\n\t" // curr offset longo all lines "1:\n\t" MOVX" "_pBobP", %%"XAX"\n\t" ADDX" $8, %%"XDI"\n\t" ADDX" $8, %%"XSI"\n\t" - ADDX" $8, %%"XBX"\n\t" - ADDX" %%"XDX", %%"XAX"\n\t" + ADDX" $8, %%"XDX"\n\t" + ADDX" "_olddx", %%"XAX"\n\t" #ifdef USE_STRANGE_BOB #include "StrangeBob.inc" diff --git a/src/post/deinterlace/plugins/tomsmocomp/StrangeBob.inc b/src/post/deinterlace/plugins/tomsmocomp/StrangeBob.inc index 5ca5b85bb..9d02ebc11 100644 --- a/src/post/deinterlace/plugins/tomsmocomp/StrangeBob.inc +++ b/src/post/deinterlace/plugins/tomsmocomp/StrangeBob.inc @@ -31,22 +31,22 @@ "pxor %%mm6, %%mm6\n\t" "pxor %%mm7, %%mm7\n\t" - "movq -2(%%"XBX"), %%mm0\n\t" // value a from top left - "movq -4(%%"XBX", %%"XCX"), %%mm1\n\t" // value m from bottom right + "movq -2(%%"XDX"), %%mm0\n\t" // value a from top left + "movq -4(%%"XDX", %%"XCX"), %%mm1\n\t" // value m from bottom right "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" "por %%mm1, %%mm3\n\t" // abs(a,m) - "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // nonzero where abs(a,m) > Thres else 0 + "psubusb "_DiffThres", %%mm3\n\t" // nonzero where abs(a,m) > Thres else 0 "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where abs(a,m) < Thres, else 00 "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(a,m) > Thres, else 00 - "movq -4(%%"XBX"), %%mm0\n\t" // value j - "movq 4(%%"XBX", %%"XCX"), %%mm1\n\t" // value n + "movq -4(%%"XDX"), %%mm0\n\t" // value j + "movq 4(%%"XDX", %%"XCX"), %%mm1\n\t" // value n "movq %%mm0, %%mm2\n\t" "pavgb %%mm1, %%mm2\n\t" // avg(j,n) "movq %%mm0, %%mm3\n\t" @@ -55,7 +55,7 @@ "por %%mm1, %%mm0\n\t" // abs(j,n) "movq %%mm0, %%mm1\n\t" - "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(j,n) > Thres else 0 + "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(j,n) > Thres else 0 "pxor %%mm3, %%mm3\n\t" "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(j,n) < Thres, else 00 @@ -75,31 +75,31 @@ "por %%mm0, %%mm7\n\t" // k & m - "movq 2(%%"XBX"), %%mm0\n\t" // value c from top left - "movq 4(%%"XBX", %%"XCX"), %%mm1\n\t" // value n from bottom right + "movq 2(%%"XDX"), %%mm0\n\t" // value c from top left + "movq 4(%%"XDX", %%"XCX"), %%mm1\n\t" // value n from bottom right "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" "por %%mm1, %%mm3\n\t" // abs(c,n) - "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // nonzero where abs(c,n) > Thres else 0 + "psubusb "_DiffThres", %%mm3\n\t" // nonzero where abs(c,n) > Thres else 0 "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where abs(c,n) < Thres, else 00 "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(c,n) > Thres, else 00 - "movq 4(%%"XBX"), %%mm0\n\t" // value k - "movq -4(%%"XBX", %%"XCX"), %%mm1\n\t" // value m + "movq 4(%%"XDX"), %%mm0\n\t" // value k + "movq -4(%%"XDX", %%"XCX"), %%mm1\n\t" // value m "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(k,m) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(k,m) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm0\n\t" "psubusb %%mm3, %%mm1\n\t" "por %%mm1, %%mm0\n\t" // abs(k,m) "movq %%mm0, %%mm1\n\t" - "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(k,m) > Thres else 0 + "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(k,m) > Thres else 0 "pxor %%mm3, %%mm3\n\t" "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(k,m) < Thres, else 00 @@ -120,30 +120,30 @@ // c & d - "movq (%%"XBX"), %%mm0\n\t" // value b from top left - "movq 2(%%"XBX", %%"XCX"), %%mm1\n\t" // value f from bottom right + "movq (%%"XDX"), %%mm0\n\t" // value b from top left + "movq 2(%%"XDX", %%"XCX"), %%mm1\n\t" // value f from bottom right "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" "por %%mm1, %%mm3\n\t" // abs(b,f) - "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // nonzero where abs(b,f) > Thres else 0 + "psubusb "_DiffThres", %%mm3\n\t" // nonzero where abs(b,f) > Thres else 0 "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where abs(b,f) < Thres, else 00 "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(b,f) > Thres, else 00 - "movq 2(%%"XBX"), %%mm0\n\t" // value c - "movq -2(%%"XBX", %%"XCX"), %%mm1\n\t" // value d + "movq 2(%%"XDX"), %%mm0\n\t" // value c + "movq -2(%%"XDX", %%"XCX"), %%mm1\n\t" // value d "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(c,d) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(c,d) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm0\n\t" "psubusb %%mm3, %%mm1\n\t" "por %%mm1, %%mm0\n\t" // abs(c,d) "movq %%mm0, %%mm1\n\t" - "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(c,d) > Thres else 0 + "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(c,d) > Thres else 0 "pxor %%mm3, %%mm3\n\t" "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(c,d) < Thres, else 00 @@ -163,30 +163,30 @@ "por %%mm0, %%mm7\n\t" // a & f - "movq (%%"XBX"), %%mm0\n\t" // value b from top left - "movq -2(%%"XBX", %%"XCX"), %%mm1\n\t" // value d from bottom right + "movq (%%"XDX"), %%mm0\n\t" // value b from top left + "movq -2(%%"XDX", %%"XCX"), %%mm1\n\t" // value d from bottom right "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" "por %%mm1, %%mm3\n\t" // abs(b,d) - "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // nonzero where abs(b,d) > Thres else 0 + "psubusb "_DiffThres", %%mm3\n\t" // nonzero where abs(b,d) > Thres else 0 "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where abs(b,d) < Thres, else 00 "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(b,d) > Thres, else 00 - "movq -2(%%"XBX"), %%mm0\n\t" // value a - "movq 2(%%"XBX", %%"XCX"), %%mm1\n\t" // value f + "movq -2(%%"XDX"), %%mm0\n\t" // value a + "movq 2(%%"XDX", %%"XCX"), %%mm1\n\t" // value f "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(a,f) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(a,f) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm0\n\t" "psubusb %%mm3, %%mm1\n\t" "por %%mm1, %%mm0\n\t" // abs(a,f) "movq %%mm0, %%mm1\n\t" - "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(a,f) > Thres else 0 + "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(a,f) > Thres else 0 "pxor %%mm3, %%mm3\n\t" "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(a,f) < Thres, else 00 @@ -205,22 +205,22 @@ "por %%mm2, %%mm6\n\t" "por %%mm0, %%mm7\n\t" - "pand "MANGLE(YMask)", %%mm5\n\t" // mask out chroma from here - "pand "MANGLE(YMask)", %%mm6\n\t" // mask out chroma from here - "pand "MANGLE(YMask)", %%mm7\n\t" // mask out chroma from here + "pand "_YMask", %%mm5\n\t" // mask out chroma from here + "pand "_YMask", %%mm6\n\t" // mask out chroma from here + "pand "_YMask", %%mm7\n\t" // mask out chroma from here // b,e - "movq (%%"XBX"), %%mm0\n\t" // value b from top - "movq (%%"XBX", %%"XCX"), %%mm1\n\t" // value e from bottom + "movq (%%"XDX"), %%mm0\n\t" // value b from top + "movq (%%"XDX", %%"XCX"), %%mm1\n\t" // value e from bottom "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(b,e) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(b,e) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm0\n\t" "psubusb %%mm3, %%mm1\n\t" "por %%mm1, %%mm0\n\t" // abs(b,e) "movq %%mm0, %%mm1\n\t" - "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(b,e) > Thres else 0 + "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(b,e) > Thres else 0 "pxor %%mm3, %%mm3\n\t" "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(b,e) < Thres, else 00 @@ -238,8 +238,8 @@ "por %%mm0, %%mm7\n\t" // bob in any leftovers - "movq (%%"XBX"), %%mm0\n\t" // value b from top - "movq (%%"XBX", %%"XCX"), %%mm1\n\t" // value e from bottom + "movq (%%"XDX"), %%mm0\n\t" // value b from top + "movq (%%"XDX", %%"XCX"), %%mm1\n\t" // value e from bottom // We will also calc here the max/min values to later limit comb @@ -271,7 +271,7 @@ "por %%mm2, %%mm3\n\t" // abs diff // pmaxub %%mm3, %%mm4 // top or bottom pixel moved most V_PMAXUB ("%%mm3", "%%mm4") // top or bottom pixel moved most - "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // moved more than allowed? or goes to 0? + "psubusb "_DiffThres", %%mm3\n\t" // moved more than allowed? or goes to 0? "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where low motion, else high motion @@ -283,19 +283,19 @@ V_PMAXUB ("%%mm6", "%%mm2") "psubusb %%mm3, %%mm2\n\t" // maybe decrease it to 0000.. if no surround motion -// "movq %%mm2, "MANGLE(Min_Vals)"\n\t" +// "movq %%mm2, "_Min_Vals"\n\t" "movq %%mm0, %%mm2\n\t" V_PMAXUB ("%%mm2", "%%mm1") // pminub %%mm6, %%mm2 // clip our current results so far to be below this V_PMINUB ("%%mm6", "%%mm2", "%%mm4") "paddusb %%mm3, %%mm2\n\t" // maybe increase it to ffffff if no surround motion -// "movq %%mm2, "MANGLE(Max_Vals)"\n\t" +// "movq %%mm2, "_Max_Vals"\n\t" #endif "movq %%mm0, %%mm2\n\t" // pavgb %%mm2, %%mm1 // avg(b,e) - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(b,e) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(b,e) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" diff --git a/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc b/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc index 5870d77be..a3b139691 100644 --- a/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc +++ b/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc @@ -33,8 +33,8 @@ static const int64_t __attribute__((__used__)) TENS = 0x0a0a0a0a0a0a0a0aull static const int64_t __attribute__((__used__)) FOURS = 0x0404040404040404ull; static const int64_t __attribute__((__used__)) ONES = 0x0101010101010101ull; static const int64_t __attribute__((__used__)) ShiftMask = 0xfefffefffefffeffull; -//static int64_t Min_Vals = 0x0000000000000000ull; -//static int64_t Max_Vals = 0x0000000000000000ull; +static int64_t Min_Vals = 0x0000000000000000ull; +static int64_t Max_Vals = 0x0000000000000000ull; #endif #ifndef TopFirst @@ -69,7 +69,7 @@ static void FUNCT_NAME(uint8_t *output, int outstride, int rowsize; int FldHeight; int stride = (width*2); - long oldbx; + long olddx; src_pitch = stride*2; diff --git a/src/post/deinterlace/plugins/tomsmocomp/WierdBob.inc b/src/post/deinterlace/plugins/tomsmocomp/WierdBob.inc index 11614879a..9aa53b119 100644 --- a/src/post/deinterlace/plugins/tomsmocomp/WierdBob.inc +++ b/src/post/deinterlace/plugins/tomsmocomp/WierdBob.inc @@ -14,22 +14,22 @@ // selected for the smallest of abs(a,f), abs(c,d), or abs(b,e), etc. // a,f - "movq -2(%%"XBX"), %%mm0\n\t" // value a from top left - "movq 2(%%"XBX", %%"XCX"), %%mm1\n\t" // value f from bottom right + "movq -2(%%"XDX"), %%mm0\n\t" // value a from top left + "movq 2(%%"XDX", %%"XCX"), %%mm1\n\t" // value f from bottom right "movq %%mm0, %%mm6\n\t" // pavgb %%mm6, %%mm1 // avg(a,f), also best so far - V_PAVGB ("%%mm6", "%%mm1", "%%mm7", MANGLE(ShiftMask)) // avg(a,f), also best so far + V_PAVGB ("%%mm6", "%%mm1", "%%mm7", _ShiftMask) // avg(a,f), also best so far "movq %%mm0, %%mm7\n\t" "psubusb %%mm1, %%mm7\n\t" "psubusb %%mm0, %%mm1\n\t" "por %%mm1, %%mm7\n\t" // abs diff, also best so far // c,d - "movq 2(%%"XBX"), %%mm0\n\t" // value a from top left - "movq -2(%%"XBX", %%"XCX"), %%mm1\n\t" // value f from bottom right + "movq 2(%%"XDX"), %%mm0\n\t" // value a from top left + "movq -2(%%"XDX", %%"XCX"), %%mm1\n\t" // value f from bottom right "movq %%mm0, %%mm2\n\t" // pavgb %%mm2, %%mm1 // avg(c,d) - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(c,d) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(c,d) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" @@ -49,15 +49,15 @@ "por %%mm2, %%mm6\n\t" // and merge new & old vals keeping best "por %%mm1, %%mm7\n\t" - "por "MANGLE(UVMask)", %%mm7\n\t" // but we know chroma is worthless so far - "pand "MANGLE(YMask)", %%mm5\n\t" // mask out chroma from here also + "por "_UVMask", %%mm7\n\t" // but we know chroma is worthless so far + "pand "_YMask", %%mm5\n\t" // mask out chroma from here also // j,n - "movq -4(%%"XBX"), %%mm0\n\t" // value j from top left - "movq 4(%%"XBX", %%"XCX"), %%mm1\n\t" // value n from bottom right + "movq -4(%%"XDX"), %%mm0\n\t" // value j from top left + "movq 4(%%"XDX", %%"XCX"), %%mm1\n\t" // value n from bottom right "movq %%mm0, %%mm2\n\t" // pavgb %%mm2, %%mm1 // avg(j,n) - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(j,n) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(j,n) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" @@ -79,11 +79,11 @@ "por %%mm1, %%mm7\n\t" // " // k, m - "movq 4(%%"XBX"), %%mm0\n\t" // value k from top right - "movq -4(%%"XBX", %%"XCX"), %%mm1\n\t" // value n from bottom left + "movq 4(%%"XDX"), %%mm0\n\t" // value k from top right + "movq -4(%%"XDX", %%"XCX"), %%mm1\n\t" // value n from bottom left "movq %%mm0, %%mm4\n\t" // pavgb %%mm4, %%mm1 // avg(k,m) - V_PAVGB ("%%mm4", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(k,m) + V_PAVGB ("%%mm4", "%%mm1", "%%mm3", _ShiftMask) // avg(k,m) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" @@ -108,8 +108,8 @@ "por %%mm1, %%mm7\n\t" // " // b,e - "movq (%%"XBX"), %%mm0\n\t" // value b from top - "movq (%%"XBX", %%"XCX"), %%mm1\n\t" // value e from bottom + "movq (%%"XDX"), %%mm0\n\t" // value b from top + "movq (%%"XDX", %%"XCX"), %%mm1\n\t" // value e from bottom // We will also calc here the max/min values to later limit comb // so the max excursion will not exceed the Max_Comb constant @@ -140,7 +140,7 @@ "por %%mm2, %%mm3\n\t" // abs diff // pmaxub %%mm3, %%mm4 // top or bottom pixel moved most V_PMAXUB ("%%mm3", "%%mm4") // top or bottom pixel moved most - "psubusb "MANGLE(Max_Mov)", %%mm3\n\t" // moved more than allowed? or goes to 0? + "psubusb "_Max_Mov", %%mm3\n\t" // moved more than allowed? or goes to 0? "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where low motion, else high motion @@ -152,19 +152,19 @@ V_PMAXUB ("%%mm6", "%%mm2") "psubusb %%mm3, %%mm2\n\t" // maybe decrease it to 0000.. if no surround motion -// "movq %%mm2, "MANGLE(Min_Vals)"\n\t" +// "movq %%mm2, "_Min_Vals"\n\t" "movq %%mm0, %%mm2\n\t" V_PMAXUB ("%%mm2", "%%mm1") // pminub %%mm6, %%mm2 // clip our current results so far to be below this V_PMINUB ("%%mm6", "%%mm2", "%%mm4") "paddusb %%mm3, %%mm2\n\t" // maybe increase it to ffffff if no surround motion -// "movq %%mm2, "MANGLE(Max_Vals)"\n\t" +// "movq %%mm2, "_Max_Vals"\n\t" #endif "movq %%mm0, %%mm2\n\t" // pavgb %%mm2, %%mm1 // avg(b,e) - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(b,e) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(b,e) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" diff --git a/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h b/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h index 3d7ae308e..fc1e2f66d 100644 --- a/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h +++ b/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h @@ -114,7 +114,7 @@ "por %%xmm0, %%xmm5\n\t" /* and merge new & old vals */ \ "por %%xmm2, %%xmm7\n\t" -#define RESET_CHROMA "por "MANGLE(UVMask)", %%xmm7\n\t" +#define RESET_CHROMA "por "_UVMask", %%xmm7\n\t" #else // ifdef IS_SSE2 @@ -126,7 +126,7 @@ "psubusb %%mm1, %%mm2\n\t" \ "psubusb %%mm0, %%mm3\n\t" \ "por %%mm3, %%mm2\n\t" \ - V_PAVGB ("%%mm0", "%%mm1", "%%mm3", MANGLE(ShiftMask)) /* avg of 2 pixels */ \ + V_PAVGB ("%%mm0", "%%mm1", "%%mm3", _ShiftMask) /* avg of 2 pixels */ \ "movq %%mm2, %%mm3\n\t" /* another copy of our our weights */ \ "pxor %%mm1, %%mm1\n\t" \ "psubusb %%mm7, %%mm3\n\t" /* nonzero where old weights lower, else 0 */ \ @@ -144,14 +144,14 @@ "movq "PADDR2A", %%mm1\n\t" /* our pixel2 value */ \ "movq "PADDR1B", %%mm2\n\t" /* our 4 pixels */ \ "movq "PADDR2B", %%mm3\n\t" /* our pixel2 value */ \ - V_PAVGB("%%mm0", "%%mm2", "%%mm2", MANGLE(ShiftMask)) \ - V_PAVGB("%%mm1", "%%mm3", "%%mm3", MANGLE(ShiftMask)) \ + V_PAVGB("%%mm0", "%%mm2", "%%mm2", _ShiftMask) \ + V_PAVGB("%%mm1", "%%mm3", "%%mm3", _ShiftMask) \ "movq %%mm0, %%mm2\n\t" /* another copy of our pixel1 value */ \ "movq %%mm1, %%mm3\n\t" /* another copy of our pixel1 value */ \ "psubusb %%mm1, %%mm2\n\t" \ "psubusb %%mm0, %%mm3\n\t" \ "por %%mm3, %%mm2\n\t" \ - V_PAVGB("%%mm0", "%%mm1", "%%mm3", MANGLE(ShiftMask)) /* avg of 2 pixels */ \ + V_PAVGB("%%mm0", "%%mm1", "%%mm3", _ShiftMask) /* avg of 2 pixels */ \ "movq %%mm2, %%mm3\n\t" /* another copy of our our weights */ \ "pxor %%mm1, %%mm1\n\t" \ "psubusb %%mm7, %%mm3\n\t" /* nonzero where old weights lower, else 0 */ \ @@ -164,7 +164,7 @@ "por %%mm0, %%mm5\n\t" /* and merge new & old vals */ \ "por %%mm2, %%mm7\n\t" -#define RESET_CHROMA "por "MANGLE(UVMask)", %%mm7\n\t" +#define RESET_CHROMA "por "_UVMask", %%mm7\n\t" #endif -- cgit v1.2.3 From a6d39ca03836cfe8fbbcd221212d49caf3522c25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Mon, 25 Dec 2006 18:40:36 +0000 Subject: Goom postplugin use math functions, link to libm. CVS patchset: 8451 CVS date: 2006/12/25 18:40:36 --- src/post/goom/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/post') diff --git a/src/post/goom/Makefile.am b/src/post/goom/Makefile.am index 5905c16cf..564e64604 100644 --- a/src/post/goom/Makefile.am +++ b/src/post/goom/Makefile.am @@ -28,7 +28,7 @@ xineplug_post_goom_la_SOURCES = $(extra_files) xine_goom.c \ gfontlib.c goom_core.c goom_tools.c goomsl.c goomsl_hash.c goomsl_heap.c \ goomsl_lex.c goomsl_yacc.c graphic.c ifs.c lines.c \ plugin_info.c sound_tester.c surf3d.c tentacle3d.c v3d.c -xineplug_post_goom_la_LIBADD = $(XINE_LIB) $(GOOM_LIBS) $(THREAD_LIBS) +xineplug_post_goom_la_LIBADD = $(XINE_LIB) $(GOOM_LIBS) $(THREAD_LIBS) -lm xineplug_post_goom_la_CFLAGS = $(VISIBILITY_FLAG) xineplug_post_goom_la_LDFLAGS = -avoid-version -module -- cgit v1.2.3 From 3ba7b3ce9a3054747976525c00cd91d8df4801bf Mon Sep 17 00:00:00 2001 From: Miguel Freitas Date: Sat, 13 Jan 2007 22:14:56 +0000 Subject: build fixes related to last ffmpeg sync changes CVS patchset: 8500 CVS date: 2007/01/13 22:14:56 --- src/post/goom/Makefile.am | 3 +-- src/post/goom/mmx.c | 2 ++ src/post/goom/xmmx.c | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) (limited to 'src/post') diff --git a/src/post/goom/Makefile.am b/src/post/goom/Makefile.am index 564e64604..4031f4f93 100644 --- a/src/post/goom/Makefile.am +++ b/src/post/goom/Makefile.am @@ -18,9 +18,8 @@ lib_LTLIBRARIES = xineplug_post_goom.la #AM_CPPFLAGS = -DCPU_POWERPC #endif -if HAVE_FFMMX +if HAVE_MMX extra_files = mmx.c xmmx.c -AM_CPPFLAGS = -DHAVE_MMX endif xineplug_post_goom_la_SOURCES = $(extra_files) xine_goom.c \ diff --git a/src/post/goom/mmx.c b/src/post/goom/mmx.c index 5f887cf77..e2f25b47d 100644 --- a/src/post/goom/mmx.c +++ b/src/post/goom/mmx.c @@ -1,3 +1,5 @@ +#include "config.h" + #ifdef HAVE_MMX #define BUFFPOINTNB 16 diff --git a/src/post/goom/xmmx.c b/src/post/goom/xmmx.c index 7fc9acfc8..0048a20e8 100644 --- a/src/post/goom/xmmx.c +++ b/src/post/goom/xmmx.c @@ -1,3 +1,4 @@ +#include "config.h" #ifdef HAVE_MMX -- cgit v1.2.3 From f566f68582d98325035a4e1bac4f273bdb93c88d Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Sun, 14 Jan 2007 19:16:18 +0000 Subject: Fix build on amd64 - both ARCH_X86 and ARCH_X86_64 are defined. CVS patchset: 8510 CVS date: 2007/01/14 19:16:18 --- src/post/deinterlace/plugins/x86-64_macros.inc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src/post') diff --git a/src/post/deinterlace/plugins/x86-64_macros.inc b/src/post/deinterlace/plugins/x86-64_macros.inc index 3dfd9b63a..b52227763 100644 --- a/src/post/deinterlace/plugins/x86-64_macros.inc +++ b/src/post/deinterlace/plugins/x86-64_macros.inc @@ -34,8 +34,7 @@ #ifndef XAX -#if defined (ARCH_X86) - +#if defined (ARCH_X86) && !defined (ARCH_X86_64) #define XAX "eax" #define XBX "ebx" #define XCX "ecx" @@ -55,7 +54,6 @@ #define SUBX "subl" #elif defined (ARCH_X86_64) - #define XAX "rax" #define XBX "rbx" #define XCX "rcx" -- cgit v1.2.3 From a56793d61e8152be10f485a1750ec608cd595a41 Mon Sep 17 00:00:00 2001 From: Miguel Freitas Date: Sun, 28 Jan 2007 17:12:59 +0000 Subject: revert part of the PaX team's patch which broke tomsmocomp (segfault) CVS patchset: 8570 CVS date: 2007/01/28 17:12:59 --- .../plugins/tomsmocomp/SearchLoop0A.inc | 4 +- .../plugins/tomsmocomp/SearchLoopBottom.inc | 53 ++++++-------- .../plugins/tomsmocomp/SearchLoopTop.inc | 64 ++++++++--------- .../deinterlace/plugins/tomsmocomp/StrangeBob.inc | 80 +++++++++++----------- .../plugins/tomsmocomp/TomsMoCompAll.inc | 6 +- .../deinterlace/plugins/tomsmocomp/WierdBob.inc | 40 +++++------ .../plugins/tomsmocomp/tomsmocompmacros.h | 12 ++-- 7 files changed, 120 insertions(+), 139 deletions(-) (limited to 'src/post') diff --git a/src/post/deinterlace/plugins/tomsmocomp/SearchLoop0A.inc b/src/post/deinterlace/plugins/tomsmocomp/SearchLoop0A.inc index b1d9aeca7..844c6f91a 100644 --- a/src/post/deinterlace/plugins/tomsmocomp/SearchLoop0A.inc +++ b/src/post/deinterlace/plugins/tomsmocomp/SearchLoop0A.inc @@ -7,9 +7,9 @@ // up by a little, and adjust later #ifdef IS_SSE2 - "paddusb "_ONES", %%xmm7\n\t" // bias toward no motion + "paddusb "MANGLE(ONES)", %%xmm7\n\t" // bias toward no motion #else - "paddusb "_ONES", %%mm7\n\t" // bias toward no motion + "paddusb "MANGLE(ONES)", %%mm7\n\t" // bias toward no motion #endif MERGE4PIXavg("(%%"XDI", %%"XCX")", "(%%"XSI", %%"XCX")") // center, in old and new diff --git a/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc b/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc index 72a2782a2..63755d1fc 100644 --- a/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc +++ b/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc @@ -18,7 +18,7 @@ // Use the best weave if diffs less than 10 as that // means the image is still or moving cleanly // if there is motion we will clip which will catch anything - "psubusb "_FOURS", %%mm7\n\t" // sets bits to zero if weave diff < 4 + "psubusb "MANGLE(FOURS)", %%mm7\n\t" // sets bits to zero if weave diff < 4 "pxor %%mm0, %%mm0\n\t" "pcmpeqb %%mm0, %%mm7\n\t" // all ff where weave better, else 00 "pcmpeqb %%mm7, %%mm0\n\t" // all ff where bob better, else 00 @@ -28,10 +28,10 @@ #else // Use the better of bob or weave // pminub mm4, TENS // the most we care about - V_PMINUB ("%%mm4", _TENS, "%%mm0") // the most we care about + V_PMINUB ("%%mm4", MANGLE(TENS), "%%mm0") // the most we care about "psubusb %%mm4, %%mm7\n\t" // foregive that much from weave est? - "psubusb "_FOURS", %%mm7\n\t" // bias it a bit toward weave + "psubusb "MANGLE(FOURS)", %%mm7\n\t" // bias it a bit toward weave "pxor %%mm0, %%mm0\n\t" "pcmpeqb %%mm0, %%mm7\n\t" // all ff where weave better, else 00 "pcmpeqb %%mm7, %%mm0\n\t" // all ff where bob better, else 00 @@ -42,9 +42,9 @@ // pminub mm0, Max_Vals // but clip to catch the stray error -// V_PMINUB ("%%mm0", _Max_Vals, "%%mm1") // but clip to catch the stray error +// V_PMINUB ("%%mm0", MANGLE(Max_Vals), "%%mm1") // but clip to catch the stray error // pmaxub mm0, Min_Vals -// V_PMAXUB ("%%mm0", _Min_Vals) +// V_PMAXUB ("%%mm0", MANGLE(Min_Vals)) #endif @@ -53,29 +53,28 @@ #ifdef USE_VERTICAL_FILTER "movq %%mm0, %%mm1\n\t" - // pavgb mm0, qword ptr["XDX"] - V_PAVGB ("%%mm0", "(%%"XDX")", "%%mm2", _ShiftMask) - // movntq qword ptr["XAX"+"olddx"], mm0 - ADDX" "_olddx", %%"XAX"\n\t" - V_MOVNTQ ("(%%"XAX")", "%%mm0") - // pavgb mm1, qword ptr["XDX"+"XCX"] - V_PAVGB ("%%mm1", "(%%"XDX", %%"XCX")", "%%mm2", _ShiftMask) - "addq "_dst_pitchw", %%"XDX - // movntq qword ptr["XAX"+"olddx"], mm1 - V_MOVNTQ ("(%%"XAX")", "%%mm1") + // pavgb mm0, qword ptr["XBX"] + V_PAVGB ("%%mm0", "(%%"XBX")", "%%mm2", MANGLE(ShiftMask)) + // movntq qword ptr["XAX"+"XDX"], mm0 + V_MOVNTQ ("(%"XAX", %%"XDX")", "%%mm0") + // pavgb mm1, qword ptr["XBX"+"XCX"] + V_PAVGB ("%%mm1", "(%%"XBX", %%"XCX")", "%%mm2", MANGLE(ShiftMask)) + "addq "_dst_pitchw", %%"XBX + // movntq qword ptr["XAX"+"XDX"], mm1 + V_MOVNTQ ("(%%"XAX", %%"XDX")", "%%mm1") #else - // movntq qword ptr["XAX"+"olddx"], mm0 - ADDX" "_olddx", %%"XAX"\n\t" - V_MOVNTQ ("(%%"XAX")", "%%mm0") + // movntq qword ptr["XAX"+"XDX"], mm0 + V_MOVNTQ ("(%%"XAX", %%"XDX")", "%%mm0") #endif - ADDX" $8, "_olddx"\n\t" // bump offset pointer - MOVX" "_olddx", %%"XAX"\n\t" - CMPX" "_Last8", %%"XAX"\n\t" // done with line? + LEAX" 8(%%"XDX"), %%"XDX"\n\t" // bump offset pointer + CMPX" "_Last8", %%"XDX"\n\t" // done with line? "jb 1b\n\t" // y #endif + MOVX" "_oldbx", %%"XBX"\n\t" + : /* no outputs */ : "m"(pBob), @@ -86,17 +85,7 @@ "m"(pSrc), "m"(pSrcP), "m"(pBobP), - "m"(olddx), - "m"(UVMask), - "m"(ShiftMask), - "m"(FOURS), - "m"(TENS), - "m"(Max_Vals), - "m"(Min_Vals), - "m"(YMask), - "m"(Max_Mov), - "m"(ONES), - "m"(DiffThres) + "m"(oldbx) : XAX, XCX, XDX, XSI, XDI, #ifdef ARCH_X86 diff --git a/src/post/deinterlace/plugins/tomsmocomp/SearchLoopTop.inc b/src/post/deinterlace/plugins/tomsmocomp/SearchLoopTop.inc index 4504be1d1..5e9f7f04a 100644 --- a/src/post/deinterlace/plugins/tomsmocomp/SearchLoopTop.inc +++ b/src/post/deinterlace/plugins/tomsmocomp/SearchLoopTop.inc @@ -66,17 +66,7 @@ long dst_pitchw = dst_pitch; // local stor so asm can ref #define _pSrc "%5" #define _pSrcP "%6" #define _pBobP "%7" -#define _olddx "%8" -#define _UVMask "%9" -#define _ShiftMask "%10" -#define _FOURS "%11" -#define _TENS "%12" -#define _Max_Vals "%13" -#define _Min_Vals "%14" -#define _YMask "%15" -#define _Max_Mov "%16" -#define _ONES "%17" -#define _DiffThres "%18" +#define _oldbx "%8" #endif for (y=1; y < FldHeight-1; y++) @@ -87,73 +77,75 @@ long dst_pitchw = dst_pitch; // local stor so asm can ref // Loop general reg usage // // XAX - pBobP, then pDest - // XDX - pBob + // XBX - pBob // XCX - src_pitch2 - // _olddx - current offset + // XDX - current offset // XDI - prev weave pixels, 1 line up // XSI - next weave pixels, 1 line up + // Save "XBX" (-fPIC) + MOVX" %%"XBX", "_oldbx"\n\t" + #ifdef IS_SSE2 // sse2 code deleted for now #else // simple bob first 8 bytes - MOVX" "_pBob", %%"XDX"\n\t" + MOVX" "_pBob", %%"XBX"\n\t" MOVX" "_src_pitch2", %%"XCX"\n\t" #ifdef USE_VERTICAL_FILTER - "movq (%%"XDX"), %%mm0\n\t" - "movq (%%"XDX", %%"XCX"), %%mm1\n\t" //, qword ptr["XDX"+"XCX"] + "movq (%%"XBX"), %%mm0\n\t" + "movq (%%"XBX", %%"XCX"), %%mm1\n\t" //, qword ptr["XBX"+"XCX"] "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // halfway between - V_PAVGB ("%%mm0", "%%mm2", "%%mm3", _ShiftMask) // 1/4 way - V_PAVGB ("%%mm1", "%%mm2", "%%mm3", _ShiftMask) // 3/4 way + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // halfway between + V_PAVGB ("%%mm0", "%%mm2", "%%mm3", MANGLE(ShiftMask)) // 1/4 way + V_PAVGB ("%%mm1", "%%mm2", "%%mm3", MANGLE(ShiftMask)) // 3/4 way MOVX" "_pDest", %%"XDI"\n\t" MOVX" "_dst_pitchw", %%"XAX"\n\t" V_MOVNTQ ("(%%"XDI")", "%%mm0") V_MOVNTQ ("(%%"XDI", %%"XAX")", "%%mm1") // qword ptr["XDI"+"XAX"], mm1 // simple bob last 8 bytes - MOVX" "_Last8", %%"XSI"\n\t" - ADDX" %%"XDX", %%"XSI"\n\t" // ["XDX"+"olddx"] + MOVX" "_Last8", %%"XDX"\n\t" + LEAX" (%%"XBX", %%"XDX"), %%"XSI"\n\t" // ["XBX"+"XDX"] "movq (%%"XSI"), %%mm0\n\t" "movq (%%"XSI", %%"XCX"), %%mm1\n\t" // qword ptr["XSI"+"XCX"] "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // halfway between - V_PAVGB ("%%mm0", "%%mm2", "%%mm3", _ShiftMask) // 1/4 way - V_PAVGB ("%%mm1", "%%mm2", "%%mm3", _ShiftMask) // 3/4 way - ADDX" "_olddx", %%"XDI"\n\t" // last 8 bytes of dest + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // halfway between + V_PAVGB ("%%mm0", "%%mm2", "%%mm3", MANGLE(ShiftMask)) // 1/4 way + V_PAVGB ("%%mm1", "%%mm2", "%%mm3", MANGLE(ShiftMask)) // 3/4 way + ADDX" %%"XDX", %%"XDI"\n\t" // last 8 bytes of dest V_MOVNTQ ("%%"XDI"", "%%mm0") V_MOVNTQ ("(%%"XDI", %%"XAX")", "%%mm1") // qword ptr["XDI"+"XAX"], mm1) #else - "movq (%%"XDX"), %%mm0\n\t" - // pavgb mm0, qword ptr["XDX"+"XCX"] - V_PAVGB ("%%mm0", "(%%"XDX", %%"XCX")", "%%mm2", _ShiftMask) // qword ptr["XDX"+"XCX"], mm2, ShiftMask) + "movq (%%"XBX"), %%mm0\n\t" + // pavgb mm0, qword ptr["XBX"+"XCX"] + V_PAVGB ("%%mm0", "(%%"XBX", %%"XCX")", "%%mm2", MANGLE(ShiftMask)) // qword ptr["XBX"+"XCX"], mm2, ShiftMask) MOVX" "_pDest", %%"XDI"\n\t" V_MOVNTQ ("(%%"XDI")", "%%mm0") // simple bob last 8 bytes - MOVX" "_Last8", %%"XSI"\n\t" - ADDX" %%"XDX", %%"XSI"\n\t" //"XSI", ["XDX"+"olddx"] + MOVX" "_Last8", %%"XDX"\n\t" + LEAX" (%%"XBX", %%"XDX"), %%"XSI"\n\t" //"XSI", ["XBX"+"XDX"] "movq (%%"XSI"), %%mm0\n\t" // pavgb mm0, qword ptr["XSI"+"XCX"] - V_PAVGB ("%%mm0", "(%%"XSI", %%"XCX")", "%%mm2", _ShiftMask) // qword ptr["XSI"+"XCX"], mm2, ShiftMask) - ADDX" "_olddx", %%"XDI"\n\t" - V_MOVNTQ ("(%%"XDI")", "%%mm0") // qword ptr["XDI"+"olddx"], mm0) + V_PAVGB ("%%mm0", "(%%"XSI", %%"XCX")", "%%mm2", MANGLE(ShiftMask)) // qword ptr["XSI"+"XCX"], mm2, ShiftMask) + V_MOVNTQ ("(%%"XDI", %%"XDX")", "%%mm0") // qword ptr["XDI"+"XDX"], mm0) #endif // now loop and get the middle qwords MOVX" "_pSrc", %%"XSI"\n\t" MOVX" "_pSrcP", %%"XDI"\n\t" - MOVX" $8, "_olddx"\n\t" // curr offset longo all lines + MOVX" $8, %%"XDX"\n\t" // curr offset longo all lines "1:\n\t" MOVX" "_pBobP", %%"XAX"\n\t" ADDX" $8, %%"XDI"\n\t" ADDX" $8, %%"XSI"\n\t" - ADDX" $8, %%"XDX"\n\t" - ADDX" "_olddx", %%"XAX"\n\t" + ADDX" $8, %%"XBX"\n\t" + ADDX" %%"XDX", %%"XAX"\n\t" #ifdef USE_STRANGE_BOB #include "StrangeBob.inc" diff --git a/src/post/deinterlace/plugins/tomsmocomp/StrangeBob.inc b/src/post/deinterlace/plugins/tomsmocomp/StrangeBob.inc index 9d02ebc11..5ca5b85bb 100644 --- a/src/post/deinterlace/plugins/tomsmocomp/StrangeBob.inc +++ b/src/post/deinterlace/plugins/tomsmocomp/StrangeBob.inc @@ -31,22 +31,22 @@ "pxor %%mm6, %%mm6\n\t" "pxor %%mm7, %%mm7\n\t" - "movq -2(%%"XDX"), %%mm0\n\t" // value a from top left - "movq -4(%%"XDX", %%"XCX"), %%mm1\n\t" // value m from bottom right + "movq -2(%%"XBX"), %%mm0\n\t" // value a from top left + "movq -4(%%"XBX", %%"XCX"), %%mm1\n\t" // value m from bottom right "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" "por %%mm1, %%mm3\n\t" // abs(a,m) - "psubusb "_DiffThres", %%mm3\n\t" // nonzero where abs(a,m) > Thres else 0 + "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // nonzero where abs(a,m) > Thres else 0 "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where abs(a,m) < Thres, else 00 "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(a,m) > Thres, else 00 - "movq -4(%%"XDX"), %%mm0\n\t" // value j - "movq 4(%%"XDX", %%"XCX"), %%mm1\n\t" // value n + "movq -4(%%"XBX"), %%mm0\n\t" // value j + "movq 4(%%"XBX", %%"XCX"), %%mm1\n\t" // value n "movq %%mm0, %%mm2\n\t" "pavgb %%mm1, %%mm2\n\t" // avg(j,n) "movq %%mm0, %%mm3\n\t" @@ -55,7 +55,7 @@ "por %%mm1, %%mm0\n\t" // abs(j,n) "movq %%mm0, %%mm1\n\t" - "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(j,n) > Thres else 0 + "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(j,n) > Thres else 0 "pxor %%mm3, %%mm3\n\t" "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(j,n) < Thres, else 00 @@ -75,31 +75,31 @@ "por %%mm0, %%mm7\n\t" // k & m - "movq 2(%%"XDX"), %%mm0\n\t" // value c from top left - "movq 4(%%"XDX", %%"XCX"), %%mm1\n\t" // value n from bottom right + "movq 2(%%"XBX"), %%mm0\n\t" // value c from top left + "movq 4(%%"XBX", %%"XCX"), %%mm1\n\t" // value n from bottom right "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" "por %%mm1, %%mm3\n\t" // abs(c,n) - "psubusb "_DiffThres", %%mm3\n\t" // nonzero where abs(c,n) > Thres else 0 + "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // nonzero where abs(c,n) > Thres else 0 "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where abs(c,n) < Thres, else 00 "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(c,n) > Thres, else 00 - "movq 4(%%"XDX"), %%mm0\n\t" // value k - "movq -4(%%"XDX", %%"XCX"), %%mm1\n\t" // value m + "movq 4(%%"XBX"), %%mm0\n\t" // value k + "movq -4(%%"XBX", %%"XCX"), %%mm1\n\t" // value m "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(k,m) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(k,m) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm0\n\t" "psubusb %%mm3, %%mm1\n\t" "por %%mm1, %%mm0\n\t" // abs(k,m) "movq %%mm0, %%mm1\n\t" - "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(k,m) > Thres else 0 + "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(k,m) > Thres else 0 "pxor %%mm3, %%mm3\n\t" "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(k,m) < Thres, else 00 @@ -120,30 +120,30 @@ // c & d - "movq (%%"XDX"), %%mm0\n\t" // value b from top left - "movq 2(%%"XDX", %%"XCX"), %%mm1\n\t" // value f from bottom right + "movq (%%"XBX"), %%mm0\n\t" // value b from top left + "movq 2(%%"XBX", %%"XCX"), %%mm1\n\t" // value f from bottom right "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" "por %%mm1, %%mm3\n\t" // abs(b,f) - "psubusb "_DiffThres", %%mm3\n\t" // nonzero where abs(b,f) > Thres else 0 + "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // nonzero where abs(b,f) > Thres else 0 "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where abs(b,f) < Thres, else 00 "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(b,f) > Thres, else 00 - "movq 2(%%"XDX"), %%mm0\n\t" // value c - "movq -2(%%"XDX", %%"XCX"), %%mm1\n\t" // value d + "movq 2(%%"XBX"), %%mm0\n\t" // value c + "movq -2(%%"XBX", %%"XCX"), %%mm1\n\t" // value d "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(c,d) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(c,d) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm0\n\t" "psubusb %%mm3, %%mm1\n\t" "por %%mm1, %%mm0\n\t" // abs(c,d) "movq %%mm0, %%mm1\n\t" - "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(c,d) > Thres else 0 + "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(c,d) > Thres else 0 "pxor %%mm3, %%mm3\n\t" "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(c,d) < Thres, else 00 @@ -163,30 +163,30 @@ "por %%mm0, %%mm7\n\t" // a & f - "movq (%%"XDX"), %%mm0\n\t" // value b from top left - "movq -2(%%"XDX", %%"XCX"), %%mm1\n\t" // value d from bottom right + "movq (%%"XBX"), %%mm0\n\t" // value b from top left + "movq -2(%%"XBX", %%"XCX"), %%mm1\n\t" // value d from bottom right "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" "por %%mm1, %%mm3\n\t" // abs(b,d) - "psubusb "_DiffThres", %%mm3\n\t" // nonzero where abs(b,d) > Thres else 0 + "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // nonzero where abs(b,d) > Thres else 0 "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where abs(b,d) < Thres, else 00 "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(b,d) > Thres, else 00 - "movq -2(%%"XDX"), %%mm0\n\t" // value a - "movq 2(%%"XDX", %%"XCX"), %%mm1\n\t" // value f + "movq -2(%%"XBX"), %%mm0\n\t" // value a + "movq 2(%%"XBX", %%"XCX"), %%mm1\n\t" // value f "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(a,f) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(a,f) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm0\n\t" "psubusb %%mm3, %%mm1\n\t" "por %%mm1, %%mm0\n\t" // abs(a,f) "movq %%mm0, %%mm1\n\t" - "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(a,f) > Thres else 0 + "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(a,f) > Thres else 0 "pxor %%mm3, %%mm3\n\t" "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(a,f) < Thres, else 00 @@ -205,22 +205,22 @@ "por %%mm2, %%mm6\n\t" "por %%mm0, %%mm7\n\t" - "pand "_YMask", %%mm5\n\t" // mask out chroma from here - "pand "_YMask", %%mm6\n\t" // mask out chroma from here - "pand "_YMask", %%mm7\n\t" // mask out chroma from here + "pand "MANGLE(YMask)", %%mm5\n\t" // mask out chroma from here + "pand "MANGLE(YMask)", %%mm6\n\t" // mask out chroma from here + "pand "MANGLE(YMask)", %%mm7\n\t" // mask out chroma from here // b,e - "movq (%%"XDX"), %%mm0\n\t" // value b from top - "movq (%%"XDX", %%"XCX"), %%mm1\n\t" // value e from bottom + "movq (%%"XBX"), %%mm0\n\t" // value b from top + "movq (%%"XBX", %%"XCX"), %%mm1\n\t" // value e from bottom "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(b,e) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(b,e) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm0\n\t" "psubusb %%mm3, %%mm1\n\t" "por %%mm1, %%mm0\n\t" // abs(b,e) "movq %%mm0, %%mm1\n\t" - "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(b,e) > Thres else 0 + "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(b,e) > Thres else 0 "pxor %%mm3, %%mm3\n\t" "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(b,e) < Thres, else 00 @@ -238,8 +238,8 @@ "por %%mm0, %%mm7\n\t" // bob in any leftovers - "movq (%%"XDX"), %%mm0\n\t" // value b from top - "movq (%%"XDX", %%"XCX"), %%mm1\n\t" // value e from bottom + "movq (%%"XBX"), %%mm0\n\t" // value b from top + "movq (%%"XBX", %%"XCX"), %%mm1\n\t" // value e from bottom // We will also calc here the max/min values to later limit comb @@ -271,7 +271,7 @@ "por %%mm2, %%mm3\n\t" // abs diff // pmaxub %%mm3, %%mm4 // top or bottom pixel moved most V_PMAXUB ("%%mm3", "%%mm4") // top or bottom pixel moved most - "psubusb "_DiffThres", %%mm3\n\t" // moved more than allowed? or goes to 0? + "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // moved more than allowed? or goes to 0? "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where low motion, else high motion @@ -283,19 +283,19 @@ V_PMAXUB ("%%mm6", "%%mm2") "psubusb %%mm3, %%mm2\n\t" // maybe decrease it to 0000.. if no surround motion -// "movq %%mm2, "_Min_Vals"\n\t" +// "movq %%mm2, "MANGLE(Min_Vals)"\n\t" "movq %%mm0, %%mm2\n\t" V_PMAXUB ("%%mm2", "%%mm1") // pminub %%mm6, %%mm2 // clip our current results so far to be below this V_PMINUB ("%%mm6", "%%mm2", "%%mm4") "paddusb %%mm3, %%mm2\n\t" // maybe increase it to ffffff if no surround motion -// "movq %%mm2, "_Max_Vals"\n\t" +// "movq %%mm2, "MANGLE(Max_Vals)"\n\t" #endif "movq %%mm0, %%mm2\n\t" // pavgb %%mm2, %%mm1 // avg(b,e) - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(b,e) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(b,e) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" diff --git a/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc b/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc index a3b139691..5870d77be 100644 --- a/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc +++ b/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc @@ -33,8 +33,8 @@ static const int64_t __attribute__((__used__)) TENS = 0x0a0a0a0a0a0a0a0aull static const int64_t __attribute__((__used__)) FOURS = 0x0404040404040404ull; static const int64_t __attribute__((__used__)) ONES = 0x0101010101010101ull; static const int64_t __attribute__((__used__)) ShiftMask = 0xfefffefffefffeffull; -static int64_t Min_Vals = 0x0000000000000000ull; -static int64_t Max_Vals = 0x0000000000000000ull; +//static int64_t Min_Vals = 0x0000000000000000ull; +//static int64_t Max_Vals = 0x0000000000000000ull; #endif #ifndef TopFirst @@ -69,7 +69,7 @@ static void FUNCT_NAME(uint8_t *output, int outstride, int rowsize; int FldHeight; int stride = (width*2); - long olddx; + long oldbx; src_pitch = stride*2; diff --git a/src/post/deinterlace/plugins/tomsmocomp/WierdBob.inc b/src/post/deinterlace/plugins/tomsmocomp/WierdBob.inc index 9aa53b119..11614879a 100644 --- a/src/post/deinterlace/plugins/tomsmocomp/WierdBob.inc +++ b/src/post/deinterlace/plugins/tomsmocomp/WierdBob.inc @@ -14,22 +14,22 @@ // selected for the smallest of abs(a,f), abs(c,d), or abs(b,e), etc. // a,f - "movq -2(%%"XDX"), %%mm0\n\t" // value a from top left - "movq 2(%%"XDX", %%"XCX"), %%mm1\n\t" // value f from bottom right + "movq -2(%%"XBX"), %%mm0\n\t" // value a from top left + "movq 2(%%"XBX", %%"XCX"), %%mm1\n\t" // value f from bottom right "movq %%mm0, %%mm6\n\t" // pavgb %%mm6, %%mm1 // avg(a,f), also best so far - V_PAVGB ("%%mm6", "%%mm1", "%%mm7", _ShiftMask) // avg(a,f), also best so far + V_PAVGB ("%%mm6", "%%mm1", "%%mm7", MANGLE(ShiftMask)) // avg(a,f), also best so far "movq %%mm0, %%mm7\n\t" "psubusb %%mm1, %%mm7\n\t" "psubusb %%mm0, %%mm1\n\t" "por %%mm1, %%mm7\n\t" // abs diff, also best so far // c,d - "movq 2(%%"XDX"), %%mm0\n\t" // value a from top left - "movq -2(%%"XDX", %%"XCX"), %%mm1\n\t" // value f from bottom right + "movq 2(%%"XBX"), %%mm0\n\t" // value a from top left + "movq -2(%%"XBX", %%"XCX"), %%mm1\n\t" // value f from bottom right "movq %%mm0, %%mm2\n\t" // pavgb %%mm2, %%mm1 // avg(c,d) - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(c,d) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(c,d) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" @@ -49,15 +49,15 @@ "por %%mm2, %%mm6\n\t" // and merge new & old vals keeping best "por %%mm1, %%mm7\n\t" - "por "_UVMask", %%mm7\n\t" // but we know chroma is worthless so far - "pand "_YMask", %%mm5\n\t" // mask out chroma from here also + "por "MANGLE(UVMask)", %%mm7\n\t" // but we know chroma is worthless so far + "pand "MANGLE(YMask)", %%mm5\n\t" // mask out chroma from here also // j,n - "movq -4(%%"XDX"), %%mm0\n\t" // value j from top left - "movq 4(%%"XDX", %%"XCX"), %%mm1\n\t" // value n from bottom right + "movq -4(%%"XBX"), %%mm0\n\t" // value j from top left + "movq 4(%%"XBX", %%"XCX"), %%mm1\n\t" // value n from bottom right "movq %%mm0, %%mm2\n\t" // pavgb %%mm2, %%mm1 // avg(j,n) - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(j,n) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(j,n) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" @@ -79,11 +79,11 @@ "por %%mm1, %%mm7\n\t" // " // k, m - "movq 4(%%"XDX"), %%mm0\n\t" // value k from top right - "movq -4(%%"XDX", %%"XCX"), %%mm1\n\t" // value n from bottom left + "movq 4(%%"XBX"), %%mm0\n\t" // value k from top right + "movq -4(%%"XBX", %%"XCX"), %%mm1\n\t" // value n from bottom left "movq %%mm0, %%mm4\n\t" // pavgb %%mm4, %%mm1 // avg(k,m) - V_PAVGB ("%%mm4", "%%mm1", "%%mm3", _ShiftMask) // avg(k,m) + V_PAVGB ("%%mm4", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(k,m) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" @@ -108,8 +108,8 @@ "por %%mm1, %%mm7\n\t" // " // b,e - "movq (%%"XDX"), %%mm0\n\t" // value b from top - "movq (%%"XDX", %%"XCX"), %%mm1\n\t" // value e from bottom + "movq (%%"XBX"), %%mm0\n\t" // value b from top + "movq (%%"XBX", %%"XCX"), %%mm1\n\t" // value e from bottom // We will also calc here the max/min values to later limit comb // so the max excursion will not exceed the Max_Comb constant @@ -140,7 +140,7 @@ "por %%mm2, %%mm3\n\t" // abs diff // pmaxub %%mm3, %%mm4 // top or bottom pixel moved most V_PMAXUB ("%%mm3", "%%mm4") // top or bottom pixel moved most - "psubusb "_Max_Mov", %%mm3\n\t" // moved more than allowed? or goes to 0? + "psubusb "MANGLE(Max_Mov)", %%mm3\n\t" // moved more than allowed? or goes to 0? "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where low motion, else high motion @@ -152,19 +152,19 @@ V_PMAXUB ("%%mm6", "%%mm2") "psubusb %%mm3, %%mm2\n\t" // maybe decrease it to 0000.. if no surround motion -// "movq %%mm2, "_Min_Vals"\n\t" +// "movq %%mm2, "MANGLE(Min_Vals)"\n\t" "movq %%mm0, %%mm2\n\t" V_PMAXUB ("%%mm2", "%%mm1") // pminub %%mm6, %%mm2 // clip our current results so far to be below this V_PMINUB ("%%mm6", "%%mm2", "%%mm4") "paddusb %%mm3, %%mm2\n\t" // maybe increase it to ffffff if no surround motion -// "movq %%mm2, "_Max_Vals"\n\t" +// "movq %%mm2, "MANGLE(Max_Vals)"\n\t" #endif "movq %%mm0, %%mm2\n\t" // pavgb %%mm2, %%mm1 // avg(b,e) - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(b,e) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(b,e) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" diff --git a/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h b/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h index fc1e2f66d..3d7ae308e 100644 --- a/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h +++ b/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h @@ -114,7 +114,7 @@ "por %%xmm0, %%xmm5\n\t" /* and merge new & old vals */ \ "por %%xmm2, %%xmm7\n\t" -#define RESET_CHROMA "por "_UVMask", %%xmm7\n\t" +#define RESET_CHROMA "por "MANGLE(UVMask)", %%xmm7\n\t" #else // ifdef IS_SSE2 @@ -126,7 +126,7 @@ "psubusb %%mm1, %%mm2\n\t" \ "psubusb %%mm0, %%mm3\n\t" \ "por %%mm3, %%mm2\n\t" \ - V_PAVGB ("%%mm0", "%%mm1", "%%mm3", _ShiftMask) /* avg of 2 pixels */ \ + V_PAVGB ("%%mm0", "%%mm1", "%%mm3", MANGLE(ShiftMask)) /* avg of 2 pixels */ \ "movq %%mm2, %%mm3\n\t" /* another copy of our our weights */ \ "pxor %%mm1, %%mm1\n\t" \ "psubusb %%mm7, %%mm3\n\t" /* nonzero where old weights lower, else 0 */ \ @@ -144,14 +144,14 @@ "movq "PADDR2A", %%mm1\n\t" /* our pixel2 value */ \ "movq "PADDR1B", %%mm2\n\t" /* our 4 pixels */ \ "movq "PADDR2B", %%mm3\n\t" /* our pixel2 value */ \ - V_PAVGB("%%mm0", "%%mm2", "%%mm2", _ShiftMask) \ - V_PAVGB("%%mm1", "%%mm3", "%%mm3", _ShiftMask) \ + V_PAVGB("%%mm0", "%%mm2", "%%mm2", MANGLE(ShiftMask)) \ + V_PAVGB("%%mm1", "%%mm3", "%%mm3", MANGLE(ShiftMask)) \ "movq %%mm0, %%mm2\n\t" /* another copy of our pixel1 value */ \ "movq %%mm1, %%mm3\n\t" /* another copy of our pixel1 value */ \ "psubusb %%mm1, %%mm2\n\t" \ "psubusb %%mm0, %%mm3\n\t" \ "por %%mm3, %%mm2\n\t" \ - V_PAVGB("%%mm0", "%%mm1", "%%mm3", _ShiftMask) /* avg of 2 pixels */ \ + V_PAVGB("%%mm0", "%%mm1", "%%mm3", MANGLE(ShiftMask)) /* avg of 2 pixels */ \ "movq %%mm2, %%mm3\n\t" /* another copy of our our weights */ \ "pxor %%mm1, %%mm1\n\t" \ "psubusb %%mm7, %%mm3\n\t" /* nonzero where old weights lower, else 0 */ \ @@ -164,7 +164,7 @@ "por %%mm0, %%mm5\n\t" /* and merge new & old vals */ \ "por %%mm2, %%mm7\n\t" -#define RESET_CHROMA "por "_UVMask", %%mm7\n\t" +#define RESET_CHROMA "por "MANGLE(UVMask)", %%mm7\n\t" #endif -- cgit v1.2.3 From 86b77e33f11dc24b53f22170d957f5cb1eadf843 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Tue, 20 Feb 2007 00:58:51 +0000 Subject: Remove the cast as register_enum now accept consts. CVS patchset: 8614 CVS date: 2007/02/20 00:58:51 --- src/post/goom/xine_goom.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/post') diff --git a/src/post/goom/xine_goom.c b/src/post/goom/xine_goom.c index e4f55068b..5871618e0 100644 --- a/src/post/goom/xine_goom.c +++ b/src/post/goom/xine_goom.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_goom.c,v 1.64 2006/12/02 22:35:18 miguelfreitas Exp $ + * $Id: xine_goom.c,v 1.65 2007/02/20 00:58:51 dgp85 Exp $ * * GOOM post plugin. * @@ -218,7 +218,7 @@ static void *goom_init_plugin(xine_t *xine, void *data) cfg->register_enum (cfg, "effects.goom.csc_method", 0, - (char **)goom_csc_methods, + goom_csc_methods, _("colorspace conversion method"), _("You can choose the colorspace conversion method used by goom.\n" "The available selections should be self-explaining."), -- cgit v1.2.3 From cee06643c91eb698d2ea619ee4cf2c63b3fc841c Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Mon, 26 Feb 2007 19:15:15 +0000 Subject: Fix a possible crash in the eq2 plugin. The wrong width value was used for the U and V parts of the image. CVS patchset: 8631 CVS date: 2007/02/26 19:15:15 --- src/post/planar/eq2.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/post') diff --git a/src/post/planar/eq2.c b/src/post/planar/eq2.c index 806a4ea6c..489733c9b 100644 --- a/src/post/planar/eq2.c +++ b/src/post/planar/eq2.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: eq2.c,v 1.16 2006/03/26 14:45:41 valtri Exp $ + * $Id: eq2.c,v 1.17 2007/02/26 19:15:15 dsalt Exp $ * * mplayer's eq2 (soft video equalizer) * Software equalizer (brightness, contrast, gamma, saturation) @@ -599,12 +599,12 @@ static int eq2_draw(vo_frame_t *frame, xine_stream_t *stream) pthread_mutex_lock (&this->lock); for (i = 0; i < 3; i++) { - int height; + int height, width; height = (i==0) ? frame->height : frame->height/2; - + width = (i==0) ? frame->width : frame->width/2; if (eq2->param[i].adjust != NULL) { eq2->param[i].adjust (&eq2->param[i], out_frame->base[i], yv12_frame->base[i], - frame->width, height, out_frame->pitches[i], yv12_frame->pitches[i]); + width, height, out_frame->pitches[i], yv12_frame->pitches[i]); } else { xine_fast_memcpy(out_frame->base[i],yv12_frame->base[i], -- cgit v1.2.3 From 8255b3f2fc3d31bf42e786c472a2b4252511bec9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Fri, 16 Mar 2007 17:15:56 +0000 Subject: Use stdlib.h rather than malloc.h. CVS patchset: 8677 CVS date: 2007/03/16 17:15:56 --- src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src/post') diff --git a/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h b/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h index 3d7ae308e..a3b92a51c 100644 --- a/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h +++ b/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h @@ -1,8 +1,6 @@ #include #include -#ifdef HAVE_MALLOC_H -#include -#endif +#include #define USE_FOR_DSCALER -- cgit v1.2.3 From 47570caa9246581fc158606fd6701cc4e8f9475c Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Sun, 18 Mar 2007 14:47:19 +0000 Subject: Added centre-cutout (4:3 in 16:9) to the expand plugin. Patch by Reinhard Nissl. CVS patchset: 8712 CVS date: 2007/03/18 14:47:19 --- src/post/planar/expand.c | 111 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 99 insertions(+), 12 deletions(-) (limited to 'src/post') diff --git a/src/post/planar/expand.c b/src/post/planar/expand.c index 51cc4eac2..cf288921f 100644 --- a/src/post/planar/expand.c +++ b/src/post/planar/expand.c @@ -21,7 +21,8 @@ * * expand video filter by James Stembridge 24/05/2003 * improved by Michael Roitzsch - * + * centre_crop_out_mode by Reinhard Nissl + * * based on invert.c * */ @@ -52,6 +53,11 @@ * This way, the decoder (or any other post plugin up the tree) will only * see the frame area between the black bars and by that modify the * enlarged version directly. No need for later copying. + * + * When centre_crop_out_mode is enabled, the plugin will detect the black + * bars to the left and right of the image and will then set up cropping + * to efficiently remove the black border around the 4:3 image, which the + * plugin would produce otherwise for this case. */ @@ -63,6 +69,7 @@ typedef struct expand_parameters_s { int enable_automatic_shift; int overlay_y_offset; double aspect; + int centre_cut_out_mode; } expand_parameters_t; START_PARAM_DESCR(expand_parameters_t) @@ -72,6 +79,8 @@ PARAM_ITEM(POST_PARAM_TYPE_INT, overlay_y_offset, NULL, -500, 500, 0, "manually shift the overlay vertically") PARAM_ITEM(POST_PARAM_TYPE_DOUBLE, aspect, NULL, 1.0, 3.5, 0, "target aspect ratio") +PARAM_ITEM(POST_PARAM_TYPE_BOOL, centre_cut_out_mode, NULL, 0, 1, 0, + "cut out centred 4:3 image contained in 16:9 frame") END_PARAM_DESCR(expand_param_descr) typedef struct post_expand_s { @@ -83,6 +92,8 @@ typedef struct post_expand_s { int overlay_y_offset; double aspect; int top_bar_height; + int centre_cut_out_mode; + int cropping_active; } post_expand_t; /* plugin class functions */ @@ -106,6 +117,8 @@ static char *expand_get_help (void); static vo_frame_t *expand_get_frame(xine_video_port_t *port_gen, uint32_t width, uint32_t height, double ratio, int format, int flags); + +/* replaced vo_frame functions */ static int expand_draw(vo_frame_t *frame, xine_stream_t *stream); /* overlay manager intercept check */ @@ -153,6 +166,8 @@ static post_plugin_t *expand_open_plugin(post_class_t *class_gen, int inputs, this->enable_automatic_shift = 0; this->overlay_y_offset = 0; this->aspect = 4.0 / 3.0; + this->centre_cut_out_mode = 0; + this->cropping_active = 0; port = _x_post_intercept_video_port(&this->post, video_target[0], &input, &output); port->new_port.get_frame = expand_get_frame; @@ -166,8 +181,8 @@ static post_plugin_t *expand_open_plugin(post_class_t *class_gen, int inputs, input_param->data = &post_api; xine_list_push_back(this->post.input, input_param); - input->xine_in.name = "video"; - output->xine_out.name = "expanded video"; + input->xine_in.name = "video"; + output->xine_out.name = "expanded video"; this->post.xine_post.video_input[0] = &port->new_port; @@ -214,6 +229,8 @@ static int expand_set_parameters(xine_post_t *this_gen, void *param_gen) this->enable_automatic_shift = param->enable_automatic_shift; this->overlay_y_offset = param->overlay_y_offset; this->aspect = param->aspect; + this->centre_cut_out_mode = param->centre_cut_out_mode; + return 1; } @@ -225,6 +242,8 @@ static int expand_get_parameters(xine_post_t *this_gen, void *param_gen) param->enable_automatic_shift = this->enable_automatic_shift; param->overlay_y_offset = this->overlay_y_offset; param->aspect = this->aspect; + param->centre_cut_out_mode = this->centre_cut_out_mode; + return 1; } @@ -238,22 +257,86 @@ static char *expand_get_help(void) { " Enable_automatic_shift: Enable automatic overlay shifting\n" " Overlay_y_offset: Manually shift the overlay vertically\n" " aspect: The target aspect ratio (default 4:3)\n" + " Centre_cut_out_mode: extracts 4:3 image contained in 16:9 frame\n" "\n" ); } +static int is_pixel_black(vo_frame_t *frame, int x, int y) +{ + int Y = 0x00, Cr = 0x00, Cb = 0x00; + + if (x < 0) x = 0; + if (x >= frame->width) x = frame->width - 1; + if (y < 0) y = 0; + if (y >= frame->height) y = frame->height - 1; + + switch (frame->format) + { + case XINE_IMGFMT_YV12: + Y = *(frame->base[ 0 ] + frame->pitches[ 0 ] * y + x); + Cr = *(frame->base[ 1 ] + frame->pitches[ 1 ] * y / 2 + x / 2); + Cb = *(frame->base[ 2 ] + frame->pitches[ 2 ] * y / 2 + x / 2); + break; + + case XINE_IMGFMT_YUY2: + Y = *(frame->base[ 0 ] + frame->pitches[ 0 ] * y + x * 2 + 0); + x &= ~1; + Cr = *(frame->base[ 0 ] + frame->pitches[ 0 ] * y + x * 2 + 1); + Cb = *(frame->base[ 0 ] + frame->pitches[ 0 ] * y + x * 2 + 3); + break; + } + + return (Y == 0x10 && Cr == 0x80 && Cb == 0x80); +} + + static int expand_draw(vo_frame_t *frame, xine_stream_t *stream) { - post_video_port_t *port = (post_video_port_t *)frame->port; - post_expand_t *this = (post_expand_t *)port->post; - int skip; - - frame->ratio = this->aspect; - _x_post_frame_copy_down(frame, frame->next); - skip = frame->next->draw(frame->next, stream); - _x_post_frame_copy_up(frame, frame->next); - return skip; + post_video_port_t *port = (post_video_port_t *)frame->port; + post_expand_t *this = (post_expand_t *)port->post; + int skip; + + if (this->centre_cut_out_mode && !frame->bad_frame) + { + /* expected area of inner 4:3 image */ + int centre_width = frame->width * (9 * 4) / (16 * 3); + int centre_left = (frame->width - centre_width ) / 2; + + /* centre point for detecting a black frame */ + int centre_x = frame->width / 2; + int centre_y = frame->height / 2; + + /* ignore a black frame as it could lead to wrong results */ + if (!is_pixel_black(frame, centre_x, centre_y)) + { + /* coordinates for testing black border near the centre area */ + int test_left = centre_left - 16; + int test_right = centre_left + 16 + centre_width; + + /* enable cropping when these pixels are black */ + this->cropping_active = is_pixel_black(frame, test_left, centre_y) + && is_pixel_black(frame, test_right, centre_y); + } + + /* crop frame */ + if (this->centre_cut_out_mode && this->cropping_active) { + frame->crop_left += centre_left; + frame->crop_right += centre_left; + + /* get_frame() allocated an extra high frame */ + frame->crop_top += (frame->next->height - frame->height) / 2; + frame->crop_bottom += (frame->next->height - frame->height) / 2; + } + } + + frame->ratio = this->aspect; + _x_post_frame_copy_down(frame, frame->next); + skip = frame->next->draw(frame->next, stream); + _x_post_frame_copy_up(frame, frame->next); + + return skip; } @@ -338,6 +421,10 @@ static vo_frame_t *expand_get_frame(xine_video_port_t *port_gen, uint32_t width, static int expand_intercept_ovl(post_video_port_t *port) { + post_expand_t *this = (post_expand_t *)port->post; + + if (this->centre_cut_out_mode && this->cropping_active) return 0; + /* we always intercept overlay manager */ return 1; } -- cgit v1.2.3 From 62b1bb0c213c37b58e5a7bb8359f41168c34f817 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Thu, 22 Mar 2007 20:44:58 +0000 Subject: Fix crosscompile to use build and host definition from autoconf, rather than using hacksaround. Also replace the whole pthread check with an improved macro originally written for XCB, this way it's not going to try linking the fake -lpthread on Darwin, and it also does not force a -I/usr/local/include on FreeBSD. The new macro respects the same variables set by ports, so that it's even more transparent to FreeBSD users. CVS patchset: 8739 CVS date: 2007/03/22 20:44:58 --- src/post/audio/Makefile.am | 2 +- src/post/goom/Makefile.am | 2 +- src/post/mosaico/Makefile.am | 4 ++-- src/post/planar/Makefile.am | 2 +- src/post/visualizations/Makefile.am | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src/post') diff --git a/src/post/audio/Makefile.am b/src/post/audio/Makefile.am index 7ed37bc5b..9cb93dd5a 100644 --- a/src/post/audio/Makefile.am +++ b/src/post/audio/Makefile.am @@ -8,7 +8,7 @@ lib_LTLIBRARIES = xineplug_post_audio_filters.la xineplug_post_audio_filters_la_SOURCES = \ upmix.c upmix_mono.c filter.c window.c stretch.c volnorm.c audio_filters.c -xineplug_post_audio_filters_la_LIBADD = $(XINE_LIB) $(THREAD_LIBS) -lm +xineplug_post_audio_filters_la_LIBADD = $(XINE_LIB) $(PTHREAD_LIBS) -lm xineplug_post_audio_filters_la_CFLAGS = $(VISIBILITY_FLAG) xineplug_post_audio_filters_la_LDFLAGS = -avoid-version -module diff --git a/src/post/goom/Makefile.am b/src/post/goom/Makefile.am index 4031f4f93..4aeda8f04 100644 --- a/src/post/goom/Makefile.am +++ b/src/post/goom/Makefile.am @@ -27,7 +27,7 @@ xineplug_post_goom_la_SOURCES = $(extra_files) xine_goom.c \ gfontlib.c goom_core.c goom_tools.c goomsl.c goomsl_hash.c goomsl_heap.c \ goomsl_lex.c goomsl_yacc.c graphic.c ifs.c lines.c \ plugin_info.c sound_tester.c surf3d.c tentacle3d.c v3d.c -xineplug_post_goom_la_LIBADD = $(XINE_LIB) $(GOOM_LIBS) $(THREAD_LIBS) -lm +xineplug_post_goom_la_LIBADD = $(XINE_LIB) $(GOOM_LIBS) $(PTHREAD_LIBS) -lm xineplug_post_goom_la_CFLAGS = $(VISIBILITY_FLAG) xineplug_post_goom_la_LDFLAGS = -avoid-version -module diff --git a/src/post/mosaico/Makefile.am b/src/post/mosaico/Makefile.am index aefb290c6..f5497b1af 100644 --- a/src/post/mosaico/Makefile.am +++ b/src/post/mosaico/Makefile.am @@ -5,11 +5,11 @@ libdir = $(XINE_PLUGINDIR)/post lib_LTLIBRARIES = xineplug_post_mosaico.la xineplug_post_switch.la xineplug_post_mosaico_la_SOURCES = mosaico.c -xineplug_post_mosaico_la_LIBADD = $(XINE_LIB) $(THREAD_LIBS) +xineplug_post_mosaico_la_LIBADD = $(XINE_LIB) $(PTHREAD_LIBS) xineplug_post_mosaico_la_CFLAGS = $(VISIBILITY_FLAG) xineplug_post_mosaico_la_LDFLAGS = -avoid-version -module xineplug_post_switch_la_SOURCES = switch.c -xineplug_post_switch_la_LIBADD = $(XINE_LIB) $(THREAD_LIBS) +xineplug_post_switch_la_LIBADD = $(XINE_LIB) $(PTHREAD_LIBS) xineplug_post_switch_la_CFLAGS = $(VISIBILITY_FLAG) xineplug_post_switch_la_LDFLAGS = -avoid-version -module diff --git a/src/post/planar/Makefile.am b/src/post/planar/Makefile.am index 3440ff6ec..2e60671b5 100644 --- a/src/post/planar/Makefile.am +++ b/src/post/planar/Makefile.am @@ -22,7 +22,7 @@ lib_LTLIBRARIES = xineplug_post_planar.la xineplug_post_planar_la_SOURCES = planar.c invert.c expand.c fill.c boxblur.c \ denoise3d.c eq.c eq2.c unsharp.c pp.c noise.c xineplug_post_planar_la_DEPENDENCIES = $(postproc_dep) -xineplug_post_planar_la_LIBADD = $(XINE_LIB) $(postproc_lib) -lm $(THREAD_LIBS) +xineplug_post_planar_la_LIBADD = $(XINE_LIB) $(postproc_lib) -lm $(PTHREAD_LIBS) xineplug_post_planar_la_LDFLAGS = -avoid-version -module \ @IMPURE_TEXT_LDFLAGS@ xineplug_post_planar_la_CFLAGS = $(VISIBILITY_FLAG) $(AM_CFLAGS) diff --git a/src/post/visualizations/Makefile.am b/src/post/visualizations/Makefile.am index 8891b1c53..dc7679103 100644 --- a/src/post/visualizations/Makefile.am +++ b/src/post/visualizations/Makefile.am @@ -8,7 +8,7 @@ lib_LTLIBRARIES = xineplug_post_visualizations.la xineplug_post_visualizations_la_SOURCES = \ visualizations.c fft.c fftscope.c oscope.c fftgraph.c -xineplug_post_visualizations_la_LIBADD = $(XINE_LIB) $(THREAD_LIBS) -lm +xineplug_post_visualizations_la_LIBADD = $(XINE_LIB) $(PTHREAD_LIBS) -lm xineplug_post_visualizations_la_CFLAGS = $(VISIBILITY_FLAG) xineplug_post_visualizations_la_LDFLAGS = -avoid-version -module -- cgit v1.2.3 From 4d0e0a887efb69fcd9a21db83d169cf99de1892d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Thu, 22 Mar 2007 23:32:05 +0000 Subject: Instead of defining HAVE_ASMALIGN_POT during configure and then creating the macro ASMALIGN(ZEROBITS) in ffmpeg's code, define it directly at configure, this way it can be used for the planar postplugin, that will then build with Apple's AS. CVS patchset: 8742 CVS date: 2007/03/22 23:32:05 --- src/post/planar/eq.c | 4 ++-- src/post/planar/eq2.c | 4 ++-- src/post/planar/noise.c | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src/post') diff --git a/src/post/planar/eq.c b/src/post/planar/eq.c index 50fd03b7f..8c7b00e4b 100644 --- a/src/post/planar/eq.c +++ b/src/post/planar/eq.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: eq.c,v 1.14 2006/02/04 14:06:52 miguelfreitas Exp $ + * $Id: eq.c,v 1.15 2007/03/22 23:32:05 dgp85 Exp $ * * mplayer's eq (soft video equalizer) * Copyright (C) Richard Felker @@ -52,7 +52,7 @@ static void process_MMX(unsigned char *dest, int dstride, unsigned char *src, in "movq (%6), %%mm4 \n\t" "pxor %%mm0, %%mm0 \n\t" "movl %4, %%eax\n\t" - ".balign 16 \n\t" + ASMALIGN(4) "1: \n\t" "movq (%0), %%mm1 \n\t" "movq (%0), %%mm2 \n\t" diff --git a/src/post/planar/eq2.c b/src/post/planar/eq2.c index 489733c9b..38f9117db 100644 --- a/src/post/planar/eq2.c +++ b/src/post/planar/eq2.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: eq2.c,v 1.17 2007/02/26 19:15:15 dsalt Exp $ + * $Id: eq2.c,v 1.18 2007/03/22 23:32:05 dgp85 Exp $ * * mplayer's eq2 (soft video equalizer) * Software equalizer (brightness, contrast, gamma, saturation) @@ -128,7 +128,7 @@ void affine_1d_MMX (eq2_param_t *par, unsigned char *dst, unsigned char *src, "movq (%6), %%mm4 \n\t" "pxor %%mm0, %%mm0 \n\t" "movl %4, %%eax\n\t" - ".balign 16 \n\t" + ASMALIGN(4) "1: \n\t" "movq (%0), %%mm1 \n\t" "movq (%0), %%mm2 \n\t" diff --git a/src/post/planar/noise.c b/src/post/planar/noise.c index 1b46825db..154d5f8cc 100644 --- a/src/post/planar/noise.c +++ b/src/post/planar/noise.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: noise.c,v 1.3 2006/03/26 14:45:41 valtri Exp $ + * $Id: noise.c,v 1.4 2007/03/22 23:32:05 dgp85 Exp $ * * mplayer's noise filter, ported by Jason Tackaberry. Original filter * is copyright 2002 Michael Niedermayer @@ -159,7 +159,7 @@ static inline void lineNoise_MMX(uint8_t *dst, uint8_t *src, int8_t *noise, int "pcmpeqb %%mm7, %%mm7 \n\t" "psllw $15, %%mm7 \n\t" "packsswb %%mm7, %%mm7 \n\t" - ".balign 16 \n\t" + ASMALIGN(4) "1: \n\t" "movq (%0, %%"REG_a"), %%mm0 \n\t" "movq (%1, %%"REG_a"), %%mm1 \n\t" @@ -186,7 +186,7 @@ static inline void lineNoise_MMX2(uint8_t *dst, uint8_t *src, int8_t *noise, int "pcmpeqb %%mm7, %%mm7 \n\t" "psllw $15, %%mm7 \n\t" "packsswb %%mm7, %%mm7 \n\t" - ".balign 16 \n\t" + ASMALIGN(4) "1: \n\t" "movq (%0, %%"REG_a"), %%mm0 \n\t" "movq (%1, %%"REG_a"), %%mm1 \n\t" @@ -225,7 +225,7 @@ static inline void lineNoiseAvg_MMX(uint8_t *dst, uint8_t *src, int len, int8_t asm volatile( "mov %5, %%"REG_a" \n\t" - ".balign 16 \n\t" + ASMALIGN(4) "1: \n\t" "movq (%1, %%"REG_a"), %%mm1 \n\t" "movq (%0, %%"REG_a"), %%mm0 \n\t" -- cgit v1.2.3 From 6ff7b823ea37c8baa725fad659b06b23e1d92d57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Mon, 2 Apr 2007 20:44:04 +0200 Subject: Migrate all .cvsignore files to .hgignore. --HG-- rename : .cvsignore => .hgignore rename : doc/.cvsignore => doc/.hgignore rename : doc/faq/.cvsignore => doc/faq/.hgignore rename : doc/hackersguide/.cvsignore => doc/hackersguide/.hgignore rename : doc/man/.cvsignore => doc/man/.hgignore rename : doc/man/en/.cvsignore => doc/man/en/.hgignore rename : include/.cvsignore => include/.hgignore rename : intl/.cvsignore => intl/.hgignore rename : lib/.cvsignore => lib/.hgignore rename : m4/.cvsignore => m4/.hgignore rename : misc/.cvsignore => misc/.hgignore rename : misc/fonts/.cvsignore => misc/fonts/.hgignore rename : po/.cvsignore => po/.hgignore rename : src/.cvsignore => src/.hgignore rename : src/audio_out/.cvsignore => src/audio_out/.hgignore rename : src/combined/.cvsignore => src/combined/.hgignore rename : src/demuxers/.cvsignore => src/demuxers/.hgignore rename : src/dxr3/.cvsignore => src/dxr3/.hgignore rename : src/input/.cvsignore => src/input/.hgignore rename : src/input/dvb/.cvsignore => src/input/dvb/.hgignore rename : src/input/libdvdnav/.cvsignore => src/input/libdvdnav/.hgignore rename : src/input/libreal/.cvsignore => src/input/libreal/.hgignore rename : src/input/librtsp/.cvsignore => src/input/librtsp/.hgignore rename : src/input/vcd/.cvsignore => src/input/vcd/.hgignore rename : src/input/vcd/libcdio/.cvsignore => src/input/vcd/libcdio/.hgignore rename : src/input/vcd/libcdio/MSWindows/.cvsignore => src/input/vcd/libcdio/MSWindows/.hgignore rename : src/input/vcd/libcdio/cdio/.cvsignore => src/input/vcd/libcdio/cdio/.hgignore rename : src/input/vcd/libcdio/image/.cvsignore => src/input/vcd/libcdio/image/.hgignore rename : src/input/vcd/libvcd/.cvsignore => src/input/vcd/libvcd/.hgignore rename : src/input/vcd/libvcd/libvcd/.cvsignore => src/input/vcd/libvcd/libvcd/.hgignore rename : src/liba52/.cvsignore => src/liba52/.hgignore rename : src/libdts/.cvsignore => src/libdts/.hgignore rename : src/libfaad/.cvsignore => src/libfaad/.hgignore rename : src/libfaad/codebook/.cvsignore => src/libfaad/codebook/.hgignore rename : src/libffmpeg/.cvsignore => src/libffmpeg/.hgignore rename : src/libffmpeg/libavcodec/.cvsignore => src/libffmpeg/libavcodec/.hgignore rename : src/libffmpeg/libavcodec/alpha/.cvsignore => src/libffmpeg/libavcodec/alpha/.hgignore rename : src/libffmpeg/libavcodec/armv4l/.cvsignore => src/libffmpeg/libavcodec/armv4l/.hgignore rename : src/libffmpeg/libavcodec/i386/.cvsignore => src/libffmpeg/libavcodec/i386/.hgignore rename : src/libffmpeg/libavcodec/libpostproc/.cvsignore => src/libffmpeg/libavcodec/libpostproc/.hgignore rename : src/libffmpeg/libavcodec/mlib/.cvsignore => src/libffmpeg/libavcodec/mlib/.hgignore rename : src/libffmpeg/libavcodec/ppc/.cvsignore => src/libffmpeg/libavcodec/ppc/.hgignore rename : src/libffmpeg/libavcodec/sparc/.cvsignore => src/libffmpeg/libavcodec/sparc/.hgignore rename : src/libffmpeg/libavutil/.cvsignore => src/libffmpeg/libavutil/.hgignore rename : src/libflac/.cvsignore => src/libflac/.hgignore rename : src/liblpcm/.cvsignore => src/liblpcm/.hgignore rename : src/libmad/.cvsignore => src/libmad/.hgignore rename : src/libmpeg2/.cvsignore => src/libmpeg2/.hgignore rename : src/libmpeg2new/.cvsignore => src/libmpeg2new/.hgignore rename : src/libmpeg2new/include/.cvsignore => src/libmpeg2new/include/.hgignore rename : src/libmpeg2new/libmpeg2/.cvsignore => src/libmpeg2new/libmpeg2/.hgignore rename : src/libmusepack/.cvsignore => src/libmusepack/.hgignore rename : src/libmusepack/musepack/.cvsignore => src/libmusepack/musepack/.hgignore rename : src/libreal/.cvsignore => src/libreal/.hgignore rename : src/libspeex/.cvsignore => src/libspeex/.hgignore rename : src/libspucc/.cvsignore => src/libspucc/.hgignore rename : src/libspucmml/.cvsignore => src/libspucmml/.hgignore rename : src/libspudec/.cvsignore => src/libspudec/.hgignore rename : src/libspudvb/.cvsignore => src/libspudvb/.hgignore rename : src/libsputext/.cvsignore => src/libsputext/.hgignore rename : src/libtheora/.cvsignore => src/libtheora/.hgignore rename : src/libvorbis/.cvsignore => src/libvorbis/.hgignore rename : src/libw32dll/.cvsignore => src/libw32dll/.hgignore rename : src/libw32dll/DirectShow/.cvsignore => src/libw32dll/DirectShow/.hgignore rename : src/libw32dll/dmo/.cvsignore => src/libw32dll/dmo/.hgignore rename : src/libw32dll/qtx/.cvsignore => src/libw32dll/qtx/.hgignore rename : src/libw32dll/qtx/qtxsdk/.cvsignore => src/libw32dll/qtx/qtxsdk/.hgignore rename : src/libw32dll/wine/.cvsignore => src/libw32dll/wine/.hgignore rename : src/libxineadec/.cvsignore => src/libxineadec/.hgignore rename : src/libxineadec/gsm610/.cvsignore => src/libxineadec/gsm610/.hgignore rename : src/libxineadec/nosefart/.cvsignore => src/libxineadec/nosefart/.hgignore rename : src/libxinevdec/.cvsignore => src/libxinevdec/.hgignore rename : src/post/.cvsignore => src/post/.hgignore rename : src/post/audio/.cvsignore => src/post/audio/.hgignore rename : src/post/deinterlace/.cvsignore => src/post/deinterlace/.hgignore rename : src/post/deinterlace/plugins/.cvsignore => src/post/deinterlace/plugins/.hgignore rename : src/post/goom/.cvsignore => src/post/goom/.hgignore rename : src/post/mosaico/.cvsignore => src/post/mosaico/.hgignore rename : src/post/planar/.cvsignore => src/post/planar/.hgignore rename : src/post/visualizations/.cvsignore => src/post/visualizations/.hgignore rename : src/video_out/.cvsignore => src/video_out/.hgignore rename : src/video_out/libdha/.cvsignore => src/video_out/libdha/.hgignore rename : src/video_out/libdha/bin/.cvsignore => src/video_out/libdha/bin/.hgignore rename : src/video_out/libdha/kernelhelper/.cvsignore => src/video_out/libdha/kernelhelper/.hgignore rename : src/video_out/libdha/oth/.cvsignore => src/video_out/libdha/oth/.hgignore rename : src/video_out/libdha/sysdep/.cvsignore => src/video_out/libdha/sysdep/.hgignore rename : src/video_out/macosx/.cvsignore => src/video_out/macosx/.hgignore rename : src/video_out/vidix/.cvsignore => src/video_out/vidix/.hgignore rename : src/video_out/vidix/drivers/.cvsignore => src/video_out/vidix/drivers/.hgignore rename : src/xine-engine/.cvsignore => src/xine-engine/.hgignore rename : src/xine-utils/.cvsignore => src/xine-utils/.hgignore rename : win32/.cvsignore => win32/.hgignore rename : win32/include/.cvsignore => win32/include/.hgignore --- src/post/.cvsignore | 2 -- src/post/.hgignore | 2 ++ src/post/audio/.cvsignore | 6 ------ src/post/audio/.hgignore | 6 ++++++ src/post/deinterlace/.cvsignore | 6 ------ src/post/deinterlace/.hgignore | 6 ++++++ src/post/deinterlace/plugins/.cvsignore | 6 ------ src/post/deinterlace/plugins/.hgignore | 6 ++++++ src/post/goom/.cvsignore | 6 ------ src/post/goom/.hgignore | 6 ++++++ src/post/mosaico/.cvsignore | 6 ------ src/post/mosaico/.hgignore | 6 ++++++ src/post/planar/.cvsignore | 6 ------ src/post/planar/.hgignore | 6 ++++++ src/post/visualizations/.cvsignore | 6 ------ src/post/visualizations/.hgignore | 6 ++++++ 16 files changed, 44 insertions(+), 44 deletions(-) delete mode 100644 src/post/.cvsignore create mode 100644 src/post/.hgignore delete mode 100644 src/post/audio/.cvsignore create mode 100644 src/post/audio/.hgignore delete mode 100644 src/post/deinterlace/.cvsignore create mode 100644 src/post/deinterlace/.hgignore delete mode 100644 src/post/deinterlace/plugins/.cvsignore create mode 100644 src/post/deinterlace/plugins/.hgignore delete mode 100644 src/post/goom/.cvsignore create mode 100644 src/post/goom/.hgignore delete mode 100644 src/post/mosaico/.cvsignore create mode 100644 src/post/mosaico/.hgignore delete mode 100644 src/post/planar/.cvsignore create mode 100644 src/post/planar/.hgignore delete mode 100644 src/post/visualizations/.cvsignore create mode 100644 src/post/visualizations/.hgignore (limited to 'src/post') diff --git a/src/post/.cvsignore b/src/post/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/src/post/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/src/post/.hgignore b/src/post/.hgignore new file mode 100644 index 000000000..282522db0 --- /dev/null +++ b/src/post/.hgignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/src/post/audio/.cvsignore b/src/post/audio/.cvsignore deleted file mode 100644 index 7d926a554..000000000 --- a/src/post/audio/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -Makefile -Makefile.in -.libs -.deps -*.lo -*.la diff --git a/src/post/audio/.hgignore b/src/post/audio/.hgignore new file mode 100644 index 000000000..7d926a554 --- /dev/null +++ b/src/post/audio/.hgignore @@ -0,0 +1,6 @@ +Makefile +Makefile.in +.libs +.deps +*.lo +*.la diff --git a/src/post/deinterlace/.cvsignore b/src/post/deinterlace/.cvsignore deleted file mode 100644 index 7d926a554..000000000 --- a/src/post/deinterlace/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -Makefile -Makefile.in -.libs -.deps -*.lo -*.la diff --git a/src/post/deinterlace/.hgignore b/src/post/deinterlace/.hgignore new file mode 100644 index 000000000..7d926a554 --- /dev/null +++ b/src/post/deinterlace/.hgignore @@ -0,0 +1,6 @@ +Makefile +Makefile.in +.libs +.deps +*.lo +*.la diff --git a/src/post/deinterlace/plugins/.cvsignore b/src/post/deinterlace/plugins/.cvsignore deleted file mode 100644 index 7d926a554..000000000 --- a/src/post/deinterlace/plugins/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -Makefile -Makefile.in -.libs -.deps -*.lo -*.la diff --git a/src/post/deinterlace/plugins/.hgignore b/src/post/deinterlace/plugins/.hgignore new file mode 100644 index 000000000..7d926a554 --- /dev/null +++ b/src/post/deinterlace/plugins/.hgignore @@ -0,0 +1,6 @@ +Makefile +Makefile.in +.libs +.deps +*.lo +*.la diff --git a/src/post/goom/.cvsignore b/src/post/goom/.cvsignore deleted file mode 100644 index 7d926a554..000000000 --- a/src/post/goom/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -Makefile -Makefile.in -.libs -.deps -*.lo -*.la diff --git a/src/post/goom/.hgignore b/src/post/goom/.hgignore new file mode 100644 index 000000000..7d926a554 --- /dev/null +++ b/src/post/goom/.hgignore @@ -0,0 +1,6 @@ +Makefile +Makefile.in +.libs +.deps +*.lo +*.la diff --git a/src/post/mosaico/.cvsignore b/src/post/mosaico/.cvsignore deleted file mode 100644 index 7d926a554..000000000 --- a/src/post/mosaico/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -Makefile -Makefile.in -.libs -.deps -*.lo -*.la diff --git a/src/post/mosaico/.hgignore b/src/post/mosaico/.hgignore new file mode 100644 index 000000000..7d926a554 --- /dev/null +++ b/src/post/mosaico/.hgignore @@ -0,0 +1,6 @@ +Makefile +Makefile.in +.libs +.deps +*.lo +*.la diff --git a/src/post/planar/.cvsignore b/src/post/planar/.cvsignore deleted file mode 100644 index 7d926a554..000000000 --- a/src/post/planar/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -Makefile -Makefile.in -.libs -.deps -*.lo -*.la diff --git a/src/post/planar/.hgignore b/src/post/planar/.hgignore new file mode 100644 index 000000000..7d926a554 --- /dev/null +++ b/src/post/planar/.hgignore @@ -0,0 +1,6 @@ +Makefile +Makefile.in +.libs +.deps +*.lo +*.la diff --git a/src/post/visualizations/.cvsignore b/src/post/visualizations/.cvsignore deleted file mode 100644 index 7d926a554..000000000 --- a/src/post/visualizations/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -Makefile -Makefile.in -.libs -.deps -*.lo -*.la diff --git a/src/post/visualizations/.hgignore b/src/post/visualizations/.hgignore new file mode 100644 index 000000000..7d926a554 --- /dev/null +++ b/src/post/visualizations/.hgignore @@ -0,0 +1,6 @@ +Makefile +Makefile.in +.libs +.deps +*.lo +*.la -- cgit v1.2.3