Mercurial > libavcodec.hg
changeset 9064:ca19176df986 libavcodec
Add HW acceleration hooks for MPEG-4 / H.263 decoding.
Patch by Gwenole Beauchesne.
author | benoit |
---|---|
date | Fri, 27 Feb 2009 08:27:50 +0000 |
parents | 390f5a9721d2 |
children | 3dbe483ce6c4 |
files | h263dec.c |
diffstat | 1 files changed, 11 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/h263dec.c Fri Feb 27 08:20:45 2009 +0000 +++ b/h263dec.c Fri Feb 27 08:27:50 2009 +0000 @@ -161,8 +161,12 @@ ff_set_qscale(s, s->qscale); - if (s->avctx->hwaccel) - return 0; + if (s->avctx->hwaccel) { + const uint8_t *start= s->gb.buffer + get_bits_count(&s->gb)/8; + const uint8_t *end = ff_h263_find_resync_marker(start + 1, s->gb.buffer_end); + skip_bits_long(&s->gb, 8*(end - start)); + return s->avctx->hwaccel->decode_slice(s->avctx, start, end - start); + } if(s->partitioned_frame){ const int qscale= s->qscale; @@ -617,6 +621,11 @@ if(MPV_frame_start(s, avctx) < 0) return -1; + if (avctx->hwaccel) { + if (avctx->hwaccel->start_frame(avctx, buf, buf_size) < 0) + return -1; + } + #ifdef DEBUG av_log(avctx, AV_LOG_DEBUG, "qscale=%d\n", s->qscale); #endif