mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 20:21:24 +00:00
gst/qtdemux/qtdemux.c: clean up some debugging, using _OBJECT, moving recurring messages to LOG level
Original commit message from CVS: * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header), (qtdemux_parse_trak): clean up some debugging, using _OBJECT, moving recurring messages to LOG level
This commit is contained in:
parent
02a3d611a8
commit
6aac14d041
1 changed files with 32 additions and 9 deletions
|
@ -538,7 +538,7 @@ gst_qtdemux_loop_header (GstPad * pad)
|
|||
GstFlowReturn ret;
|
||||
|
||||
cur_offset = qtdemux->offset;
|
||||
GST_DEBUG_OBJECT (qtdemux, "loop at position %" G_GUINT64_FORMAT ", state %d",
|
||||
GST_LOG_OBJECT (qtdemux, "loop at position %" G_GUINT64_FORMAT ", state %d",
|
||||
cur_offset, qtdemux->state);
|
||||
|
||||
switch (qtdemux->state) {
|
||||
|
@ -597,6 +597,8 @@ gst_qtdemux_loop_header (GstPad * pad)
|
|||
gst_buffer_unref (moov);
|
||||
qtdemux->moov_node = NULL;
|
||||
qtdemux->state = QTDEMUX_STATE_MOVIE;
|
||||
GST_DEBUG_OBJECT (qtdemux, "switching state to STATE_MOVIE (%d)",
|
||||
qtdemux->state);
|
||||
break;
|
||||
}
|
||||
ed_edd_and_eddy:
|
||||
|
@ -635,8 +637,12 @@ gst_qtdemux_loop_header (GstPad * pad)
|
|||
min_time = G_MAXUINT64;
|
||||
for (i = 0; i < qtdemux->n_streams; i++) {
|
||||
stream = qtdemux->streams[i];
|
||||
if (stream->sample_index < stream->n_samples &&
|
||||
stream->samples[stream->sample_index].timestamp < min_time) {
|
||||
GST_LOG_OBJECT (qtdemux,
|
||||
"stream %d: sample_index %d, timestamp %" GST_TIME_FORMAT, i,
|
||||
stream->sample_index,
|
||||
GST_TIME_ARGS (stream->samples[stream->sample_index].timestamp));
|
||||
if (stream->sample_index < stream->n_samples
|
||||
&& stream->samples[stream->sample_index].timestamp < min_time) {
|
||||
min_time = stream->samples[stream->sample_index].timestamp;
|
||||
index = i;
|
||||
}
|
||||
|
@ -652,14 +658,16 @@ gst_qtdemux_loop_header (GstPad * pad)
|
|||
offset = stream->samples[stream->sample_index].offset;
|
||||
size = stream->samples[stream->sample_index].size;
|
||||
|
||||
GST_INFO
|
||||
("pushing from stream %d, sample_index=%d offset=%lld size=%d timestamp=%lld",
|
||||
GST_LOG_OBJECT (qtdemux,
|
||||
"pushing from stream %d, sample_index=%d offset=%" G_GUINT64_FORMAT
|
||||
",size=%d timestamp=%" GST_TIME_FORMAT,
|
||||
index, stream->sample_index, offset, size,
|
||||
stream->samples[stream->sample_index].timestamp);
|
||||
GST_TIME_ARGS (stream->samples[stream->sample_index].timestamp));
|
||||
|
||||
buf = NULL;
|
||||
if (size > 0) {
|
||||
GST_LOG_OBJECT (qtdemux, "reading %d bytes @ %lld", size, offset);
|
||||
GST_LOG_OBJECT (qtdemux, "reading %d bytes @ %" G_GUINT64_FORMAT, size,
|
||||
offset);
|
||||
|
||||
ret = gst_pad_pull_range (qtdemux->sinkpad, offset, size, &buf);
|
||||
if (ret != GST_FLOW_OK)
|
||||
|
@ -703,7 +711,8 @@ gst_qtdemux_loop_header (GstPad * pad)
|
|||
}
|
||||
}
|
||||
|
||||
GST_DEBUG ("Pushing buffer with time %" GST_TIME_FORMAT " on pad %p",
|
||||
GST_LOG_OBJECT (qtdemux,
|
||||
"Pushing buffer with time %" GST_TIME_FORMAT " on pad %p",
|
||||
GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), stream->pad);
|
||||
gst_buffer_set_caps (buf, stream->caps);
|
||||
ret = gst_pad_push (stream->pad, buf);
|
||||
|
@ -2253,12 +2262,15 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
|
|||
sample_size = QTDEMUX_GUINT32_GET (stsz->data + 12);
|
||||
if (sample_size == 0) {
|
||||
n_samples = QTDEMUX_GUINT32_GET (stsz->data + 16);
|
||||
GST_DEBUG_OBJECT (qtdemux, "stsz sample_size 0, allocating n_samples %d",
|
||||
n_samples);
|
||||
stream->n_samples = n_samples;
|
||||
samples = g_malloc (sizeof (QtDemuxSample) * n_samples);
|
||||
stream->samples = samples;
|
||||
|
||||
for (i = 0; i < n_samples; i++) {
|
||||
samples[i].size = QTDEMUX_GUINT32_GET (stsz->data + i * 4 + 20);
|
||||
GST_LOG_OBJECT (qtdemux, "sample %d has size %d", i, samples[i].size);
|
||||
}
|
||||
n_samples_per_chunk = QTDEMUX_GUINT32_GET (stsc->data + 12);
|
||||
index = 0;
|
||||
|
@ -2319,7 +2331,8 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
|
|||
int sample_width;
|
||||
guint64 timestamp = 0;
|
||||
|
||||
GST_LOG ("treating chunks as samples");
|
||||
GST_DEBUG_OBJECT (qtdemux,
|
||||
"stsz sample_size %d != 0, treating chunks as samples", sample_size);
|
||||
|
||||
/* treat chunks as samples */
|
||||
if (stco) {
|
||||
|
@ -2328,12 +2341,15 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
|
|||
n_samples = QTDEMUX_GUINT32_GET (co64->data + 12);
|
||||
}
|
||||
stream->n_samples = n_samples;
|
||||
GST_DEBUG_OBJECT (qtdemux, "allocating n_samples %d", n_samples);
|
||||
samples = g_malloc (sizeof (QtDemuxSample) * n_samples);
|
||||
stream->samples = samples;
|
||||
|
||||
sample_width = QTDEMUX_GUINT16_GET (stsd->data + offset + 10) / 8;
|
||||
GST_DEBUG_OBJECT (qtdemux, "sample_width %d", sample_width);
|
||||
|
||||
n_samples_per_chunk = QTDEMUX_GUINT32_GET (stsc->data + 12);
|
||||
GST_DEBUG_OBJECT (qtdemux, "n_samples_per_chunk %d", n_samples_per_chunk);
|
||||
offset = 16;
|
||||
sample_index = 0;
|
||||
for (i = 0; i < n_samples_per_chunk; i++) {
|
||||
|
@ -2348,6 +2364,10 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
|
|||
}
|
||||
samples_per_chunk = QTDEMUX_GUINT32_GET (stsc->data + 16 + i * 12 + 4);
|
||||
|
||||
GST_LOG_OBJECT (qtdemux,
|
||||
"sample %d has first_chunk %d, last_chunk %d, samples_per_chunk %d",
|
||||
i, first_chunk, last_chunk, samples_per_chunk);
|
||||
|
||||
for (j = first_chunk; j < last_chunk; j++) {
|
||||
guint64 chunk_offset;
|
||||
|
||||
|
@ -2355,8 +2375,11 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
|
|||
goto done2;
|
||||
if (stco) {
|
||||
chunk_offset = QTDEMUX_GUINT32_GET (stco->data + 16 + j * 4);
|
||||
GST_LOG_OBJECT (qtdemux, "stco chunk %d offset %x", j, chunk_offset);
|
||||
} else {
|
||||
chunk_offset = QTDEMUX_GUINT64_GET (co64->data + 16 + j * 8);
|
||||
GST_LOG_OBJECT (qtdemux, "co64 chunk %d offset %" G_GUINT64_FORMAT, j,
|
||||
chunk_offset);
|
||||
}
|
||||
samples[j].chunk = j;
|
||||
samples[j].offset = chunk_offset;
|
||||
|
|
Loading…
Reference in a new issue