}
static void
-check_qtmux_pad (GstStaticPadTemplate * srctemplate, const gchar * sinkname)
+check_qtmux_pad (GstStaticPadTemplate * srctemplate, const gchar * sinkname,
+ guint32 dts_method)
{
GstElement *qtmux;
GstBuffer *inbuffer, *outbuffer;
guint8 data2[4] = "moov";
qtmux = setup_qtmux (srctemplate, sinkname);
+ g_object_set (qtmux, "dts-method", dts_method, NULL);
fail_unless (gst_element_set_state (qtmux,
GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
"could not set to playing");
static void
check_qtmux_pad_fragmented (GstStaticPadTemplate * srctemplate,
- const gchar * sinkname, gboolean streamable)
+ const gchar * sinkname, guint32 dts_method, gboolean streamable)
{
GstElement *qtmux;
GstBuffer *inbuffer, *outbuffer;
guint8 data4[4] = "mfra";
qtmux = setup_qtmux (srctemplate, sinkname);
+ g_object_set (qtmux, "dts-method", dts_method, NULL);
g_object_set (qtmux, "fragment-duration", 2000, NULL);
g_object_set (qtmux, "streamable", streamable, NULL);
fail_unless (gst_element_set_state (qtmux,
cleanup_qtmux (qtmux, sinkname);
}
+/* dts-method dd */
-GST_START_TEST (test_video_pad)
+GST_START_TEST (test_video_pad_dd)
{
- check_qtmux_pad (&srcvideotemplate, "video_%d");
+ check_qtmux_pad (&srcvideotemplate, "video_%d", 0);
}
GST_END_TEST;
-GST_START_TEST (test_audio_pad)
+GST_START_TEST (test_audio_pad_dd)
{
- check_qtmux_pad (&srcaudiotemplate, "audio_%d");
+ check_qtmux_pad (&srcaudiotemplate, "audio_%d", 0);
}
GST_END_TEST;
-GST_START_TEST (test_video_pad_frag)
+GST_START_TEST (test_video_pad_frag_dd)
{
- check_qtmux_pad_fragmented (&srcvideotemplate, "video_%d", FALSE);
+ check_qtmux_pad_fragmented (&srcvideotemplate, "video_%d", 0, FALSE);
}
GST_END_TEST;
-GST_START_TEST (test_audio_pad_frag)
+GST_START_TEST (test_audio_pad_frag_dd)
{
- check_qtmux_pad_fragmented (&srcaudiotemplate, "audio_%d", FALSE);
+ check_qtmux_pad_fragmented (&srcaudiotemplate, "audio_%d", 0, FALSE);
}
GST_END_TEST;
-GST_START_TEST (test_video_pad_frag_streamable)
+GST_START_TEST (test_video_pad_frag_dd_streamable)
{
- check_qtmux_pad_fragmented (&srcvideotemplate, "video_%d", TRUE);
+ check_qtmux_pad_fragmented (&srcvideotemplate, "video_%d", 0, TRUE);
}
GST_END_TEST;
-GST_START_TEST (test_audio_pad_frag_streamable)
+GST_START_TEST (test_audio_pad_frag_dd_streamable)
{
- check_qtmux_pad_fragmented (&srcaudiotemplate, "audio_%d", TRUE);
+ check_qtmux_pad_fragmented (&srcaudiotemplate, "audio_%d", 0, TRUE);
}
GST_END_TEST;
+/* dts-method reorder */
+
+GST_START_TEST (test_video_pad_reorder)
+{
+ check_qtmux_pad (&srcvideotemplate, "video_%d", 1);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_audio_pad_reorder)
+{
+ check_qtmux_pad (&srcaudiotemplate, "audio_%d", 1);
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_video_pad_frag_reorder)
+{
+ check_qtmux_pad_fragmented (&srcvideotemplate, "video_%d", 1, FALSE);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_audio_pad_frag_reorder)
+{
+ check_qtmux_pad_fragmented (&srcaudiotemplate, "audio_%d", 1, FALSE);
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_video_pad_frag_reorder_streamable)
+{
+ check_qtmux_pad_fragmented (&srcvideotemplate, "video_%d", 1, TRUE);
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_audio_pad_frag_reorder_streamable)
+{
+ check_qtmux_pad_fragmented (&srcaudiotemplate, "audio_%d", 1, TRUE);
+}
+
+GST_END_TEST;
+
+/* dts-method asc */
+
+GST_START_TEST (test_video_pad_asc)
+{
+ check_qtmux_pad (&srcvideotemplate, "video_%d", 2);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_audio_pad_asc)
+{
+ check_qtmux_pad (&srcaudiotemplate, "audio_%d", 2);
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_video_pad_frag_asc)
+{
+ check_qtmux_pad_fragmented (&srcvideotemplate, "video_%d", 2, FALSE);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_audio_pad_frag_asc)
+{
+ check_qtmux_pad_fragmented (&srcaudiotemplate, "audio_%d", 2, FALSE);
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_video_pad_frag_asc_streamable)
+{
+ check_qtmux_pad_fragmented (&srcvideotemplate, "video_%d", 2, TRUE);
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_audio_pad_frag_asc_streamable)
+{
+ check_qtmux_pad_fragmented (&srcaudiotemplate, "audio_%d", 2, TRUE);
+}
+
+GST_END_TEST;
GST_START_TEST (test_reuse)
{
TCase *tc_chain = tcase_create ("general");
suite_add_tcase (s, tc_chain);
- tcase_add_test (tc_chain, test_video_pad);
- tcase_add_test (tc_chain, test_audio_pad);
- tcase_add_test (tc_chain, test_video_pad_frag);
- tcase_add_test (tc_chain, test_audio_pad_frag);
- tcase_add_test (tc_chain, test_video_pad_frag_streamable);
- tcase_add_test (tc_chain, test_audio_pad_frag_streamable);
+ tcase_add_test (tc_chain, test_video_pad_dd);
+ tcase_add_test (tc_chain, test_audio_pad_dd);
+ tcase_add_test (tc_chain, test_video_pad_frag_dd);
+ tcase_add_test (tc_chain, test_audio_pad_frag_dd);
+ tcase_add_test (tc_chain, test_video_pad_frag_dd_streamable);
+ tcase_add_test (tc_chain, test_audio_pad_frag_dd_streamable);
+
+ tcase_add_test (tc_chain, test_video_pad_reorder);
+ tcase_add_test (tc_chain, test_audio_pad_reorder);
+ tcase_add_test (tc_chain, test_video_pad_frag_reorder);
+ tcase_add_test (tc_chain, test_audio_pad_frag_reorder);
+ tcase_add_test (tc_chain, test_video_pad_frag_reorder_streamable);
+ tcase_add_test (tc_chain, test_audio_pad_frag_reorder_streamable);
+
+ tcase_add_test (tc_chain, test_video_pad_asc);
+ tcase_add_test (tc_chain, test_audio_pad_asc);
+ tcase_add_test (tc_chain, test_video_pad_frag_asc);
+ tcase_add_test (tc_chain, test_audio_pad_frag_asc);
+ tcase_add_test (tc_chain, test_video_pad_frag_asc_streamable);
+ tcase_add_test (tc_chain, test_audio_pad_frag_asc_streamable);
+
tcase_add_test (tc_chain, test_reuse);
tcase_add_test (tc_chain, test_encodebin);