No subject


Fri May 20 03:12:49 PDT 2011


AY
requests.

I am using Ubuntu 11.04 with GStreamer PPA, gst-rtsp-server is from git.

At the server side i run ./test-launch "( videotestsrc ! video/x-raw-yuv,
width=3D640, height=3D480, framerate=3D50/1 ! x264enc ! rtph264pay name=3Dp=
ay0 pt=3D96 )"

Client used to reproduce the bug.

#include <gst/gst.h>

static void element_added_signal(GstBin * bin, GstElement * element, gpoint=
er *
user_data);

static GMainLoop *loop;

static gboolean
bus_call (GstBus * bus, GstMessage * msg, gpointer data)
{
  GMainLoop *loop =3D (GMainLoop *) data;

  switch (GST_MESSAGE_TYPE (msg)) {
    case GST_MESSAGE_EOS:{
      g_print ("End-of-stream\n");
      g_main_loop_quit (loop);
      break;
    }
    case GST_MESSAGE_ERROR:{
      gchar *debug;
      GError *err;

      gst_message_parse_error (msg, &err, &debug);
      g_free (debug);

      g_print ("Error: %s\n", err->message);
      g_error_free (err);

      g_main_loop_quit (loop);

      break;
    }
    default:
      break;
  }
  return TRUE;
}

static gboolean
free_pipeline(gpointer data)
{
    g_main_loop_quit (loop);

    return FALSE;
}

static gboolean
switch_state(gpointer data)
{
    GstElement *pipeline =3D (GstElement *) data;
    static gboolean paused =3D 0;

    if (paused) {
        gst_element_set_state (pipeline, GST_STATE_PLAYING);
    } else {
        gst_element_set_state (pipeline, GST_STATE_PAUSED);
    }

    paused =3D !paused;

    return TRUE;
}

static void
element_added_signal(GstBin * bin, GstElement * element, gpointer * user_da=
ta)
{
  char *name;

  name =3D gst_element_get_name(element);

  if (strcmp(name, "uridecodebin0") =3D=3D 0) {
    g_signal_connect(element, "element-added",
G_CALLBACK(element_added_signal), NULL);
  } else if (strcmp(name, "source") =3D=3D 0) {
      g_object_set(element, "protocols", 0x00000004, NULL);
  }=20
}

gint
main (gint argc, gchar * argv[])
{
  GstElement *pipeline;
  GstBus *bus;
  gchar *uri;

  gst_init (&argc, &argv);

  pipeline =3D gst_element_factory_make("playbin2", NULL);
  g_object_set(pipeline, "uri", "rtsp://192.168.2.27:8554/test/");
  g_signal_connect(pipeline, "element-added", G_CALLBACK(element_added_sign=
al),
NULL);

  /* create and event loop and feed gstreamer bus mesages to it */
  loop =3D g_main_loop_new (NULL, FALSE);

  bus =3D gst_element_get_bus (pipeline);
  gst_bus_add_watch (bus, bus_call, loop);
  g_object_unref (bus);

  g_timeout_add (30000, free_pipeline, NULL);
  g_timeout_add (500, switch_state, pipeline);

  /* start play back and listen to events */
  gst_element_set_state (pipeline, GST_STATE_PLAYING);
  g_main_loop_run (loop);

  /* cleanup */
  gst_element_set_state (pipeline, GST_STATE_NULL);
  g_object_unref (pipeline);
  g_main_loop_unref (loop);

  return 0;
}

Backtrace


#0  0x00aa7b4b in handle_new_buffer (sink=3D0x9366a10, user_data=3D0xb33493=
80)
    at rtsp-media.c:1163
#1  0x004a344c in gst_app_sink_render_common (psink=3D<value optimized out>=
,=20
    data=3D0x934bb78, is_list=3D0) at gstappsink.c:807
#2  0x00457d6c in gst_base_sink_render_object (basesink=3D0x9366a10,=20
    obj_type=3D<value optimized out>, obj=3D0x934bb78, pad=3D<value optimiz=
ed out>)
    at gstbasesink.c:3005
#3  0x0045b979 in gst_base_sink_queue_object_unlocked (basesink=3D0x9366a10=
,=20
    obj_type=3D2 '\002', obj=3D0x934bb78, prerollable=3D1, pad=3D<value opt=
imized out>)
    at gstbasesink.c:3286
#4  0x0045bdfa in gst_base_sink_chain_unlocked (basesink=3D0x9366a10,=20
    obj_type=3D2 '\002', obj=3D0x934bb78, pad=3D<value optimized out>)
    at gstbasesink.c:3665
#5  0x0045c2ca in gst_base_sink_chain_main (basesink=3D<value optimized out=
>,=20
    pad=3D0xb3342268, obj_type=3D2 '\002', obj=3D0x934bb78) at gstbasesink.=
c:3703
#6  0x00179a36 in gst_pad_push (pad=3D0xb334bb20, buffer=3D0x934bb78)
    at gstpad.c:4684
#7  0x008f4157 in gst_tee_do_push (tee=3D0x9376d18, data=3D0x934bb78, is_li=
st=3D0)
    at gsttee.c:674
#8  gst_tee_handle_data (tee=3D0x9376d18, data=3D0x934bb78, is_list=3D0)
    at gsttee.c:753
#9  0x008f4646 in gst_tee_chain (pad=3D0xb334b8c8, buffer=3D0x934bb78)
    at gsttee.c:827
---Type <return> to continue, or q <return> to quit---
#10 0x00179a36 in gst_pad_push (pad=3D0xb3348a28, buffer=3D0x934bb78)
    at gstpad.c:4684
#11 0x0016287d in gst_proxy_pad_do_chain (pad=3D0xb334b1e0, buffer=3D0x934b=
b78)
    at gstghostpad.c:171
#12 0x00179a36 in gst_pad_push (pad=3D0xb334a808, buffer=3D0x934bb78)
    at gstpad.c:4684
#13 0x009bc052 in gst_rtp_session_send_rtp (sess=3D0x936e198, src=3D0x93702=
20,=20
    data=3D0x934bb78, user_data=3D0x936b190) at gstrtpsession.c:1068
#14 0x009a9dae in source_push_rtp (source=3D0x9370220, data=3D0x934bb78,=20
    session=3D0x936e198) at rtpsession.c:1191
#15 0x009b52e8 in rtp_source_send_rtp (src=3D0x9370220, data=3D0x934bb78,=
=20
    is_list=3D0, running_time=3D2600000000) at rtpsource.c:1288
#16 0x009b0255 in rtp_session_send_rtp (sess=3D0x936e198, data=3D0x934bb78,=
=20
    is_list=3D0, current_time=3D12996641053544, running_time=3D2600000000)
    at rtpsession.c:2403
#17 0x009ba773 in gst_rtp_session_chain_send_rtp_common (
    pad=3D<value optimized out>, data=3D0x934bb78, is_list=3D0)
    at gstrtpsession.c:1829
#18 0x00179a36 in gst_pad_push (pad=3D0xb334b390, buffer=3D0x934bb78)
    at gstpad.c:4684
#19 0x0016287d in gst_proxy_pad_do_chain (pad=3D0xb3348b10, buffer=3D0x934b=
b78)
    at gstghostpad.c:171
#20 0x00179a36 in gst_pad_push (pad=3D0xb3348ce0, buffer=3D0x934bb78)
---Type <return> to continue, or q <return> to quit---
    at gstpad.c:4684
#21 0x0016287d in gst_proxy_pad_do_chain (pad=3D0xb334b2b8, buffer=3D0x934b=
b78)
    at gstghostpad.c:171
#22 0x00179a36 in gst_pad_push (pad=3D0xb334acb8, buffer=3D0x934bb78)
    at gstpad.c:4684
#23 0x00495c46 in gst_basertppayload_push (payload=3D0x9348238, buffer=3D0x=
934bb78)
    at gstbasertppayload.c:897
#24 0x007d10d7 in gst_rtp_h264_pay_payload_nal (basepayload=3D0x9348238,=20
    data=3D0xf2c90ca
"A\232\177I\341\017&S\002\022\377\004oT\351\300\a^\226G\225\243=DE=A9\273\f=
D-\016{;j\016\243\365Z\247\236\266\367\r+\354\232\061\177\374\347w\250\225\=
005FLu=DA=85\\|ZQ=E5=BB=8C\270\177\032\a@`\337Y}B\244\017\375\361\223\272=
=CC=90_\177\260\016\005N=DD=B7Ko\273\217\004A\034\237\070=C6=96\203\332t!M\=
001=D6=A4\260\241\373\222\262\224\341\271\347`\333\350\062\257\262\274\203\=
n\035\320D\245\324D\207\v\374\204\001\036V#\366\330\020\272\302\310C\300\35=
2\001\207\031\220\324=3D\026\024\210](-%\377e\343\205\033'\a\330\375\212\26=
5\247~v\t}\260\365e\367\222b\247m\024t\207\311\070\275.a\017\071_k\215"...,
size=3D<value optimized out>, timestamp=3D2600000000,=20
    buffer_orig=3D0x9bf4d58) at gstrtph264pay.c:890
#25 0x007d149d in gst_rtp_h264_pay_handle_buffer (basepayload=3D0x9348238,=
=20
    buffer=3D0x9bf4d58) at gstrtph264pay.c:974
#26 0x00493d8f in gst_basertppayload_chain (pad=3D0xb334abf0, buffer=3D0x9b=
f4d58)
    at gstbasertppayload.c:455
#27 0x00179a36 in gst_pad_push (pad=3D0xb3321d78, buffer=3D0x9bf4d58)
    at gstpad.c:4684
---Type <return> to continue, or q <return> to quit---
#28 0x006c381f in ?? () from /usr/lib/gstreamer-0.10/libgstx264.so
#29 0x006c671d in ?? () from /usr/lib/gstreamer-0.10/libgstx264.so
#30 0x00179a36 in gst_pad_push (pad=3D0xb334ae48, buffer=3D0x98bd6e0)
    at gstpad.c:4684
#31 0x0046c5ed in gst_base_transform_chain (pad=3D0xb334b800, buffer=3D0x98=
bd6e0)
    at gstbasetransform.c:2458
#32 0x00179a36 in gst_pad_push (pad=3D0x93773e8, buffer=3D0x98bd6e0)
    at gstpad.c:4684
#33 0x004630d1 in gst_base_src_loop (pad=3D0x93773e8) at gstbasesrc.c:2516
#34 0x001a338a in gst_task_func (task=3D0xb334a0b8) at gsttask.c:318
#35 0x001a46c7 in default_func (tdata=3D0xe49dda0, pool=3D0x91d2808)
    at gsttaskpool.c:70
#36 0x00258a39 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#37 0x002562df in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#38 0x00946e99 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#39 0x0057a73e in clone () from /lib/i386-linux-gnu/libc.so.6

--=20
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=3Demail
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.=


More information about the gstreamer-bugs mailing list