Hi,
On Sun, Jul 17, 2011 at 4:43 AM, Diego Biurrun <[email protected]> wrote:
> @@ -3457,52 +3389,6 @@ static int decode_slice(struct AVCodecContext *avctx,
> void *arg){
> }
> }
> }
> -
> -#if 0
> - for(;s->mb_y < s->mb_height; s->mb_y++){
> - for(;s->mb_x < s->mb_width; s->mb_x++){
> - int ret= decode_mb(h);
> -
> - ff_h264_hl_decode_mb(h);
> -
> - if(ret<0){
> - av_log(s->avctx, AV_LOG_ERROR, "error while decoding MB %d
> %d\n", s->mb_x, s->mb_y);
> - ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x,
> s->mb_y, (AC_ERROR|DC_ERROR|MV_ERROR)&part_mask);
> -
> - return -1;
> - }
> -
> - if(++s->mb_x >= s->mb_width){
> - s->mb_x=0;
> - if(++s->mb_y >= s->mb_height){
> - if(get_bits_count(s->gb) == s->gb.size_in_bits){
> - ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y,
> s->mb_x-1, s->mb_y, (AC_END|DC_END|MV_END)&part_mask);
> -
> - return 0;
> - }else{
> - ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y,
> s->mb_x, s->mb_y, (AC_END|DC_END|MV_END)&part_mask);
> -
> - return -1;
> - }
> - }
> - }
> -
> - if(get_bits_count(s->?gb) >= s->gb?.size_in_bits){
> - if(get_bits_count(s->gb) == s->gb.size_in_bits){
> - ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y,
> s->mb_x-1, s->mb_y, (AC_END|DC_END|MV_END)&part_mask);
> -
> - return 0;
> - }else{
> - ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y,
> s->mb_x, s->mb_y, (AC_ERROR|DC_ERROR|MV_ERROR)&part_mask);
> -
> - return -1;
> - }
> - }
> - }
> - s->mb_x=0;
> - ff_draw_horiz_band(s, 16*s->mb_y, 16);
> - }
> -#endif
> }
This is OK.
> @@ -3968,109 +3836,6 @@ int main(void){
> STOP_TIMER("get_se_golomb");
> }
>
> -#if 0
> - printf("testing 4x4 (I)DCT\n");
> -
> - DCTELEM block[16];
> - uint8_t src[16], ref[16];
> - uint64_t error= 0, max_error=0;
> -
> - for(i=0; i<COUNT; i++){
> - int j;
> -// printf("%d %d %d\n", r1, r2, (r2-r1)*16);
> - for(j=0; j<16; j++){
> - ref[j]= random()%255;
> - src[j]= random()%255;
> - }
> -
> - h264_diff_dct_c(block, src, ref, 4);
> -
> - //normalize
> - for(j=0; j<16; j++){
> -// printf("%d ", block[j]);
> - block[j]= block[j]*4;
> - if(j&1) block[j]= (block[j]*4 + 2)/5;
> - if(j&4) block[j]= (block[j]*4 + 2)/5;
> - }
> -// printf("\n");
> -
> - h->h264dsp.h264_idct_add(ref, block, 4);
> -/* for(j=0; j<16; j++){
> - printf("%d ", ref[j]);
> - }
> - printf("\n");*/
> -
> - for(j=0; j<16; j++){
> - int diff= FFABS(src[j] - ref[j]);
> -
> - error+= diff*diff;
> - max_error= FFMAX(max_error, diff);
> - }
> - }
> - printf("error=%f max_error=%d\n", ((float)error)/COUNT/16,
> (int)max_error );
> - printf("testing quantizer\n");
> - for(qp=0; qp<52; qp++){
> - for(i=0; i<16; i++)
> - src1_block[i]= src2_block[i]= random()%255;
> -
> - }
> - printf("Testing NAL layer\n");
> -
> - uint8_t bitstream[COUNT];
> - uint8_t nal[COUNT*2];
> - H264Context h;
> - memset(&h, 0, sizeof(H264Context));
> -
> - for(i=0; i<COUNT; i++){
> - int zeros= i;
> - int nal_length;
> - int consumed;
> - int out_length;
> - uint8_t *out;
> - int j;
> -
> - for(j=0; j<COUNT; j++){
> - bitstream[j]= (random() % 255) + 1;
> - }
> -
> - for(j=0; j<zeros; j++){
> - int pos= random() % COUNT;
> - while(bitstream[pos] == 0){
> - pos++;
> - pos %= COUNT;
> - }
> - bitstream[pos]=0;
> - }
> -
> - START_TIMER
> -
> - nal_length= encode_nal(&h, nal, bitstream, COUNT, COUNT*2);
> - if(nal_length<0){
> - printf("encoding failed\n");
> - return -1;
> - }
> -
> - out= ff_h264_decode_nal(&h, nal, &out_length, &consumed, nal_length);
> -
> - STOP_TIMER("NAL")
> -
> - if(out_length != COUNT){
> - printf("incorrect length %d %d\n", out_length, COUNT);
> - return -1;
> - }
> -
> - if(consumed != nal_length){
> - printf("incorrect consumed length %d %d\n", nal_length,
> consumed);
> - return -1;
> - }
> -
> - if(memcmp(bitstream, out, COUNT)){
> - printf("mismatch\n");
> - return -1;
> - }
> - }
> -#endif
> -
This one also.
As for the rest, I need to see what they're for. Some appear for
currently-unimplemented extensions, others appear hints for stuff that
should be DSP'ized, need to have a quick look and make sure we don't
throw out any useful ideas...
Ronald
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel