Compare commits
17 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
7e8b4506e0 | ||
![]() |
96dac432f7 | ||
![]() |
b92ccfefc3 | ||
![]() |
6e45a99a7c | ||
![]() |
d59804bafb | ||
![]() |
35cf24eee9 | ||
![]() |
341cf9ed81 | ||
![]() |
c36f5df34a | ||
![]() |
23b3fe00bb | ||
![]() |
42669252e8 | ||
![]() |
25a9823eb4 | ||
![]() |
a8fd50bb4e | ||
![]() |
9282c96071 | ||
![]() |
aa9d705871 | ||
![]() |
7ddf252c7e | ||
![]() |
1abb0e5639 | ||
![]() |
e5cf4d16c6 |
@@ -31,7 +31,7 @@ PROJECT_NAME = FFmpeg
|
|||||||
# This could be handy for archiving the generated documentation or
|
# This could be handy for archiving the generated documentation or
|
||||||
# if some version control system is used.
|
# if some version control system is used.
|
||||||
|
|
||||||
PROJECT_NUMBER = 1.2.9
|
PROJECT_NUMBER = 1.2.10
|
||||||
|
|
||||||
# With the PROJECT_LOGO tag one can specify an logo or icon that is included
|
# With the PROJECT_LOGO tag one can specify an logo or icon that is included
|
||||||
# in the documentation. The maximum height of the logo should not exceed 55
|
# in the documentation. The maximum height of the logo should not exceed 55
|
||||||
|
@@ -171,6 +171,10 @@ static inline int dirac_get_arith_uint(DiracArith *c, int follow_ctx, int data_c
|
|||||||
{
|
{
|
||||||
int ret = 1;
|
int ret = 1;
|
||||||
while (!dirac_get_arith_bit(c, follow_ctx)) {
|
while (!dirac_get_arith_bit(c, follow_ctx)) {
|
||||||
|
if (ret >= 0x40000000) {
|
||||||
|
av_log(NULL, AV_LOG_ERROR, "dirac_get_arith_uint overflow\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
ret <<= 1;
|
ret <<= 1;
|
||||||
ret += dirac_get_arith_bit(c, data_ctx);
|
ret += dirac_get_arith_bit(c, data_ctx);
|
||||||
follow_ctx = ff_dirac_next_ctx[follow_ctx];
|
follow_ctx = ff_dirac_next_ctx[follow_ctx];
|
||||||
|
@@ -598,10 +598,10 @@ static av_always_inline void decode_subband_internal(DiracContext *s, SubBand *b
|
|||||||
|
|
||||||
top = 0;
|
top = 0;
|
||||||
for (cb_y = 0; cb_y < cb_height; cb_y++) {
|
for (cb_y = 0; cb_y < cb_height; cb_y++) {
|
||||||
bottom = (b->height * (cb_y+1)) / cb_height;
|
bottom = (b->height * (cb_y+1LL)) / cb_height;
|
||||||
left = 0;
|
left = 0;
|
||||||
for (cb_x = 0; cb_x < cb_width; cb_x++) {
|
for (cb_x = 0; cb_x < cb_width; cb_x++) {
|
||||||
right = (b->width * (cb_x+1)) / cb_width;
|
right = (b->width * (cb_x+1LL)) / cb_width;
|
||||||
codeblock(s, b, &gb, &c, left, right, top, bottom, blockcnt_one, is_arith);
|
codeblock(s, b, &gb, &c, left, right, top, bottom, blockcnt_one, is_arith);
|
||||||
left = right;
|
left = right;
|
||||||
}
|
}
|
||||||
@@ -990,8 +990,8 @@ static int dirac_unpack_idwt_params(DiracContext *s)
|
|||||||
/* Codeblock parameters (core syntax only) */
|
/* Codeblock parameters (core syntax only) */
|
||||||
if (get_bits1(gb)) {
|
if (get_bits1(gb)) {
|
||||||
for (i = 0; i <= s->wavelet_depth; i++) {
|
for (i = 0; i <= s->wavelet_depth; i++) {
|
||||||
CHECKEDREAD(s->codeblock[i].width , tmp < 1, "codeblock width invalid\n")
|
CHECKEDREAD(s->codeblock[i].width , tmp < 1 || tmp > (s->avctx->width >>s->wavelet_depth-i), "codeblock width invalid\n")
|
||||||
CHECKEDREAD(s->codeblock[i].height, tmp < 1, "codeblock height invalid\n")
|
CHECKEDREAD(s->codeblock[i].height, tmp < 1 || tmp > (s->avctx->height>>s->wavelet_depth-i), "codeblock height invalid\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
CHECKEDREAD(s->codeblock_mode, tmp > 1, "unknown codeblock mode\n")
|
CHECKEDREAD(s->codeblock_mode, tmp > 1, "unknown codeblock mode\n")
|
||||||
|
@@ -39,6 +39,7 @@ typedef struct DNXHDContext {
|
|||||||
GetBitContext gb;
|
GetBitContext gb;
|
||||||
int64_t cid; ///< compression id
|
int64_t cid; ///< compression id
|
||||||
unsigned int width, height;
|
unsigned int width, height;
|
||||||
|
enum AVPixelFormat pix_fmt;
|
||||||
unsigned int mb_width, mb_height;
|
unsigned int mb_width, mb_height;
|
||||||
uint32_t mb_scan_index[68]; /* max for 1080p */
|
uint32_t mb_scan_index[68]; /* max for 1080p */
|
||||||
int cur_field; ///< current interlaced field
|
int cur_field; ///< current interlaced field
|
||||||
@@ -135,7 +136,7 @@ static int dnxhd_decode_header(DNXHDContext *ctx, const uint8_t *buf, int buf_si
|
|||||||
av_dlog(ctx->avctx, "width %d, height %d\n", ctx->width, ctx->height);
|
av_dlog(ctx->avctx, "width %d, height %d\n", ctx->width, ctx->height);
|
||||||
|
|
||||||
if (buf[0x21] & 0x40) {
|
if (buf[0x21] & 0x40) {
|
||||||
ctx->avctx->pix_fmt = AV_PIX_FMT_YUV422P10;
|
ctx->pix_fmt = AV_PIX_FMT_YUV422P10;
|
||||||
ctx->avctx->bits_per_raw_sample = 10;
|
ctx->avctx->bits_per_raw_sample = 10;
|
||||||
if (ctx->bit_depth != 10) {
|
if (ctx->bit_depth != 10) {
|
||||||
ff_dsputil_init(&ctx->dsp, ctx->avctx);
|
ff_dsputil_init(&ctx->dsp, ctx->avctx);
|
||||||
@@ -143,7 +144,7 @@ static int dnxhd_decode_header(DNXHDContext *ctx, const uint8_t *buf, int buf_si
|
|||||||
ctx->decode_dct_block = dnxhd_decode_dct_block_10;
|
ctx->decode_dct_block = dnxhd_decode_dct_block_10;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ctx->avctx->pix_fmt = AV_PIX_FMT_YUV422P;
|
ctx->pix_fmt = AV_PIX_FMT_YUV422P;
|
||||||
ctx->avctx->bits_per_raw_sample = 8;
|
ctx->avctx->bits_per_raw_sample = 8;
|
||||||
if (ctx->bit_depth != 8) {
|
if (ctx->bit_depth != 8) {
|
||||||
ff_dsputil_init(&ctx->dsp, ctx->avctx);
|
ff_dsputil_init(&ctx->dsp, ctx->avctx);
|
||||||
@@ -381,9 +382,15 @@ static int dnxhd_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
|
|||||||
avctx->width, avctx->height, ctx->width, ctx->height);
|
avctx->width, avctx->height, ctx->width, ctx->height);
|
||||||
first_field = 1;
|
first_field = 1;
|
||||||
}
|
}
|
||||||
|
if (avctx->pix_fmt != AV_PIX_FMT_NONE && avctx->pix_fmt != ctx->pix_fmt) {
|
||||||
|
av_log(avctx, AV_LOG_WARNING, "pix_fmt changed: %s -> %s\n",
|
||||||
|
av_get_pix_fmt_name(avctx->pix_fmt), av_get_pix_fmt_name(ctx->pix_fmt));
|
||||||
|
first_field = 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (av_image_check_size(ctx->width, ctx->height, 0, avctx))
|
if (av_image_check_size(ctx->width, ctx->height, 0, avctx))
|
||||||
return -1;
|
return -1;
|
||||||
|
avctx->pix_fmt = ctx->pix_fmt;
|
||||||
avcodec_set_dimensions(avctx, ctx->width, ctx->height);
|
avcodec_set_dimensions(avctx, ctx->width, ctx->height);
|
||||||
|
|
||||||
if (first_field) {
|
if (first_field) {
|
||||||
|
@@ -308,6 +308,11 @@ static av_cold int decode_init(AVCodecContext *avctx)
|
|||||||
|
|
||||||
avctx->pix_fmt = AV_PIX_FMT_PAL8;
|
avctx->pix_fmt = AV_PIX_FMT_PAL8;
|
||||||
|
|
||||||
|
if (avctx->width%4 || avctx->height%4) {
|
||||||
|
av_log(avctx, AV_LOG_ERROR, "dimensions are not a multiple of 4");
|
||||||
|
return AVERROR_INVALIDDATA;
|
||||||
|
}
|
||||||
|
|
||||||
avcodec_get_frame_defaults(&c->pic);
|
avcodec_get_frame_defaults(&c->pic);
|
||||||
avcodec_get_frame_defaults(&c->prev);
|
avcodec_get_frame_defaults(&c->prev);
|
||||||
|
|
||||||
|
@@ -1600,6 +1600,17 @@ static int decode_update_thread_context(AVCodecContext *dst,
|
|||||||
memset(&h->me, 0, sizeof(h->me));
|
memset(&h->me, 0, sizeof(h->me));
|
||||||
h->avctx = dst;
|
h->avctx = dst;
|
||||||
h->DPB = NULL;
|
h->DPB = NULL;
|
||||||
|
h->intra4x4_pred_mode= NULL;
|
||||||
|
h->non_zero_count = NULL;
|
||||||
|
h->slice_table_base = NULL;
|
||||||
|
h->slice_table = NULL;
|
||||||
|
h->cbp_table = NULL;
|
||||||
|
h->chroma_pred_mode_table = NULL;
|
||||||
|
memset(h->mvd_table, 0, sizeof(h->mvd_table));
|
||||||
|
h->direct_table = NULL;
|
||||||
|
h->list_counts = NULL;
|
||||||
|
h->mb2b_xy = NULL;
|
||||||
|
h->mb2br_xy = NULL;
|
||||||
|
|
||||||
if (h1->context_initialized) {
|
if (h1->context_initialized) {
|
||||||
h->context_initialized = 0;
|
h->context_initialized = 0;
|
||||||
|
@@ -969,6 +969,33 @@ static av_always_inline int get_dct8x8_allowed(H264Context *h)
|
|||||||
0x0001000100010001ULL));
|
0x0001000100010001ULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int find_start_code(const uint8_t *buf, int buf_size,
|
||||||
|
int buf_index, int next_avc)
|
||||||
|
{
|
||||||
|
uint32_t state = -1;
|
||||||
|
|
||||||
|
buf_index = avpriv_mpv_find_start_code(buf + buf_index, buf + next_avc + 1, &state) - buf - 1;
|
||||||
|
|
||||||
|
return FFMIN(buf_index, buf_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int get_avc_nalsize(H264Context *h, const uint8_t *buf,
|
||||||
|
int buf_size, int *buf_index)
|
||||||
|
{
|
||||||
|
int i, nalsize = 0;
|
||||||
|
|
||||||
|
if (*buf_index >= buf_size - h->nal_length_size)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
for (i = 0; i < h->nal_length_size; i++)
|
||||||
|
nalsize = ((unsigned)nalsize << 8) | buf[(*buf_index)++];
|
||||||
|
if (nalsize <= 0 || nalsize > buf_size - *buf_index) {
|
||||||
|
av_log(h->avctx, AV_LOG_ERROR,
|
||||||
|
"AVC: nal size %d\n", nalsize);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return nalsize;
|
||||||
|
}
|
||||||
void ff_h264_draw_horiz_band(H264Context *h, int y, int height);
|
void ff_h264_draw_horiz_band(H264Context *h, int y, int height);
|
||||||
|
|
||||||
#endif /* AVCODEC_H264_H */
|
#endif /* AVCODEC_H264_H */
|
||||||
|
@@ -139,10 +139,10 @@ found:
|
|||||||
*/
|
*/
|
||||||
static inline int parse_nal_units(AVCodecParserContext *s,
|
static inline int parse_nal_units(AVCodecParserContext *s,
|
||||||
AVCodecContext *avctx,
|
AVCodecContext *avctx,
|
||||||
const uint8_t *buf, int buf_size)
|
const uint8_t * const buf, int buf_size)
|
||||||
{
|
{
|
||||||
H264Context *h = s->priv_data;
|
H264Context *h = s->priv_data;
|
||||||
const uint8_t *buf_end = buf + buf_size;
|
int buf_index, next_avc;
|
||||||
unsigned int pps_id;
|
unsigned int pps_id;
|
||||||
unsigned int slice_type;
|
unsigned int slice_type;
|
||||||
int state = -1;
|
int state = -1;
|
||||||
@@ -162,26 +162,26 @@ static inline int parse_nal_units(AVCodecParserContext *s,
|
|||||||
if (!buf_size)
|
if (!buf_size)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
buf_index = 0;
|
||||||
|
next_avc = h->is_avc ? 0 : buf_size;
|
||||||
for(;;) {
|
for(;;) {
|
||||||
int src_length, dst_length, consumed, nalsize = 0;
|
int src_length, dst_length, consumed, nalsize = 0;
|
||||||
if (h->is_avc) {
|
|
||||||
int i;
|
if (buf_index >= next_avc) {
|
||||||
if (h->nal_length_size >= buf_end - buf) break;
|
nalsize = get_avc_nalsize(h, buf, buf_size, &buf_index);
|
||||||
nalsize = 0;
|
if (nalsize < 0)
|
||||||
for (i = 0; i < h->nal_length_size; i++)
|
|
||||||
nalsize = (nalsize << 8) | *buf++;
|
|
||||||
if (nalsize <= 0 || nalsize > buf_end - buf) {
|
|
||||||
av_log(h->avctx, AV_LOG_ERROR, "AVC: nal size %d\n", nalsize);
|
|
||||||
break;
|
break;
|
||||||
}
|
next_avc = buf_index + nalsize;
|
||||||
src_length = nalsize;
|
|
||||||
} else {
|
} else {
|
||||||
buf = avpriv_mpv_find_start_code(buf, buf_end, &state);
|
buf_index = find_start_code(buf, buf_size, buf_index, next_avc);
|
||||||
if(buf >= buf_end)
|
if (buf_index >= buf_size)
|
||||||
break;
|
break;
|
||||||
--buf;
|
if (buf_index >= next_avc)
|
||||||
src_length = buf_end - buf;
|
continue;
|
||||||
}
|
}
|
||||||
|
src_length = next_avc - buf_index;
|
||||||
|
|
||||||
|
state = buf[buf_index];
|
||||||
switch (state & 0x1f) {
|
switch (state & 0x1f) {
|
||||||
case NAL_SLICE:
|
case NAL_SLICE:
|
||||||
case NAL_IDR_SLICE:
|
case NAL_IDR_SLICE:
|
||||||
@@ -190,10 +190,12 @@ static inline int parse_nal_units(AVCodecParserContext *s,
|
|||||||
src_length = 20;
|
src_length = 20;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ptr= ff_h264_decode_nal(h, buf, &dst_length, &consumed, src_length);
|
ptr= ff_h264_decode_nal(h, buf + buf_index, &dst_length, &consumed, src_length);
|
||||||
if (ptr==NULL || dst_length < 0)
|
if (ptr==NULL || dst_length < 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
buf_index += consumed;
|
||||||
|
|
||||||
init_get_bits(&h->gb, ptr, 8*dst_length);
|
init_get_bits(&h->gb, ptr, 8*dst_length);
|
||||||
switch(h->nal_unit_type) {
|
switch(h->nal_unit_type) {
|
||||||
case NAL_SPS:
|
case NAL_SPS:
|
||||||
@@ -277,7 +279,6 @@ static inline int parse_nal_units(AVCodecParserContext *s,
|
|||||||
|
|
||||||
return 0; /* no need to evaluate the rest */
|
return 0; /* no need to evaluate the rest */
|
||||||
}
|
}
|
||||||
buf += h->is_avc ? nalsize : consumed;
|
|
||||||
}
|
}
|
||||||
if (q264)
|
if (q264)
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -497,7 +497,7 @@ static int svq1_decode_delta_block(AVCodecContext *avctx, DSPContext *dsp,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void svq1_parse_string(GetBitContext *bitbuf, uint8_t *out)
|
static void svq1_parse_string(GetBitContext *bitbuf, uint8_t out[257])
|
||||||
{
|
{
|
||||||
uint8_t seed;
|
uint8_t seed;
|
||||||
int i;
|
int i;
|
||||||
@@ -509,6 +509,7 @@ static void svq1_parse_string(GetBitContext *bitbuf, uint8_t *out)
|
|||||||
out[i] = get_bits(bitbuf, 8) ^ seed;
|
out[i] = get_bits(bitbuf, 8) ^ seed;
|
||||||
seed = string_table[out[i] ^ seed];
|
seed = string_table[out[i] ^ seed];
|
||||||
}
|
}
|
||||||
|
out[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int svq1_decode_frame_header(AVCodecContext *avctx, AVFrame *frame)
|
static int svq1_decode_frame_header(AVCodecContext *avctx, AVFrame *frame)
|
||||||
@@ -551,12 +552,12 @@ static int svq1_decode_frame_header(AVCodecContext *avctx, AVFrame *frame)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((s->frame_code ^ 0x10) >= 0x50) {
|
if ((s->frame_code ^ 0x10) >= 0x50) {
|
||||||
uint8_t msg[256];
|
uint8_t msg[257];
|
||||||
|
|
||||||
svq1_parse_string(bitbuf, msg);
|
svq1_parse_string(bitbuf, msg);
|
||||||
|
|
||||||
av_log(avctx, AV_LOG_INFO,
|
av_log(avctx, AV_LOG_INFO,
|
||||||
"embedded message: \"%s\"\n", (char *)msg);
|
"embedded message: \"%s\"\n", ((char *)msg) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
skip_bits(bitbuf, 2);
|
skip_bits(bitbuf, 2);
|
||||||
|
@@ -193,6 +193,12 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height,
|
|||||||
int i;
|
int i;
|
||||||
int w_align = 1;
|
int w_align = 1;
|
||||||
int h_align = 1;
|
int h_align = 1;
|
||||||
|
AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(s->pix_fmt);
|
||||||
|
|
||||||
|
if (desc) {
|
||||||
|
w_align = 1 << desc->log2_chroma_w;
|
||||||
|
h_align = 1 << desc->log2_chroma_h;
|
||||||
|
}
|
||||||
|
|
||||||
switch (s->pix_fmt) {
|
switch (s->pix_fmt) {
|
||||||
case AV_PIX_FMT_YUV420P:
|
case AV_PIX_FMT_YUV420P:
|
||||||
@@ -293,8 +299,6 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
w_align = 1;
|
|
||||||
h_align = 1;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1785,7 +1785,8 @@ static int matroska_read_header(AVFormatContext *s)
|
|||||||
av_reduce(&st->avg_frame_rate.num, &st->avg_frame_rate.den,
|
av_reduce(&st->avg_frame_rate.num, &st->avg_frame_rate.den,
|
||||||
1000000000, track->default_duration, 30000);
|
1000000000, track->default_duration, 30000);
|
||||||
#if FF_API_R_FRAME_RATE
|
#if FF_API_R_FRAME_RATE
|
||||||
if (st->avg_frame_rate.num < st->avg_frame_rate.den * 1000L)
|
if ( st->avg_frame_rate.num < st->avg_frame_rate.den * 1000L
|
||||||
|
&& st->avg_frame_rate.num > st->avg_frame_rate.den * 5L)
|
||||||
st->r_frame_rate = st->avg_frame_rate;
|
st->r_frame_rate = st->avg_frame_rate;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@@ -91,7 +91,7 @@ static int mpegps_probe(AVProbeData *p)
|
|||||||
score= AVPROBE_SCORE_MAX/4;
|
score= AVPROBE_SCORE_MAX/4;
|
||||||
|
|
||||||
if(sys>invalid && sys*9 <= pspack*10)
|
if(sys>invalid && sys*9 <= pspack*10)
|
||||||
return (audio > 12 || vid > 3 || pspack > 2) ? AVPROBE_SCORE_MAX/2+2 : AVPROBE_SCORE_MAX/4; // +1 for .mpg
|
return (audio > 12 || vid > 3 || pspack > 2) ? AVPROBE_SCORE_MAX/2+2 : AVPROBE_SCORE_MAX/4+1; // +1 for .mpg
|
||||||
if(pspack > invalid && (priv1+vid+audio)*10 >= pspack*9)
|
if(pspack > invalid && (priv1+vid+audio)*10 >= pspack*9)
|
||||||
return pspack > 2 ? AVPROBE_SCORE_MAX/2+2 : AVPROBE_SCORE_MAX/4; // +1 for .mpg
|
return pspack > 2 ? AVPROBE_SCORE_MAX/2+2 : AVPROBE_SCORE_MAX/4; // +1 for .mpg
|
||||||
if((!!vid ^ !!audio) && (audio > 4 || vid > 1) && !sys && !pspack && p->buf_size>2048 && vid + audio > invalid) /* PES stream */
|
if((!!vid ^ !!audio) && (audio > 4 || vid > 1) && !sys && !pspack && p->buf_size>2048 && vid + audio > invalid) /* PES stream */
|
||||||
|
@@ -975,7 +975,7 @@ void pp_postprocess(const uint8_t * src[3], const int srcStride[3],
|
|||||||
|
|
||||||
if(pict_type & PP_PICT_TYPE_QP2){
|
if(pict_type & PP_PICT_TYPE_QP2){
|
||||||
int i;
|
int i;
|
||||||
const int count= mbHeight * absQPStride;
|
const int count= FFMAX(mbHeight * absQPStride, mbWidth);
|
||||||
for(i=0; i<(count>>2); i++){
|
for(i=0; i<(count>>2); i++){
|
||||||
((uint32_t*)c->stdQPTable)[i] = (((const uint32_t*)QP_store)[i]>>1) & 0x7F7F7F7F;
|
((uint32_t*)c->stdQPTable)[i] = (((const uint32_t*)QP_store)[i]>>1) & 0x7F7F7F7F;
|
||||||
}
|
}
|
||||||
@@ -1000,7 +1000,7 @@ void pp_postprocess(const uint8_t * src[3], const int srcStride[3],
|
|||||||
if((pict_type&7)!=3){
|
if((pict_type&7)!=3){
|
||||||
if (QPStride >= 0){
|
if (QPStride >= 0){
|
||||||
int i;
|
int i;
|
||||||
const int count= mbHeight * QPStride;
|
const int count= FFMAX(mbHeight * QPStride, mbWidth);
|
||||||
for(i=0; i<(count>>2); i++){
|
for(i=0; i<(count>>2); i++){
|
||||||
((uint32_t*)c->nonBQPTable)[i] = ((const uint32_t*)QP_store)[i] & 0x3F3F3F3F;
|
((uint32_t*)c->nonBQPTable)[i] = ((const uint32_t*)QP_store)[i] & 0x3F3F3F3F;
|
||||||
}
|
}
|
||||||
|
@@ -1 +1 @@
|
|||||||
pp3 39af1a30d0ea0e906df264773adfcaa6
|
pp3 c8277ef31ab01bad51356841c9634522
|
||||||
|
Reference in New Issue
Block a user