Commit 3e53211a authored by Rainer Hochecker's avatar Rainer Hochecker Committed by Michael Niedermayer

vda: fix h264 decoding for avcC,vda wants the entire buffer

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 764f87b6
...@@ -1588,7 +1588,7 @@ again: ...@@ -1588,7 +1588,7 @@ again:
decode_postinit(h, nal_index >= nals_needed); decode_postinit(h, nal_index >= nals_needed);
if (h->avctx->hwaccel && if (h->avctx->hwaccel &&
(ret = h->avctx->hwaccel->start_frame(h->avctx, NULL, 0)) < 0) (ret = h->avctx->hwaccel->start_frame(h->avctx, buf, buf_size)) < 0)
return ret; return ret;
if (CONFIG_H264_VDPAU_DECODER && if (CONFIG_H264_VDPAU_DECODER &&
h->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) h->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU)
......
...@@ -320,9 +320,20 @@ static int vda_h264_start_frame(AVCodecContext *avctx, ...@@ -320,9 +320,20 @@ static int vda_h264_start_frame(AVCodecContext *avctx,
uint32_t size) uint32_t size)
{ {
VDAContext *vda = avctx->internal->hwaccel_priv_data; VDAContext *vda = avctx->internal->hwaccel_priv_data;
H264Context *h = avctx->priv_data;
vda->bitstream_size = 0;
if (h->is_avc == 1) {
void *tmp;
vda->bitstream_size = 0;
tmp = av_fast_realloc(vda->bitstream,
&vda->allocated_size,
size);
vda->bitstream = tmp;
memcpy(vda->bitstream, buffer, size);
vda->bitstream_size = size;
} else {
vda->bitstream_size = 0;
}
return 0; return 0;
} }
...@@ -333,6 +344,9 @@ static int vda_h264_decode_slice(AVCodecContext *avctx, ...@@ -333,6 +344,9 @@ static int vda_h264_decode_slice(AVCodecContext *avctx,
VDAContext *vda = avctx->internal->hwaccel_priv_data; VDAContext *vda = avctx->internal->hwaccel_priv_data;
void *tmp; void *tmp;
if (h->is_avc == 1)
return 0;
tmp = av_fast_realloc(vda->bitstream, tmp = av_fast_realloc(vda->bitstream,
&vda->allocated_size, &vda->allocated_size,
vda->bitstream_size + size + 4); vda->bitstream_size + size + 4);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment