[FFmpeg-devel] [PATCH] mpeg12.c: add HW acceleration hooks
Michael Niedermayer
michaelni
Thu Feb 26 02:17:35 CET 2009
On Wed, Feb 25, 2009 at 10:47:31PM +0100, Gwenole Beauchesne wrote:
> Le 25 f?vr. 09 ? 20:17, Michael Niedermayer a ?crit :
>
> >> @@ -1697,6 +1703,20 @@ static int mpeg_decode_slice(Mpeg1Context
> >> *s1, int mb_y,
> >>
> >> s->mb_x=0;
> >>
> >> + if (avctx->hwaccel) {
> >> + const uint8_t *buf_end, *buf_start = *buf - 4; /* include
> >> start_code */
> >> + int start_code = -1;
> >> + buf_end = ff_find_start_code(buf_start + 2, *buf +
> >> buf_size, &start_code);
> >> + if (buf_end < *buf + buf_size)
> >> + buf_end -= 4;
> >> + s->resync_mb_x = s->mb_x;
> >> + s->resync_mb_y = s->mb_y = mb_y;
> >> + if (avctx->hwaccel->decode_slice(avctx, buf_start, buf_end
> >> - buf_start) < 0)
> >> + return DECODE_SLICE_ERROR;
> >> + *buf = buf_end;
> >> + return DECODE_SLICE_OK;
> >> + }
> >> +
> >> for(;;) {
> >> int code = get_vlc2(&s->gb, mbincr_vlc.table,
> >> MBINCR_VLC_BITS, 2);
> >> if (code < 0){
> >
> > iam still investigating the need for this mess
>
> (i) determine the end of the slice (and thus its size), (ii) slice
> vertical position. Granted, for (ii), only s->mb_y = mb_y; is useful.
> Would the hunk be ok with the others ripped off?
yes
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
No snowflake in an avalanche ever feels responsible. -- Voltaire
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090226/a80c940a/attachment.pgp>
More information about the ffmpeg-devel
mailing list