uint32_t vlc;
int8_t *top, *left;
MpegEncContext *const s = (MpegEncContext *) h;
- const int mb_xy = s->mb_x + s->mb_y*s->mb_stride;
+ const int mb_xy = h->mb_xy;
const int b_xy = 4*s->mb_x + 4*s->mb_y*h->b_stride;
h->top_samples_available = (s->mb_y == 0) ? 0x33FF : 0xFFFF;
static int svq3_decode_slice_header (H264Context *h) {
MpegEncContext *const s = (MpegEncContext *) h;
- const int mb_xy = s->mb_x + s->mb_y*s->mb_stride;
+ const int mb_xy = h->mb_xy;
int i, header;
header = get_bits (&s->gb, 8);
if (buf_size == 0) {
if (s->next_picture_ptr && !s->low_delay) {
*(AVFrame *) data = *(AVFrame *) &s->next_picture;
+ s->next_picture_ptr= NULL;
*data_size = sizeof(AVFrame);
}
return 0;
init_get_bits (&s->gb, buf, 8*buf_size);
- s->mb_x = s->mb_y = 0;
+ s->mb_x = s->mb_y = h->mb_xy = 0;
if (svq3_decode_slice_header (h))
return -1;
s->picture_number = h->slice_num;
if(avctx->debug&FF_DEBUG_PICT_INFO){
- av_log(h->s.avctx, AV_LOG_DEBUG, "%c hpel:%d, tpel:%d aqp:%d qp:%d\n",
+ av_log(h->s.avctx, AV_LOG_DEBUG, "%c hpel:%d, tpel:%d aqp:%d qp:%d, slice_num:%02X\n",
av_get_pict_type_char(s->pict_type), h->halfpel_flag, h->thirdpel_flag,
- s->adaptive_quant, s->qscale
+ s->adaptive_quant, s->qscale, h->slice_num
);
}
for (s->mb_y=0; s->mb_y < s->mb_height; s->mb_y++) {
for (s->mb_x=0; s->mb_x < s->mb_width; s->mb_x++) {
+ h->mb_xy = s->mb_x + s->mb_y*s->mb_stride;
if ( (get_bits_count(&s->gb) + 7) >= s->gb.size_in_bits &&
((get_bits_count(&s->gb) & 7) == 0 || show_bits (&s->gb, (-get_bits_count(&s->gb) & 7)) == 0)) {
decode_end,
svq3_decode_frame,
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_DELAY,
- .long_name = "Sorenson Vector Quantizer 3",
+ .long_name = NULL_IF_CONFIG_SMALL("Sorenson Vector Quantizer 3"),
};