avs: Convert to the new bitstream reader
Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
		
							parent
							
								
									edd4c19a78
								
							
						
					
					
						commit
						dae9b0b9c6
					
				@ -20,7 +20,7 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "avcodec.h"
 | 
					#include "avcodec.h"
 | 
				
			||||||
#include "get_bits.h"
 | 
					#include "bitstream.h"
 | 
				
			||||||
#include "internal.h"
 | 
					#include "internal.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct AvsContext {
 | 
					typedef struct AvsContext {
 | 
				
			||||||
@ -57,7 +57,7 @@ avs_decode_frame(AVCodecContext * avctx,
 | 
				
			|||||||
    int i, j, x, y, stride, ret, vect_w = 3, vect_h = 3;
 | 
					    int i, j, x, y, stride, ret, vect_w = 3, vect_h = 3;
 | 
				
			||||||
    AvsVideoSubType sub_type;
 | 
					    AvsVideoSubType sub_type;
 | 
				
			||||||
    AvsBlockType type;
 | 
					    AvsBlockType type;
 | 
				
			||||||
    GetBitContext change_map;
 | 
					    BitstreamContext change_map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ((ret = ff_reget_buffer(avctx, p)) < 0) {
 | 
					    if ((ret = ff_reget_buffer(avctx, p)) < 0) {
 | 
				
			||||||
        av_log(avctx, AV_LOG_ERROR, "reget_buffer() failed\n");
 | 
					        av_log(avctx, AV_LOG_ERROR, "reget_buffer() failed\n");
 | 
				
			||||||
@ -125,13 +125,13 @@ avs_decode_frame(AVCodecContext * avctx,
 | 
				
			|||||||
        int map_size = ((318 / vect_w + 7) / 8) * (198 / vect_h);
 | 
					        int map_size = ((318 / vect_w + 7) / 8) * (198 / vect_h);
 | 
				
			||||||
        if (buf_end - table < map_size)
 | 
					        if (buf_end - table < map_size)
 | 
				
			||||||
            return AVERROR_INVALIDDATA;
 | 
					            return AVERROR_INVALIDDATA;
 | 
				
			||||||
        init_get_bits(&change_map, table, map_size * 8);
 | 
					        bitstream_init(&change_map, table, map_size * 8);
 | 
				
			||||||
        table += map_size;
 | 
					        table += map_size;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (y=0; y<198; y+=vect_h) {
 | 
					    for (y=0; y<198; y+=vect_h) {
 | 
				
			||||||
        for (x=0; x<318; x+=vect_w) {
 | 
					        for (x=0; x<318; x+=vect_w) {
 | 
				
			||||||
            if (sub_type == AVS_I_FRAME || get_bits1(&change_map)) {
 | 
					            if (sub_type == AVS_I_FRAME || bitstream_read_bit(&change_map)) {
 | 
				
			||||||
                if (buf_end - table < 1)
 | 
					                if (buf_end - table < 1)
 | 
				
			||||||
                    return AVERROR_INVALIDDATA;
 | 
					                    return AVERROR_INVALIDDATA;
 | 
				
			||||||
                vect = &buf[*table++ * (vect_w * vect_h)];
 | 
					                vect = &buf[*table++ * (vect_w * vect_h)];
 | 
				
			||||||
@ -145,7 +145,7 @@ avs_decode_frame(AVCodecContext * avctx,
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (sub_type != AVS_I_FRAME)
 | 
					        if (sub_type != AVS_I_FRAME)
 | 
				
			||||||
            align_get_bits(&change_map);
 | 
					            bitstream_align(&change_map);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ((ret = av_frame_ref(picture, p)) < 0)
 | 
					    if ((ret = av_frame_ref(picture, p)) < 0)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user