mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
Add gst_vaapi_decoder_pause().
This commit is contained in:
parent
2356ceb0d9
commit
5d1eb8ce89
2 changed files with 33 additions and 12 deletions
|
@ -440,18 +440,35 @@ gst_vaapi_decoder_init(GstVaapiDecoder *decoder)
|
||||||
gboolean
|
gboolean
|
||||||
gst_vaapi_decoder_start(GstVaapiDecoder *decoder)
|
gst_vaapi_decoder_start(GstVaapiDecoder *decoder)
|
||||||
{
|
{
|
||||||
/* This is an internal function */
|
g_return_val_if_fail(GST_VAAPI_IS_DECODER(decoder), FALSE);
|
||||||
GstVaapiDecoderPrivate * const priv = decoder->priv;
|
|
||||||
|
|
||||||
if (priv->decoder_task)
|
if (decoder->priv->decoder_task)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
priv->decoder_task = gst_task_create(decoder_task, decoder);
|
decoder->priv->decoder_task = gst_task_create(decoder_task, decoder);
|
||||||
if (!priv->decoder_task)
|
if (!decoder->priv->decoder_task)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
gst_task_set_lock(priv->decoder_task, &priv->decoder_task_lock);
|
gst_task_set_lock(decoder->priv->decoder_task, &decoder->priv->decoder_task_lock);
|
||||||
return gst_task_start(priv->decoder_task);
|
return gst_task_start(decoder->priv->decoder_task);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gst_vaapi_decoder_pause:
|
||||||
|
* @decoder: a #GstVaapiDecoder
|
||||||
|
*
|
||||||
|
* Pauses the decoder. It can be made active again through
|
||||||
|
* gst_vaapi_decoder_start() or definitely stopped through
|
||||||
|
* gst_vaapi_decoder_stop().
|
||||||
|
*
|
||||||
|
* Return value: %TRUE on success
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
gst_vaapi_decoder_pause(GstVaapiDecoder *decoder)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail(GST_VAAPI_IS_DECODER(decoder), FALSE);
|
||||||
|
|
||||||
|
return gst_task_pause(decoder->priv->decoder_task);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -468,15 +485,16 @@ gst_vaapi_decoder_start(GstVaapiDecoder *decoder)
|
||||||
gboolean
|
gboolean
|
||||||
gst_vaapi_decoder_stop(GstVaapiDecoder *decoder)
|
gst_vaapi_decoder_stop(GstVaapiDecoder *decoder)
|
||||||
{
|
{
|
||||||
/* This is an internal function */
|
|
||||||
GstVaapiDecoderPrivate * const priv = decoder->priv;
|
|
||||||
gboolean success;
|
gboolean success;
|
||||||
|
|
||||||
if (!priv->decoder_task)
|
g_return_val_if_fail(GST_VAAPI_IS_DECODER(decoder), FALSE);
|
||||||
|
|
||||||
|
if (!decoder->priv->decoder_task)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
success = gst_task_join(priv->decoder_task);
|
success = gst_task_join(decoder->priv->decoder_task);
|
||||||
priv->decoder_task = NULL;
|
g_object_unref(decoder->priv->decoder_task);
|
||||||
|
decoder->priv->decoder_task = NULL;
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -127,6 +127,9 @@ gst_vaapi_decoder_set_frame_rate(
|
||||||
gboolean
|
gboolean
|
||||||
gst_vaapi_decoder_start(GstVaapiDecoder *decoder);
|
gst_vaapi_decoder_start(GstVaapiDecoder *decoder);
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gst_vaapi_decoder_pause(GstVaapiDecoder *decoder);
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
gst_vaapi_decoder_stop(GstVaapiDecoder *decoder);
|
gst_vaapi_decoder_stop(GstVaapiDecoder *decoder);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue