[vlc-devel] [PATCH] Adds Support for Intel's QuickSync Video encoder

Ilkka Ollakka ileoo at videolan.org
Fri May 10 12:17:27 CEST 2013


On Wed, May 08, 2013 at 10:04:20PM +0200, Julien 'Lta' BALLET wrote:
> Hi,

Hi,

> I gotta warn you, there's a small spinlock in the encode loop which cannot
> be removed unless you wanna loose frames (and maybe create a passage to
> another dimension full of ponies), but it's only triggered once every 2-5s.

I don't comment on those that funman already commented on, atleast not
on purpose.

> +    add_bool(SOUT_CFG_PREFIX "software", false, SW_IMPL_TEXT, SW_IMPL_LONGTEXT, true)

Any reason software couldn't be enabled by default? 

> +static uint64_t qsv_params_get_value(const char *const *text,
> +                                     const int const *list,
> +                                     size_t size, char *sel)
> +{
> +    for (size_t i = 0; i < size; i++)
> +        if (!strcmp(sel, text[i]))
> +            return list[i];
> +
> +    // The default value is always the first item in the array. So if not found, use it.
> +    return 0;

Shouldnt this be list[0] ?

Also you seem to use this with size calculation of
sizeof(level_h264_list) / sizeof(int), so it could clearer to just move
that size calculation inside of this function.

> +    } else if (sts > MFX_ERR_NONE)
> +        msg_Dbg(enc, "Video encoder initialization warning (%d).", sts);

maybe msg_Warn in here?

> +static block_t *Encode(encoder_t *this, picture_t *pic)

> +    sts = MFXVideoENCODE_EncodeFrameAsync(sys->session, 0, frame, &task->bs, &task->syncp);
> +    while (sts == MFX_WRN_DEVICE_BUSY) {
> +        msg_Info(enc, "Device is busy, let's wait and retry");
> +        msleep(QSV_SPINLOCK_TIME);
> +        sts = MFXVideoENCODE_EncodeFrameAsync(sys->session, 0, frame, &task->bs, &task->syncp);
> +    }

Are you sure about that msleep time (20000) ? I would prefer same
aproach that funman mentioned to just store the task and retry on next
run instead of blocking here every ~100 frames (2-5 secs according to
you).

-- 
Ilkka Ollakka
"The road to hell is paved with melting snowballs."
		-- Larry Wall in  <1992Jul2.222039.26476 at netlabs.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: Digital signature
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20130510/72f67602/attachment.sig>


More information about the vlc-devel mailing list