|
|
|
@ -170,7 +170,7 @@ void ff_copy_picture(Picture *dst, Picture *src){ |
|
|
|
|
static void free_frame_buffer(MpegEncContext *s, Picture *pic) |
|
|
|
|
{ |
|
|
|
|
s->avctx->release_buffer(s->avctx, (AVFrame*)pic); |
|
|
|
|
av_freep(&pic->hwaccel_data_private); |
|
|
|
|
av_freep(&pic->hwaccel_picture_private); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -181,10 +181,10 @@ static int alloc_frame_buffer(MpegEncContext *s, Picture *pic) |
|
|
|
|
int r; |
|
|
|
|
|
|
|
|
|
if (s->avctx->hwaccel) { |
|
|
|
|
assert(!pic->hwaccel_data_private); |
|
|
|
|
assert(!pic->hwaccel_picture_private); |
|
|
|
|
if (s->avctx->hwaccel->priv_data_size) { |
|
|
|
|
pic->hwaccel_data_private = av_mallocz(s->avctx->hwaccel->priv_data_size); |
|
|
|
|
if (!pic->hwaccel_data_private) { |
|
|
|
|
pic->hwaccel_picture_private = av_mallocz(s->avctx->hwaccel->priv_data_size); |
|
|
|
|
if (!pic->hwaccel_picture_private) { |
|
|
|
|
av_log(s->avctx, AV_LOG_ERROR, "alloc_frame_buffer() failed (hwaccel private data allocation)\n"); |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
@ -195,7 +195,7 @@ static int alloc_frame_buffer(MpegEncContext *s, Picture *pic) |
|
|
|
|
|
|
|
|
|
if (r<0 || !pic->age || !pic->type || !pic->data[0]) { |
|
|
|
|
av_log(s->avctx, AV_LOG_ERROR, "get_buffer() failed (%d %d %d %p)\n", r, pic->age, pic->type, pic->data[0]); |
|
|
|
|
av_freep(&pic->hwaccel_data_private); |
|
|
|
|
av_freep(&pic->hwaccel_picture_private); |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|