diff options
author | Stefan Sauer <ensonic@users.sf.net> | 2013-04-17 07:51:38 +0200 |
---|---|---|
committer | Stefan Sauer <ensonic@users.sf.net> | 2013-04-17 21:47:11 +0200 |
commit | cdfc05ec4d9abb4403aa0a33f95702c5c6dcc053 (patch) | |
tree | 6386ccaf936861fb5f2ba8fcbecc2180a32a14c4 | |
parent | 74f6376c53551cbb7af77f1230c672c55ff512a0 (diff) |
oggmux: add more logging and fix the object param for some logging
Use data->pad instead of pad for 'object'. Reduce indentation depth in a helper
with an early return.
-rw-r--r-- | ext/ogg/gstoggmux.c | 86 |
1 files changed, 52 insertions, 34 deletions
diff --git a/ext/ogg/gstoggmux.c b/ext/ogg/gstoggmux.c index 6bc9f7a8e..d9b8d313d 100644 --- a/ext/ogg/gstoggmux.c +++ b/ext/ogg/gstoggmux.c @@ -573,6 +573,9 @@ gst_ogg_mux_push_buffer (GstOggMux * mux, GstBuffer * buffer, mux->last_ts = run_time; } + GST_LOG_OBJECT (mux->srcpad, "pushing %p, last_ts=%" GST_TIME_FORMAT, + buffer, GST_TIME_ARGS (mux->last_ts)); + return gst_pad_push (mux->srcpad, buffer); } @@ -877,6 +880,11 @@ resync: gst_ogg_stream_granule_to_granulepos (&pad->map, granule, pad->keyframe_granule); + GST_LOG_OBJECT (pad->collect.pad, + GST_GP_FORMAT " decorated buffer %p (granulepos time %" GST_TIME_FORMAT + ")", GST_BUFFER_OFFSET_END (buf), buf, + GST_TIME_ARGS (GST_BUFFER_OFFSET (buf))); + return buf; /* ERRORS */ @@ -958,6 +966,9 @@ gst_ogg_mux_queue_pads (GstOggMux * ogg_mux, gboolean * popped) * at least) do not send headers packets, as other muxers don't * expect/need them. */ caps = gst_pad_get_current_caps (GST_PAD_CAST (data->pad)); + GST_DEBUG_OBJECT (data->pad, "checking caps: %" GST_PTR_FORMAT, + caps); + pad->have_type = gst_ogg_stream_setup_map_from_caps_headers (&pad->map, caps); @@ -966,21 +977,22 @@ gst_ogg_mux_queue_pads (GstOggMux * ogg_mux, gboolean * popped) pad->have_type = gst_ogg_stream_setup_map (&pad->map, &packet); } if (!pad->have_type) { - GST_ERROR_OBJECT (pad, "mapper didn't recognise input stream " - "(pad caps: %" GST_PTR_FORMAT ")", caps); + GST_ERROR_OBJECT (data->pad, + "mapper didn't recognise input stream " "(pad caps: %" + GST_PTR_FORMAT ")", caps); } else { - GST_DEBUG_OBJECT (pad, "caps detected: %" GST_PTR_FORMAT, + GST_DEBUG_OBJECT (data->pad, "caps detected: %" GST_PTR_FORMAT, pad->map.caps); if (pad->map.is_sparse) { - GST_DEBUG_OBJECT (pad, "Pad is sparse, marking as such"); + GST_DEBUG_OBJECT (data->pad, "Pad is sparse, marking as such"); gst_collect_pads_set_waiting (ogg_mux->collect, (GstCollectData *) pad, FALSE); } if (pad->map.is_video && ogg_mux->delta_pad == NULL) { ogg_mux->delta_pad = pad; - GST_INFO_OBJECT (pad, "selected delta pad"); + GST_INFO_OBJECT (data->pad, "selected delta pad"); } } if (caps) @@ -1051,6 +1063,7 @@ gst_ogg_mux_get_headers (GstOggPadData * pad) GList *res = NULL; GstStructure *structure; GstCaps *caps; + const GValue *streamheader; GstPad *thepad; thepad = pad->collect.pad; @@ -1058,46 +1071,46 @@ gst_ogg_mux_get_headers (GstOggPadData * pad) GST_LOG_OBJECT (thepad, "getting headers"); caps = gst_pad_get_current_caps (thepad); - if (caps != NULL) { - const GValue *streamheader; + if (caps == NULL) { + GST_INFO_OBJECT (thepad, "got empty caps as negotiated format"); + return NULL; + } - structure = gst_caps_get_structure (caps, 0); - streamheader = gst_structure_get_value (structure, "streamheader"); - if (streamheader != NULL) { - GST_LOG_OBJECT (thepad, "got header"); - if (G_VALUE_TYPE (streamheader) == GST_TYPE_ARRAY) { - GArray *bufarr = g_value_peek_pointer (streamheader); - gint i; + structure = gst_caps_get_structure (caps, 0); + streamheader = gst_structure_get_value (structure, "streamheader"); + if (streamheader != NULL) { + GST_LOG_OBJECT (thepad, "got header"); + if (G_VALUE_TYPE (streamheader) == GST_TYPE_ARRAY) { + GArray *bufarr = g_value_peek_pointer (streamheader); + gint i; - GST_LOG_OBJECT (thepad, "got fixed list"); + GST_LOG_OBJECT (thepad, "got fixed list"); - for (i = 0; i < bufarr->len; i++) { - GValue *bufval = &g_array_index (bufarr, GValue, i); + for (i = 0; i < bufarr->len; i++) { + GValue *bufval = &g_array_index (bufarr, GValue, i); - GST_LOG_OBJECT (thepad, "item %d", i); - if (G_VALUE_TYPE (bufval) == GST_TYPE_BUFFER) { - GstBuffer *buf = g_value_peek_pointer (bufval); + GST_LOG_OBJECT (thepad, "item %d", i); + if (G_VALUE_TYPE (bufval) == GST_TYPE_BUFFER) { + GstBuffer *buf = g_value_peek_pointer (bufval); - GST_LOG_OBJECT (thepad, "adding item %d to header list", i); + GST_LOG_OBJECT (thepad, "adding item %d to header list", i); - gst_buffer_ref (buf); - res = g_list_append (res, buf); - } + gst_buffer_ref (buf); + res = g_list_append (res, buf); } - } else { - GST_LOG_OBJECT (thepad, "streamheader is not fixed list"); } - - } else if (gst_structure_has_name (structure, "video/x-dirac")) { - res = g_list_append (res, pad->buffer); - pad->buffer = NULL; } else { - GST_LOG_OBJECT (thepad, "caps don't have streamheader"); + GST_LOG_OBJECT (thepad, "streamheader is not fixed list"); } - gst_caps_unref (caps); + + } else if (gst_structure_has_name (structure, "video/x-dirac")) { + res = g_list_append (res, pad->buffer); + pad->buffer = NULL; } else { - GST_LOG_OBJECT (thepad, "got empty caps as negotiated format"); + GST_LOG_OBJECT (thepad, "caps don't have streamheader"); } + gst_caps_unref (caps); + return res; } @@ -1389,6 +1402,8 @@ gst_ogg_mux_send_headers (GstOggMux * mux) if ((caps = gst_pad_get_current_caps (thepad))) { GstStructure *structure = gst_caps_get_structure (caps, 0); mime_type = gst_structure_get_name (structure); + } else { + GST_INFO_OBJECT (thepad, "got empty caps as negotiated format"); } /* create a packet from the buffer */ @@ -1410,7 +1425,7 @@ gst_ogg_mux_send_headers (GstOggMux * mux) hbuf = gst_ogg_mux_buffer_from_page (mux, &page, FALSE); - GST_LOG_OBJECT (mux, "swapped out page with mime type %s", mime_type); + GST_LOG_OBJECT (mux, "swapped out page with mime type '%s'", mime_type); /* quick hack: put video pages at the front. * Ideally, we would have a settable enum for which Ogg @@ -1653,6 +1668,7 @@ gst_ogg_mux_process_best_pad (GstOggMux * ogg_mux, GstOggPadData * best) GST_LOG_OBJECT (ogg_mux->pulling->collect.pad, "updated times, next ts %" GST_TIME_FORMAT, GST_TIME_ARGS (ogg_mux->next_ts)); } else { + GST_LOG_OBJECT (ogg_mux->srcpad, "sending EOS"); /* no pad to pull on, send EOS */ gst_pad_push_event (ogg_mux->srcpad, gst_event_new_eos ()); return GST_FLOW_FLUSHING; @@ -1967,6 +1983,7 @@ gst_ogg_mux_collected (GstCollectPads * pads, GstOggMux * ogg_mux) ret = gst_ogg_mux_process_best_pad (ogg_mux, best); if (best->eos && all_pads_eos (pads)) { + GST_LOG_OBJECT (ogg_mux->srcpad, "sending EOS"); gst_pad_push_event (ogg_mux->srcpad, gst_event_new_eos ()); return GST_FLOW_EOS; } @@ -2069,6 +2086,7 @@ gst_ogg_mux_clear_collectpads (GstCollectPads * collect) ogg_stream_clear (&oggpad->map.stream); while ((buf = g_queue_pop_head (oggpad->pagebuffers)) != NULL) { + GST_LOG ("flushing buffer : %p", buf); gst_buffer_unref (buf); } g_queue_free (oggpad->pagebuffers); |