svq3: use hpeldsp instead of dsputil for half-pel functions.
This commit is contained in:
		
							parent
							
								
									4ba5dbc0e4
								
							
						
					
					
						commit
						05dd583426
					
				
							
								
								
									
										2
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								configure
									
									
									
									
										vendored
									
									
								
							@ -1806,7 +1806,7 @@ sonic_encoder_select="golomb"
 | 
				
			|||||||
sonic_ls_encoder_select="golomb"
 | 
					sonic_ls_encoder_select="golomb"
 | 
				
			||||||
svq1_decoder_select="hpeldsp"
 | 
					svq1_decoder_select="hpeldsp"
 | 
				
			||||||
svq1_encoder_select="aandcttables dsputil mpegvideoenc"
 | 
					svq1_encoder_select="aandcttables dsputil mpegvideoenc"
 | 
				
			||||||
svq3_decoder_select="error_resilience golomb h264chroma h264dsp h264pred h264qpel mpegvideo videodsp"
 | 
					svq3_decoder_select="dsputil error_resilience golomb h264chroma h264dsp h264pred h264qpel mpegvideo videodsp"
 | 
				
			||||||
svq3_decoder_suggest="zlib"
 | 
					svq3_decoder_suggest="zlib"
 | 
				
			||||||
tak_decoder_select="dsputil"
 | 
					tak_decoder_select="dsputil"
 | 
				
			||||||
theora_decoder_select="vp3_decoder"
 | 
					theora_decoder_select="vp3_decoder"
 | 
				
			||||||
 | 
				
			|||||||
@ -48,6 +48,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "h264_mvpred.h"
 | 
					#include "h264_mvpred.h"
 | 
				
			||||||
#include "golomb.h"
 | 
					#include "golomb.h"
 | 
				
			||||||
 | 
					#include "hpeldsp.h"
 | 
				
			||||||
#include "rectangle.h"
 | 
					#include "rectangle.h"
 | 
				
			||||||
#include "vdpau_internal.h"
 | 
					#include "vdpau_internal.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -65,6 +66,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
typedef struct {
 | 
					typedef struct {
 | 
				
			||||||
    H264Context h;
 | 
					    H264Context h;
 | 
				
			||||||
 | 
					    HpelDSPContext hdsp;
 | 
				
			||||||
    Picture *cur_pic;
 | 
					    Picture *cur_pic;
 | 
				
			||||||
    Picture *next_pic;
 | 
					    Picture *next_pic;
 | 
				
			||||||
    Picture *last_pic;
 | 
					    Picture *last_pic;
 | 
				
			||||||
@ -316,9 +318,9 @@ static inline void svq3_mc_dir_part(SVQ3Context *s,
 | 
				
			|||||||
             : h->dsp.put_tpel_pixels_tab)[dxy](dest, src, h->linesize,
 | 
					             : h->dsp.put_tpel_pixels_tab)[dxy](dest, src, h->linesize,
 | 
				
			||||||
                                                width, height);
 | 
					                                                width, height);
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        (avg ? h->dsp.avg_pixels_tab
 | 
					        (avg ? s->hdsp.avg_pixels_tab
 | 
				
			||||||
             : h->dsp.put_pixels_tab)[blocksize][dxy](dest, src, h->linesize,
 | 
					             : s->hdsp.put_pixels_tab)[blocksize][dxy](dest, src, h->linesize,
 | 
				
			||||||
                                                      height);
 | 
					                                                       height);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!(h->flags & CODEC_FLAG_GRAY)) {
 | 
					    if (!(h->flags & CODEC_FLAG_GRAY)) {
 | 
				
			||||||
        mx     = mx + (mx < (int) x) >> 1;
 | 
					        mx     = mx + (mx < (int) x) >> 1;
 | 
				
			||||||
@ -344,10 +346,10 @@ static inline void svq3_mc_dir_part(SVQ3Context *s,
 | 
				
			|||||||
                                                        h->uvlinesize,
 | 
					                                                        h->uvlinesize,
 | 
				
			||||||
                                                        width, height);
 | 
					                                                        width, height);
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                (avg ? h->dsp.avg_pixels_tab
 | 
					                (avg ? s->hdsp.avg_pixels_tab
 | 
				
			||||||
                     : h->dsp.put_pixels_tab)[blocksize][dxy](dest, src,
 | 
					                     : s->hdsp.put_pixels_tab)[blocksize][dxy](dest, src,
 | 
				
			||||||
                                                              h->uvlinesize,
 | 
					                                                               h->uvlinesize,
 | 
				
			||||||
                                                              height);
 | 
					                                                               height);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -869,6 +871,7 @@ static av_cold int svq3_decode_init(AVCodecContext *avctx)
 | 
				
			|||||||
    if (ff_h264_decode_init(avctx) < 0)
 | 
					    if (ff_h264_decode_init(avctx) < 0)
 | 
				
			||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ff_hpeldsp_init(&s->hdsp, avctx->flags);
 | 
				
			||||||
    h->flags           = avctx->flags;
 | 
					    h->flags           = avctx->flags;
 | 
				
			||||||
    h->is_complex      = 1;
 | 
					    h->is_complex      = 1;
 | 
				
			||||||
    h->sps.chroma_format_idc = 1;
 | 
					    h->sps.chroma_format_idc = 1;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user