[FFmpeg-cvslog] r17637 - trunk/libavcodec/h263dec.c
benoit
subversion
Fri Feb 27 09:27:51 CET 2009
Author: benoit
Date: Fri Feb 27 09:27:50 2009
New Revision: 17637
Log:
Add HW acceleration hooks for MPEG-4 / H.263 decoding.
Patch by Gwenole Beauchesne.
Modified:
trunk/libavcodec/h263dec.c
Modified: trunk/libavcodec/h263dec.c
==============================================================================
--- trunk/libavcodec/h263dec.c Fri Feb 27 09:20:45 2009 (r17636)
+++ trunk/libavcodec/h263dec.c Fri Feb 27 09:27:50 2009 (r17637)
@@ -161,8 +161,12 @@ static int decode_slice(MpegEncContext *
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 @@ retry:
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
More information about the ffmpeg-cvslog
mailing list