]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7514: sigh
authorAnthony Minessale <anthm@freeswitch.org>
Thu, 26 Feb 2015 21:17:30 +0000 (15:17 -0600)
committerMichael Jerris <mike@jerris.com>
Thu, 28 May 2015 17:47:05 +0000 (12:47 -0500)
src/mod/formats/mod_vlc/mod_vlc.c

index c52764d0e5ffc7d497ddaa4774b6fd1f35f7035b..41f20cf35a2c5fb0dbdbda4bbe60a2a9a96df307 100644 (file)
@@ -105,6 +105,7 @@ struct vlc_video_context {
        switch_queue_t *video_queue;
        int playing;
        int ending;
+       uint32_t sync_offset;
        switch_mutex_t *video_mutex;
 
        switch_core_session_t *session;
@@ -819,7 +820,7 @@ int  vlc_write_video_imem_get_callback(void *data, const char *cookie, int64_t *
                }
                switch_mutex_unlock(context->video_mutex); 
        }
-
+       
        if (*cookie == 'v') {
                switch_image_t *img = NULL;
                vlc_frame_data_t *fdata = NULL;
@@ -892,6 +893,11 @@ int  vlc_write_video_imem_get_callback(void *data, const char *cookie, int64_t *
                }
        }
 
+       switch_cond_next();
+
+       switch_core_timer_sync(&context->timer);
+       *dts = *pts = context->timer.samplecount;
+
        *size = 0;
        *output = NULL;
 
@@ -1063,6 +1069,7 @@ SWITCH_STANDARD_APP(capture_video_function)
                uint32_t off_frames = offset / read_impl.microseconds_per_packet;
                int i = 0;
 
+               context->sync_offset = offset;
                switch_mutex_lock(context->audio_mutex);
                switch_core_timer_sync(&context->timer);
                pts = context->timer.samplecount;