port to new gthread API

This commit is contained in:
Wim Taymans 2012-01-19 11:34:59 +01:00
parent cb71fc1eaf
commit a3a68c1f72

View file

@ -99,7 +99,7 @@ struct _GstFFMpegDemux
/* push mode data */ /* push mode data */
GstFFMpegPipe ffpipe; GstFFMpegPipe ffpipe;
GstTask *task; GstTask *task;
GStaticRecMutex *task_lock; GRecMutex task_lock;
}; };
typedef struct _GstFFMpegDemuxClass GstFFMpegDemuxClass; typedef struct _GstFFMpegDemuxClass GstFFMpegDemuxClass;
@ -268,9 +268,8 @@ gst_ffmpegdemux_init (GstFFMpegDemux * demux)
GST_DEBUG_FUNCPTR (gst_ffmpegdemux_chain)); GST_DEBUG_FUNCPTR (gst_ffmpegdemux_chain));
/* task for driving ffmpeg in loop function */ /* task for driving ffmpeg in loop function */
demux->task = gst_task_new ((GstTaskFunction) gst_ffmpegdemux_loop, demux); demux->task = gst_task_new ((GstTaskFunction) gst_ffmpegdemux_loop, demux);
demux->task_lock = g_new (GStaticRecMutex, 1); g_rec_mutex_init (&demux->task_lock);
g_static_rec_mutex_init (demux->task_lock); gst_task_set_lock (demux->task, &demux->task_lock);
gst_task_set_lock (demux->task, demux->task_lock);
demux->opened = FALSE; demux->opened = FALSE;
demux->context = NULL; demux->context = NULL;
@ -308,8 +307,7 @@ gst_ffmpegdemux_finalize (GObject * object)
gst_object_unref (demux->ffpipe.adapter); gst_object_unref (demux->ffpipe.adapter);
gst_object_unref (demux->task); gst_object_unref (demux->task);
g_static_rec_mutex_free (demux->task_lock); g_rec_mutex_clear (&demux->task_lock);
g_free (demux->task_lock);
G_OBJECT_CLASS (parent_class)->finalize (object); G_OBJECT_CLASS (parent_class)->finalize (object);
} }
@ -1470,8 +1468,8 @@ pause:
GST_FFMPEG_PIPE_MUTEX_LOCK (ffpipe); GST_FFMPEG_PIPE_MUTEX_LOCK (ffpipe);
/* pause task and make sure loop stops */ /* pause task and make sure loop stops */
gst_task_pause (demux->task); gst_task_pause (demux->task);
g_static_rec_mutex_lock (demux->task_lock); g_rec_mutex_lock (&demux->task_lock);
g_static_rec_mutex_unlock (demux->task_lock); g_rec_mutex_unlock (&demux->task_lock);
demux->ffpipe.srcresult = ret; demux->ffpipe.srcresult = ret;
GST_FFMPEG_PIPE_MUTEX_UNLOCK (ffpipe); GST_FFMPEG_PIPE_MUTEX_UNLOCK (ffpipe);
} }
@ -1753,8 +1751,8 @@ gst_ffmpegdemux_sink_activate_push (GstPad * sinkpad, GstObject * parent,
/* make sure streaming ends */ /* make sure streaming ends */
gst_task_stop (demux->task); gst_task_stop (demux->task);
g_static_rec_mutex_lock (demux->task_lock); g_rec_mutex_lock (&demux->task_lock);
g_static_rec_mutex_unlock (demux->task_lock); g_rec_mutex_unlock (&demux->task_lock);
res = gst_task_join (demux->task); res = gst_task_join (demux->task);
demux->seekable = FALSE; demux->seekable = FALSE;
} }