<div>
<div>
Hi,
</div><div><br></div><div><span style="white-space:pre"> </span>My application module is two pipe in Android platform, have any good ideas or hints to sync A/V between pipes ?</div><div><br></div><div><span style="white-space:pre"> </span>one is audio(without any video data), and the other is video(without any audio data), like following :</div><div><br></div><div><span style="white-space:pre"> </span>pipe-1(audio without any video stream) launched with:</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>appsrc is-live=1 do-timestamp=0 caps=\"audio/x-raw,format=S16LE,layout=interleaved,channels=2,rate=115200\" </div><div><span class="Apple-tab-span" style="white-space:pre"> </span>name=\"appsrc\" ! queue ! "
"audioconvert ! audioresample ! autoaudiosink name=\"audiosink\"</div><div><br></div><div><span style="white-space:pre"> </span>pipe-2(video, the "appsrc" just include h264 video data without audio stream) launched with:</div><div><span class="Apple-tab-span" style="white-space:pre"> </span></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>playbin uri=appsrc://, and do some settings as following:</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>g_signal_connect (pipe-2, "source-setup", G_CALLBACK (stream_cb_source_setup), user_data);</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>gst_sink = gst_element_factory_make ("eglglessink", NULL);</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>g_object_set (pipe-2, "video-sink", gst_sink, NULL);</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>g_object_set (gst_sink, "qos", FALSE, "sync", FALSE, "max-lateness", (gint64)-1, NULL);</div> </div><div><br></div><div><div>static void stream_cb_source_setup (GstElement *pipeline, GstElement *source, display_stream *st)</div><div>{</div><div> gst_src_caps = "video/x-h264, width=1920, height=1080"</div><div> gst_src = gst_object_ref (source);</div><div><br></div><div> /* attr */</div><div> g_object_set (gst_src, "is-live", TRUE, "do-timestamp", TRUE, "min-latency", 0, "max-bytes", 0, "block", FALSE, NULL);</div><div> GstCaps *caps = gst_caps_from_string(gst_src_caps);</div><div> g_object_set (gst_src, "caps", caps, NULL); </div><div> gst_caps_unref (caps);</div><div><br></div><div> return;</div><div>}</div></div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>Any helps are appreciated :)</div><div><br></div><div>
<div><div><br></div><div>Thanks,</div><div><br></div><div>- Jojo</div><div><br></div></div>
</div>