Kill the magic field in xvmc structure.
Originally committed as revision 17338 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
9043202e6e
commit
11f8aa042d
@ -38,7 +38,7 @@
|
|||||||
void ff_xvmc_init_block(MpegEncContext *s)
|
void ff_xvmc_init_block(MpegEncContext *s)
|
||||||
{
|
{
|
||||||
struct xvmc_pixfmt_render *render = (struct xvmc_pixfmt_render*)s->current_picture.data[2];
|
struct xvmc_pixfmt_render *render = (struct xvmc_pixfmt_render*)s->current_picture.data[2];
|
||||||
assert(render && render->magic_id == AV_XVMC_RENDER_MAGIC);
|
assert(render && render->unique_id == AV_XVMC_RENDER_MAGIC);
|
||||||
|
|
||||||
s->block = (DCTELEM *)(render->data_blocks + render->next_free_data_block_num * 64);
|
s->block = (DCTELEM *)(render->data_blocks + render->next_free_data_block_num * 64);
|
||||||
}
|
}
|
||||||
@ -68,7 +68,7 @@ int ff_xvmc_field_start(MpegEncContext*s, AVCodecContext *avctx)
|
|||||||
const int mb_block_count = 4 + (1 << s->chroma_format);
|
const int mb_block_count = 4 + (1 << s->chroma_format);
|
||||||
|
|
||||||
assert(avctx);
|
assert(avctx);
|
||||||
if (!render || render->magic_id != AV_XVMC_RENDER_MAGIC ||
|
if (!render || render->unique_id != AV_XVMC_RENDER_MAGIC ||
|
||||||
!render->data_blocks || !render->mv_blocks) {
|
!render->data_blocks || !render->mv_blocks) {
|
||||||
av_log(avctx, AV_LOG_ERROR,
|
av_log(avctx, AV_LOG_ERROR,
|
||||||
"Render token doesn't look as expected.\n");
|
"Render token doesn't look as expected.\n");
|
||||||
@ -100,7 +100,7 @@ int ff_xvmc_field_start(MpegEncContext*s, AVCodecContext *avctx)
|
|||||||
next = (struct xvmc_pixfmt_render*)s->next_picture.data[2];
|
next = (struct xvmc_pixfmt_render*)s->next_picture.data[2];
|
||||||
if (!next)
|
if (!next)
|
||||||
return -1;
|
return -1;
|
||||||
if (next->magic_id != AV_XVMC_RENDER_MAGIC)
|
if (next->unique_id != AV_XVMC_RENDER_MAGIC)
|
||||||
return -1;
|
return -1;
|
||||||
render->p_future_surface = next->p_surface;
|
render->p_future_surface = next->p_surface;
|
||||||
// no return here, going to set forward prediction
|
// no return here, going to set forward prediction
|
||||||
@ -108,7 +108,7 @@ int ff_xvmc_field_start(MpegEncContext*s, AVCodecContext *avctx)
|
|||||||
last = (struct xvmc_pixfmt_render*)s->last_picture.data[2];
|
last = (struct xvmc_pixfmt_render*)s->last_picture.data[2];
|
||||||
if (!last)
|
if (!last)
|
||||||
last = render; // predict second field from the first
|
last = render; // predict second field from the first
|
||||||
if (last->magic_id != AV_XVMC_RENDER_MAGIC)
|
if (last->unique_id != AV_XVMC_RENDER_MAGIC)
|
||||||
return -1;
|
return -1;
|
||||||
render->p_past_surface = last->p_surface;
|
render->p_past_surface = last->p_surface;
|
||||||
return 0;
|
return 0;
|
||||||
@ -162,7 +162,7 @@ void ff_xvmc_decode_mb(MpegEncContext *s)
|
|||||||
// start of XVMC-specific code
|
// start of XVMC-specific code
|
||||||
render = (struct xvmc_pixfmt_render*)s->current_picture.data[2];
|
render = (struct xvmc_pixfmt_render*)s->current_picture.data[2];
|
||||||
assert(render);
|
assert(render);
|
||||||
assert(render->magic_id == AV_XVMC_RENDER_MAGIC);
|
assert(render->unique_id == AV_XVMC_RENDER_MAGIC);
|
||||||
assert(render->mv_blocks);
|
assert(render->mv_blocks);
|
||||||
|
|
||||||
// take the next free macroblock
|
// take the next free macroblock
|
||||||
|
@ -38,7 +38,7 @@ struct xvmc_pixfmt_render {
|
|||||||
Once set these values are not supposed to be modified.
|
Once set these values are not supposed to be modified.
|
||||||
*/
|
*/
|
||||||
//@{
|
//@{
|
||||||
int magic_id; ///< used as a check against memory corruption by regular pixel routines or other API structure
|
int unique_id; ///< used as a check against memory corruption by regular pixel routines or other API structure
|
||||||
|
|
||||||
short* data_blocks;
|
short* data_blocks;
|
||||||
XvMCMacroBlock* mv_blocks;
|
XvMCMacroBlock* mv_blocks;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user