[FFmpeg-devel] [PATCH] make SVQ3 parts in h264.c conditional
Michael Niedermayer
michaelni
Fri Dec 19 12:06:16 CET 2008
On Fri, Dec 19, 2008 at 11:10:57AM +0100, Diego Biurrun wrote:
> Here is another part of the h264.c/svq3.c separation. This one should
> be uncontroversial. I have run no benchmarks as I doubt this can have
> any sort of effect.
>
> Diego
> Index: libavcodec/h264.c
> ===================================================================
> --- libavcodec/h264.c (revision 16237)
> +++ libavcodec/h264.c (working copy)
> @@ -2143,7 +2143,7 @@
> s->quarter_sample = 1;
> s->low_delay= 1;
>
> - if(avctx->codec_id == CODEC_ID_SVQ3)
> + if(ENABLE_SVQ3_DECODER && avctx->codec_id == CODEC_ID_SVQ3)
> avctx->pix_fmt= PIX_FMT_YUVJ420P;
> else
> avctx->pix_fmt= PIX_FMT_YUV420P;
> @@ -2210,7 +2210,7 @@
> // SVQ3 as well as most other codecs have only last/next/current and thus
> // get released even with set reference, besides SVQ3 and others do not
> // mark frames as reference later "naturally".
> - if(s->codec_id != CODEC_ID_SVQ3)
> + if(!ENABLE_SVQ3_DECODER && s->codec_id != CODEC_ID_SVQ3)
> s->current_picture_ptr->reference= 0;
>
> s->current_picture_ptr->field_poc[0]=
> @@ -2492,7 +2492,7 @@
> idct_dc_add(ptr, h->mb + i*16, linesize);
> else
> idct_add (ptr, h->mb + i*16, linesize);
> - }else
> + }else if(ENABLE_SVQ3_DECODER)
> svq3_add_idct_c(ptr, h->mb + i*16, linesize, s->qscale, 0);
> }
> }
> @@ -2504,7 +2504,7 @@
> if(is_h264){
> if(!transform_bypass)
> h264_luma_dc_dequant_idct_c(h->mb, s->qscale, h->dequant4_coeff[0][s->qscale][0]);
> - }else
> + }else if(ENABLE_SVQ3_DECODER)
> svq3_luma_dc_dequant_idct_c(h->mb, s->qscale);
> }
> if(h->deblocking_filter)
> @@ -2549,7 +2549,7 @@
> }
> }
> }
> - }else{
> + }else if(ENABLE_SVQ3_DECODER){
> for(i=0; i<16; i++){
> if(h->non_zero_count_cache[ scan8[i] ] || h->mb[i*16]){ //FIXME benchmark weird rule, & below
> uint8_t * const ptr= dest_y + block_offset[i];
> @@ -2584,7 +2584,7 @@
> else if(h->mb[i*16])
> idct_dc_add(dest[(i&4)>>2] + block_offset[i], h->mb + i*16, uvlinesize);
> }
> - }else{
> + }else if(ENABLE_SVQ3_DECODER){
> for(i=16; i<16+8; i++){
> if(h->non_zero_count_cache[ scan8[i] ] || h->mb[i*16]){
> uint8_t * const ptr= dest[(i&4)>>2] + block_offset[i];
does following work too?
+#ifdef CONFIG_SVQ3_DECODER
const int is_h264 = simple || s->codec_id == CODEC_ID_H264;
+#else
+ #define is_h264 0
+#endif
if yes it would be simpler
or even
const int is_h264 = !ENABLE_SVQ3_DECODER || simple || s->codec_id == CODEC_ID_H264;
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Freedom in capitalist society always remains about the same as it was in
ancient Greek republics: Freedom for slave owners. -- Vladimir Lenin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20081219/ff6a3af8/attachment.pgp>
More information about the ffmpeg-devel
mailing list