summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmpdemux/tvi_v4l.c5
-rw-r--r--libmpdemux/tvi_v4l2.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/libmpdemux/tvi_v4l.c b/libmpdemux/tvi_v4l.c
index 236db4684e..864a9b55af 100644
--- a/libmpdemux/tvi_v4l.c
+++ b/libmpdemux/tvi_v4l.c
@@ -1728,6 +1728,11 @@ static double grab_audio_frame(priv_t *priv, char *buffer, int len)
mp_dbg(MSGT_TV, MSGL_DBG2, "grab_audio_frame(priv=%p, buffer=%p, len=%d)\n",
priv, buffer, len);
+ if (priv->first) {
+ pthread_create(&priv->video_grabber_thread, NULL, video_grabber, priv);
+ priv->first = 0;
+ }
+
// compensate for dropped audio frames
if (priv->audio_drop && (priv->audio_head == priv->audio_tail)) {
priv->audio_drop--;
diff --git a/libmpdemux/tvi_v4l2.c b/libmpdemux/tvi_v4l2.c
index 2b7f83fe57..dcb6750b8f 100644
--- a/libmpdemux/tvi_v4l2.c
+++ b/libmpdemux/tvi_v4l2.c
@@ -1627,6 +1627,11 @@ static double grab_audio_frame(priv_t *priv, char *buffer, int len)
mp_dbg(MSGT_TV, MSGL_DBG2, "grab_audio_frame(priv=%p, buffer=%p, len=%d)\n",
priv, buffer, len);
+ if (priv->first) {
+ pthread_create(&priv->video_grabber_thread, NULL, video_grabber, priv);
+ priv->first = 0;
+ }
+
// compensate for dropped audio frames
if (priv->audio_drop && (priv->audio_head == priv->audio_tail)) {
priv->audio_drop--;