[FFmpeg-devel] [PATCH] h264 parallelized, (was: Parallelized h264 proof-of-concept)

Zuxy Meng zuxy.meng
Wed Jun 20 03:53:55 CEST 2007


Hi,

2007/6/16, Andreas ?man <andreas at olebyn.nu>:
> Andreas ?man wrote:
> > Hi
> >
> > Michael Niedermayer wrote:
> >> Hi
> >>
> >>
> >> av_free() + av_malloc() or pass an argument to MPV_common_init()
> >
> > I'll extend MPV_common_init() with an additional argument then.
> >
> >>>  static void filter_mb_fast( H264Context *h, int mb_x, int mb_y, uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr, unsigned int linesize, unsigned int uvlinesize);
> >>> +static void execute_decode_slices(H264Context *h, int reset);
> >> cant you order the new functions so as to avoid that?
> >
> > Hm, not really. decode_slice_header() needs to be able to
> > fire off any pending slices in case the deblocking-type changes
> > within a frame. (AFAIK this is valid according to the specs,
> > perhaps I'm wrong?)
> >
>
> Okay, here are the finalized patches.
>
> #1 - Extend MPV_common_init() with an addition arg for context size
>      when doing multi threading.
>
> #2 - Factor out init_scan_tables()
>
> #3 - Decouple bit context from h264 context in decode_ref_pic_marking()
>
> #4 - Slice level parallelism for deblocking type 0 and 2
>
> regression tests passes

Don't forget to add ff_check_alignment on thread entry:-)
-- 
Zuxy
Beauty is truth,
While truth is beauty.
PGP KeyID: E8555ED6




More information about the ffmpeg-devel mailing list