mirror of https://git.ffmpeg.org/ffmpeg.git
vda: fix h264 decoding for avcC,vda wants the entire buffer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
764f87b6ab
commit
3e53211a57
|
@ -1588,7 +1588,7 @@ again:
|
|||
decode_postinit(h, nal_index >= nals_needed);
|
||||
|
||||
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;
|
||||
if (CONFIG_H264_VDPAU_DECODER &&
|
||||
h->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU)
|
||||
|
|
|
@ -320,9 +320,20 @@ static int vda_h264_start_frame(AVCodecContext *avctx,
|
|||
uint32_t size)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -333,6 +344,9 @@ static int vda_h264_decode_slice(AVCodecContext *avctx,
|
|||
VDAContext *vda = avctx->internal->hwaccel_priv_data;
|
||||
void *tmp;
|
||||
|
||||
if (h->is_avc == 1)
|
||||
return 0;
|
||||
|
||||
tmp = av_fast_realloc(vda->bitstream,
|
||||
&vda->allocated_size,
|
||||
vda->bitstream_size + size + 4);
|
||||
|
|
Loading…
Reference in New Issue