if (port->port_def.eDir == OMX_DirOutput && port->buffers) {
GstOMXBuffer *buf;
- if (comp->hacks & GST_OMX_HACK_QCOM_7x30_FILL_THIS_BUFFER_RACE)
- g_usleep (G_USEC_PER_SEC / 10);
-
/* Enqueue all buffers for the component to fill */
while ((buf = g_queue_pop_head (port->pending_buffers))) {
g_assert (!buf->used);
if (enabled && port->port_def.eDir == OMX_DirOutput) {
GstOMXBuffer *buf;
- if (comp->hacks & GST_OMX_HACK_QCOM_7x30_FILL_THIS_BUFFER_RACE)
- g_usleep (G_USEC_PER_SEC / 10);
-
/* Enqueue all buffers for the component to fill */
while ((buf = g_queue_pop_head (port->pending_buffers))) {
g_assert (!buf->used);
hacks_flags |= GST_OMX_HACK_VIDEO_FRAMERATE_INTEGER;
else if (g_str_equal (*hacks, "syncframe-flag-not-used"))
hacks_flags |= GST_OMX_HACK_SYNCFRAME_FLAG_NOT_USED;
- else if (g_str_equal (*hacks, "qcom-7x30-fill-this-buffer-race"))
- hacks_flags |= GST_OMX_HACK_QCOM_7x30_FILL_THIS_BUFFER_RACE;
else
GST_WARNING ("Unknown hack: %s", *hacks);
hacks++;
* Happens with the Bellagio ffmpegdist video encoder.
*/
#define GST_OMX_HACK_SYNCFRAME_FLAG_NOT_USED G_GUINT64_CONSTANT (0x0000000000000008)
-/* Qualcomm 7x30 sometimes fails with an undefined error after
- * allocating buffers, setting the state to Idle when calling
- * OMX_FillThisBuffer() on all output buffers too early.
- */
-#define GST_OMX_HACK_QCOM_7x30_FILL_THIS_BUFFER_RACE G_GUINT64_CONSTANT (0x0000000000000010)
-
typedef struct _GstOMXCore GstOMXCore;
typedef struct _GstOMXPort GstOMXPort;
if (gst_omx_component_set_state (self->component,
OMX_StateExecuting) != OMX_ErrorNone)
return FALSE;
+
+ if (gst_omx_component_get_state (self->component,
+ GST_CLOCK_TIME_NONE) != OMX_StateExecuting)
+ return FALSE;
}
/* Unset flushing to allow ports to accept data again */
gst_pad_start_task (GST_BASE_AUDIO_ENCODER_SRC_PAD (self),
(GstTaskFunction) gst_omx_audio_enc_loop, encoder);
- return (gst_omx_component_get_state (self->component,
- GST_CLOCK_TIME_NONE) == OMX_StateExecuting);
+ return TRUE;
}
static void
if (gst_omx_component_set_state (self->component,
OMX_StateExecuting) != OMX_ErrorNone)
return FALSE;
+
+ if (gst_omx_component_get_state (self->component,
+ GST_CLOCK_TIME_NONE) != OMX_StateExecuting)
+ return FALSE;
}
/* Unset flushing to allow ports to accept data again */
gst_pad_start_task (GST_BASE_VIDEO_CODEC_SRC_PAD (self),
(GstTaskFunction) gst_omx_video_dec_loop, decoder);
- return (gst_omx_component_get_state (self->component,
- GST_CLOCK_TIME_NONE) == OMX_StateExecuting);
+ return TRUE;
}
static gboolean
if (gst_omx_component_set_state (self->component,
OMX_StateExecuting) != OMX_ErrorNone)
return FALSE;
+
+ if (gst_omx_component_get_state (self->component,
+ GST_CLOCK_TIME_NONE) != OMX_StateExecuting)
+ return FALSE;
}
/* Unset flushing to allow ports to accept data again */
gst_pad_start_task (GST_BASE_VIDEO_CODEC_SRC_PAD (self),
(GstTaskFunction) gst_omx_video_enc_loop, encoder);
- return (gst_omx_component_get_state (self->component,
- GST_CLOCK_TIME_NONE) == OMX_StateExecuting);
+ return TRUE;
}
static gboolean