mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-07 07:58:51 +00:00
tests: Fix event handling
This commit is contained in:
parent
c9e20af4cb
commit
e29d352f77
4 changed files with 45 additions and 38 deletions
|
@ -75,7 +75,7 @@ setup_amrnbenc (void)
|
||||||
"could not set to playing");
|
"could not set to playing");
|
||||||
|
|
||||||
caps = gst_caps_from_string (SRC_CAPS);
|
caps = gst_caps_from_string (SRC_CAPS);
|
||||||
fail_unless (gst_pad_set_caps (srcpad, caps));
|
gst_check_setup_events (srcpad, amrnbenc, caps, GST_FORMAT_TIME);
|
||||||
gst_caps_unref (caps);
|
gst_caps_unref (caps);
|
||||||
|
|
||||||
buffers = NULL;
|
buffers = NULL;
|
||||||
|
|
|
@ -32,7 +32,7 @@ static GstPad *mysrcpad, *mysinkpad;
|
||||||
/* mpeg2 video created with gst-launch-0.10 videotestsrc num-buffers=32 pattern=blue ! "video/x-raw,format=(string)I420,width=176,height=144,framerate=(fraction)25/1" ! ffenc_mpeg2video ! filesink location=test.mpg
|
/* mpeg2 video created with gst-launch-0.10 videotestsrc num-buffers=32 pattern=blue ! "video/x-raw,format=(string)I420,width=176,height=144,framerate=(fraction)25/1" ! ffenc_mpeg2video ! filesink location=test.mpg
|
||||||
*/
|
*/
|
||||||
|
|
||||||
guint8 test_stream1[] = {
|
static const guint8 test_stream1[] = {
|
||||||
0x00, 0x00, 0x01, 0xb3, 0x0b, 0x00, 0x90, 0x13,
|
0x00, 0x00, 0x01, 0xb3, 0x0b, 0x00, 0x90, 0x13,
|
||||||
0xff, 0xff, 0xe0, 0x28, 0x00, 0x00, 0x01, 0xb5,
|
0xff, 0xff, 0xe0, 0x28, 0x00, 0x00, 0x01, 0xb5,
|
||||||
0x14, 0x8a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
|
0x14, 0x8a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
@ -548,7 +548,7 @@ guint8 test_stream1[] = {
|
||||||
0x09, 0x12, 0x70, 0xb3, 0x80,
|
0x09, 0x12, 0x70, 0xb3, 0x80,
|
||||||
};
|
};
|
||||||
|
|
||||||
guint test_stream_sizes[] = {
|
static const guint test_stream_sizes[] = {
|
||||||
497, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
|
497, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
|
||||||
497, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
|
497, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
|
||||||
497, 90
|
497, 90
|
||||||
|
@ -557,7 +557,7 @@ guint test_stream_sizes[] = {
|
||||||
/* mpeg2 video created with gst-launch-0.10 videotestsrc num-buffers=32 pattern=blue ! "video/x-raw,format=(string)I420,width=183,height=217,framerate=(fraction)25/1" ! ffenc_mpeg2video ! filesink location=test.mpg
|
/* mpeg2 video created with gst-launch-0.10 videotestsrc num-buffers=32 pattern=blue ! "video/x-raw,format=(string)I420,width=183,height=217,framerate=(fraction)25/1" ! ffenc_mpeg2video ! filesink location=test.mpg
|
||||||
*/
|
*/
|
||||||
|
|
||||||
guint8 test_stream2[] = {
|
static const guint8 test_stream2[] = {
|
||||||
0x00, 0x00, 0x01, 0xb3, 0x0b, 0x70, 0xd9, 0x13,
|
0x00, 0x00, 0x01, 0xb3, 0x0b, 0x70, 0xd9, 0x13,
|
||||||
0xff, 0xff, 0xe0, 0x28, 0x00, 0x00, 0x01, 0xb5,
|
0xff, 0xff, 0xe0, 0x28, 0x00, 0x00, 0x01, 0xb5,
|
||||||
0x14, 0x8a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
|
0x14, 0x8a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
@ -1688,7 +1688,7 @@ guint8 test_stream2[] = {
|
||||||
0xa5, 0xfb, 0x85, 0xe6, 0xc0
|
0xa5, 0xfb, 0x85, 0xe6, 0xc0
|
||||||
};
|
};
|
||||||
|
|
||||||
guint test_stream2_sizes[] = {
|
static const guint test_stream2_sizes[] = {
|
||||||
803, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
|
803, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
|
||||||
803, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
|
803, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
|
||||||
803, 228
|
803, 228
|
||||||
|
@ -1710,7 +1710,7 @@ GstElement *
|
||||||
setup_mpeg2dec ()
|
setup_mpeg2dec ()
|
||||||
{
|
{
|
||||||
GstElement *mpeg2dec;
|
GstElement *mpeg2dec;
|
||||||
GstSegment seg;
|
GstCaps *caps;
|
||||||
|
|
||||||
GST_DEBUG ("setup_mpeg2dec");
|
GST_DEBUG ("setup_mpeg2dec");
|
||||||
mpeg2dec = gst_check_setup_element ("mpeg2dec");
|
mpeg2dec = gst_check_setup_element ("mpeg2dec");
|
||||||
|
@ -1719,8 +1719,11 @@ setup_mpeg2dec ()
|
||||||
gst_pad_set_active (mysrcpad, TRUE);
|
gst_pad_set_active (mysrcpad, TRUE);
|
||||||
gst_pad_set_active (mysinkpad, TRUE);
|
gst_pad_set_active (mysinkpad, TRUE);
|
||||||
|
|
||||||
gst_segment_init (&seg, GST_FORMAT_TIME);
|
caps = gst_caps_new_simple ("video/mpeg",
|
||||||
gst_pad_push_event (mysrcpad, gst_event_new_segment (&seg));
|
"systemstream", G_TYPE_BOOLEAN, FALSE,
|
||||||
|
"mpegversion", G_TYPE_INT, 2, NULL);
|
||||||
|
gst_check_setup_events (mysrcpad, mpeg2dec, caps, GST_FORMAT_TIME);
|
||||||
|
gst_caps_unref (caps);
|
||||||
|
|
||||||
return mpeg2dec;
|
return mpeg2dec;
|
||||||
}
|
}
|
||||||
|
@ -1759,8 +1762,8 @@ GST_START_TEST (test_decode_stream1)
|
||||||
for (i = 0; i < G_N_ELEMENTS (test_stream_sizes); i++) {
|
for (i = 0; i < G_N_ELEMENTS (test_stream_sizes); i++) {
|
||||||
inbuffer =
|
inbuffer =
|
||||||
gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY,
|
gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY,
|
||||||
test_stream1 + offset, test_stream_sizes[i], 0, test_stream_sizes[i],
|
(guint8 *) test_stream1 + offset, test_stream_sizes[i], 0,
|
||||||
NULL, NULL);
|
test_stream_sizes[i], NULL, NULL);
|
||||||
offset += test_stream_sizes[i];
|
offset += test_stream_sizes[i];
|
||||||
ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
|
ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
|
||||||
gst_buffer_ref (inbuffer);
|
gst_buffer_ref (inbuffer);
|
||||||
|
@ -1835,8 +1838,8 @@ GST_START_TEST (test_decode_stream2)
|
||||||
for (i = 0; i < G_N_ELEMENTS (test_stream2_sizes); i++) {
|
for (i = 0; i < G_N_ELEMENTS (test_stream2_sizes); i++) {
|
||||||
inbuffer =
|
inbuffer =
|
||||||
gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY,
|
gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY,
|
||||||
test_stream2 + offset, test_stream2_sizes[i], 0, test_stream2_sizes[i],
|
(guint8 *) test_stream2 + offset, test_stream2_sizes[i], 0,
|
||||||
NULL, NULL);
|
test_stream2_sizes[i], NULL, NULL);
|
||||||
offset += test_stream2_sizes[i];
|
offset += test_stream2_sizes[i];
|
||||||
ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
|
ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
|
||||||
gst_buffer_ref (inbuffer);
|
gst_buffer_ref (inbuffer);
|
||||||
|
|
|
@ -39,30 +39,40 @@ static GstPad *mysrcpad, *mysinkpad;
|
||||||
"width = (int) 384, " \
|
"width = (int) 384, " \
|
||||||
"height = (int) 288, " \
|
"height = (int) 288, " \
|
||||||
"framerate = (fraction) 25/1"
|
"framerate = (fraction) 25/1"
|
||||||
|
static GstElement *
|
||||||
static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
|
setup_x264enc (const gchar * profile, const gchar * stream_format)
|
||||||
|
{
|
||||||
|
GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
|
||||||
GST_PAD_SINK,
|
GST_PAD_SINK,
|
||||||
GST_PAD_ALWAYS,
|
GST_PAD_ALWAYS,
|
||||||
GST_STATIC_CAPS (MPEG_CAPS_STRING));
|
GST_STATIC_CAPS (MPEG_CAPS_STRING));
|
||||||
|
|
||||||
static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
|
GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
|
||||||
GST_PAD_SRC,
|
GST_PAD_SRC,
|
||||||
GST_PAD_ALWAYS,
|
GST_PAD_ALWAYS,
|
||||||
GST_STATIC_CAPS (VIDEO_CAPS_STRING));
|
GST_STATIC_CAPS (VIDEO_CAPS_STRING));
|
||||||
|
|
||||||
|
|
||||||
static GstElement *
|
|
||||||
setup_x264enc (void)
|
|
||||||
{
|
|
||||||
GstElement *x264enc;
|
GstElement *x264enc;
|
||||||
|
gchar *caps_str;
|
||||||
|
GstCaps *caps;
|
||||||
|
|
||||||
GST_DEBUG ("setup_x264enc");
|
GST_DEBUG ("setup_x264enc");
|
||||||
|
|
||||||
|
caps_str = g_strdup_printf ("%s, profile = (string) %s, "
|
||||||
|
"stream-format = (string) %s", MPEG_CAPS_STRING, profile, stream_format);
|
||||||
|
sinktemplate.static_caps.string = caps_str;
|
||||||
|
|
||||||
x264enc = gst_check_setup_element ("x264enc");
|
x264enc = gst_check_setup_element ("x264enc");
|
||||||
mysrcpad = gst_check_setup_src_pad (x264enc, &srctemplate);
|
mysrcpad = gst_check_setup_src_pad (x264enc, &srctemplate);
|
||||||
mysinkpad = gst_check_setup_sink_pad (x264enc, &sinktemplate);
|
mysinkpad = gst_check_setup_sink_pad (x264enc, &sinktemplate);
|
||||||
gst_pad_set_active (mysrcpad, TRUE);
|
gst_pad_set_active (mysrcpad, TRUE);
|
||||||
gst_pad_set_active (mysinkpad, TRUE);
|
gst_pad_set_active (mysinkpad, TRUE);
|
||||||
|
|
||||||
|
caps = gst_caps_from_string (VIDEO_CAPS_STRING);
|
||||||
|
gst_check_setup_events (mysrcpad, x264enc, caps, GST_FORMAT_TIME);
|
||||||
|
gst_caps_unref (caps);
|
||||||
|
|
||||||
|
g_free (caps_str);
|
||||||
|
|
||||||
return x264enc;
|
return x264enc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,23 +138,11 @@ test_video_profile (const gchar * profile, gint profile_id)
|
||||||
gsize size;
|
gsize size;
|
||||||
int i, num_buffers;
|
int i, num_buffers;
|
||||||
|
|
||||||
x264enc = setup_x264enc ();
|
x264enc = setup_x264enc (profile, "avc");
|
||||||
fail_unless (gst_element_set_state (x264enc,
|
fail_unless (gst_element_set_state (x264enc,
|
||||||
GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
|
GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
|
||||||
"could not set to playing");
|
"could not set to playing");
|
||||||
|
|
||||||
caps = gst_caps_from_string (MPEG_CAPS_STRING);
|
|
||||||
gst_caps_set_simple (caps, "profile", G_TYPE_STRING, profile, NULL);
|
|
||||||
/* code below assumes avc */
|
|
||||||
gst_caps_set_simple (caps, "stream-format", G_TYPE_STRING, "avc", NULL);
|
|
||||||
gst_pad_set_caps (mysinkpad, caps);
|
|
||||||
gst_caps_unref (caps);
|
|
||||||
gst_pad_use_fixed_caps (mysinkpad);
|
|
||||||
|
|
||||||
caps = gst_caps_from_string (VIDEO_CAPS_STRING);
|
|
||||||
fail_unless (gst_pad_set_caps (mysrcpad, caps));
|
|
||||||
gst_caps_unref (caps);
|
|
||||||
|
|
||||||
/* corresponds to I420 buffer for the size mentioned in the caps */
|
/* corresponds to I420 buffer for the size mentioned in the caps */
|
||||||
inbuffer = gst_buffer_new_and_alloc (384 * 288 * 3 / 2);
|
inbuffer = gst_buffer_new_and_alloc (384 * 288 * 3 / 2);
|
||||||
/* makes valgrind's memcheck happier */
|
/* makes valgrind's memcheck happier */
|
||||||
|
|
|
@ -48,6 +48,7 @@ GstElement *
|
||||||
setup_xingmux ()
|
setup_xingmux ()
|
||||||
{
|
{
|
||||||
GstElement *xingmux;
|
GstElement *xingmux;
|
||||||
|
GstCaps *caps;
|
||||||
|
|
||||||
GST_DEBUG ("setup_xingmux");
|
GST_DEBUG ("setup_xingmux");
|
||||||
xingmux = gst_check_setup_element ("xingmux");
|
xingmux = gst_check_setup_element ("xingmux");
|
||||||
|
@ -56,6 +57,11 @@ setup_xingmux ()
|
||||||
gst_pad_set_active (mysrcpad, TRUE);
|
gst_pad_set_active (mysrcpad, TRUE);
|
||||||
gst_pad_set_active (mysinkpad, TRUE);
|
gst_pad_set_active (mysinkpad, TRUE);
|
||||||
|
|
||||||
|
caps = gst_caps_new_simple ("audio/mpeg",
|
||||||
|
"mpegversion", G_TYPE_INT, 1, "layer", G_TYPE_INT, 3, NULL);
|
||||||
|
gst_check_setup_events (mysrcpad, xingmux, caps, GST_FORMAT_TIME);
|
||||||
|
gst_caps_unref (caps);
|
||||||
|
|
||||||
return xingmux;
|
return xingmux;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue