• Home
  • Raw
  • Download

Lines Matching refs:demux

109 #define QTDEMUX_N_STREAMS(demux) ((demux)->active_streams->len)  argument
110 #define QTDEMUX_NTH_STREAM(demux,idx) \ argument
111 QTDEMUX_STREAM(g_ptr_array_index((demux)->active_streams,idx))
112 #define QTDEMUX_NTH_OLD_STREAM(demux,idx) \ argument
113 QTDEMUX_STREAM(g_ptr_array_index((demux)->old_streams,idx))
141 #define QTDEMUX_EXPOSE_GET_LOCK(demux) (&((demux)->expose_lock)) argument
142 #define QTDEMUX_EXPOSE_LOCK(demux) G_STMT_START { \ argument
144 g_mutex_lock (QTDEMUX_EXPOSE_GET_LOCK (demux)); \
148 #define QTDEMUX_EXPOSE_UNLOCK(demux) G_STMT_START { \ argument
150 g_mutex_unlock (QTDEMUX_EXPOSE_GET_LOCK (demux)); \
269 static void gst_qtdemux_check_send_pending_segment (GstQTDemux * demux);
334 static void gst_qtdemux_stream_check_and_change_stsd_index (GstQTDemux * demux,
336 static GstFlowReturn gst_qtdemux_process_adapter (GstQTDemux * demux,
339 static void gst_qtdemux_check_seekability (GstQTDemux * demux);
377 static void gst_qtdemux_send_gap_for_segment (GstQTDemux * demux,
1842 _get_upstream_id (GstQTDemux * demux) in _get_upstream_id() argument
1844 gchar *upstream_id = gst_pad_get_stream_id (demux->sinkpad); in _get_upstream_id()
1854 if (gst_element_query (GST_ELEMENT_CAST (demux), query)) { in _get_upstream_id()
1869 GST_FIXME_OBJECT (demux, "Creating random stream-id, consider " in _get_upstream_id()
1882 _create_stream (GstQTDemux * demux, guint32 track_id) in _create_stream() argument
1888 stream->demux = demux; in _create_stream()
1890 upstream_id = _get_upstream_id (demux); in _create_stream()
1926 gst_qtdemux_setcaps (GstQTDemux * demux, GstCaps * caps) in gst_qtdemux_setcaps() argument
1932 GST_DEBUG_OBJECT (demux, "Sink set caps: %" GST_PTR_FORMAT, caps); in gst_qtdemux_setcaps()
1941 demux->fragmented = TRUE; in gst_qtdemux_setcaps()
1942 demux->mss_mode = TRUE; in gst_qtdemux_setcaps()
1944 if (QTDEMUX_N_STREAMS (demux) > 1) { in gst_qtdemux_setcaps()
1956 if (QTDEMUX_N_STREAMS (demux) == 0) { in gst_qtdemux_setcaps()
1957 stream = _create_stream (demux, 1); in gst_qtdemux_setcaps()
1958 g_ptr_array_add (demux->active_streams, stream); in gst_qtdemux_setcaps()
1964 stream = QTDEMUX_NTH_STREAM (demux, 0); in gst_qtdemux_setcaps()
1974 demux->timescale = stream->timescale; in gst_qtdemux_setcaps()
1979 GST_DEBUG_OBJECT (demux, "We have a new caps %" GST_PTR_FORMAT, in gst_qtdemux_setcaps()
2012 gst_caps_replace (&demux->media_caps, (GstCaps *) mediacaps); in gst_qtdemux_setcaps()
2014 demux->mss_mode = FALSE; in gst_qtdemux_setcaps()
2211 GstQTDemux *demux = GST_QTDEMUX (parent); in gst_qtdemux_handle_sink_event() local
2214 GST_LOG_OBJECT (demux, "handling %s event", GST_EVENT_TYPE_NAME (event)); in gst_qtdemux_handle_sink_event()
2226 GST_DEBUG_OBJECT (demux, "received newsegment %" GST_SEGMENT_FORMAT, in gst_qtdemux_handle_sink_event()
2230 demux->upstream_format_is_time = TRUE; in gst_qtdemux_handle_sink_event()
2231 demux->segment_seqnum = gst_event_get_seqnum (event); in gst_qtdemux_handle_sink_event()
2233 GST_DEBUG_OBJECT (demux, "Not storing upstream newsegment, " in gst_qtdemux_handle_sink_event()
2237 if (demux->state != QTDEMUX_STATE_MOVIE || !QTDEMUX_N_STREAMS (demux)) { in gst_qtdemux_handle_sink_event()
2238 GST_DEBUG_OBJECT (demux, "still starting, eating event"); in gst_qtdemux_handle_sink_event()
2248 GST_DEBUG_OBJECT (demux, "Stored seek offset: %" G_GINT64_FORMAT in gst_qtdemux_handle_sink_event()
2250 demux->seek_offset, segment.start); in gst_qtdemux_handle_sink_event()
2252 && demux->seek_offset == segment.start) { in gst_qtdemux_handle_sink_event()
2253 GST_OBJECT_LOCK (demux); in gst_qtdemux_handle_sink_event()
2257 segment.start = demux->push_seek_start; in gst_qtdemux_handle_sink_event()
2258 segment.stop = demux->push_seek_stop; in gst_qtdemux_handle_sink_event()
2259 GST_DEBUG_OBJECT (demux, "Replaced segment with stored seek " in gst_qtdemux_handle_sink_event()
2262 GST_OBJECT_UNLOCK (demux); in gst_qtdemux_handle_sink_event()
2270 gst_qtdemux_find_sample (demux, segment.start, TRUE, FALSE, NULL, in gst_qtdemux_handle_sink_event()
2276 gst_qtdemux_find_sample (demux, segment.stop, FALSE, FALSE, NULL, in gst_qtdemux_handle_sink_event()
2285 gst_qtdemux_process_adapter (demux, TRUE); in gst_qtdemux_handle_sink_event()
2287 GST_DEBUG_OBJECT (demux, "unsupported segment format, ignoring"); in gst_qtdemux_handle_sink_event()
2292 if (!demux->upstream_format_is_time) { in gst_qtdemux_handle_sink_event()
2296 segment.duration = demux->segment.duration; in gst_qtdemux_handle_sink_event()
2297 segment.base = gst_segment_to_running_time (&demux->segment, in gst_qtdemux_handle_sink_event()
2298 GST_FORMAT_TIME, demux->segment.position); in gst_qtdemux_handle_sink_event()
2301 gst_segment_copy_into (&segment, &demux->segment); in gst_qtdemux_handle_sink_event()
2302 GST_DEBUG_OBJECT (demux, "Pushing newseg %" GST_SEGMENT_FORMAT, &segment); in gst_qtdemux_handle_sink_event()
2305 if (QTDEMUX_N_STREAMS (demux)) { in gst_qtdemux_handle_sink_event()
2306 demux->need_segment = TRUE; in gst_qtdemux_handle_sink_event()
2307 gst_qtdemux_check_send_pending_segment (demux); in gst_qtdemux_handle_sink_event()
2311 gst_adapter_clear (demux->adapter); in gst_qtdemux_handle_sink_event()
2314 demux->offset = offset; in gst_qtdemux_handle_sink_event()
2315 if (demux->upstream_format_is_time) { in gst_qtdemux_handle_sink_event()
2316 GST_DEBUG_OBJECT (demux, "Upstream is driving in time format, " in gst_qtdemux_handle_sink_event()
2318 demux->neededbytes = 16; in gst_qtdemux_handle_sink_event()
2319 demux->todrop = 0; in gst_qtdemux_handle_sink_event()
2321 gst_qtdemux_find_sample (demux, offset, TRUE, TRUE, &stream, &idx, in gst_qtdemux_handle_sink_event()
2324 demux->todrop = stream->samples[idx].offset - offset; in gst_qtdemux_handle_sink_event()
2325 demux->neededbytes = demux->todrop + stream->samples[idx].size; in gst_qtdemux_handle_sink_event()
2328 demux->neededbytes = -1; in gst_qtdemux_handle_sink_event()
2329 demux->todrop = 0; in gst_qtdemux_handle_sink_event()
2339 if (gst_event_get_seqnum (event) == demux->offset_seek_seqnum) { in gst_qtdemux_handle_sink_event()
2343 QTDEMUX_EXPOSE_LOCK (demux); in gst_qtdemux_handle_sink_event()
2344 res = gst_pad_event_default (demux->sinkpad, parent, event); in gst_qtdemux_handle_sink_event()
2345 QTDEMUX_EXPOSE_UNLOCK (demux); in gst_qtdemux_handle_sink_event()
2352 dur = demux->segment.duration; in gst_qtdemux_handle_sink_event()
2353 gst_qtdemux_reset (demux, FALSE); in gst_qtdemux_handle_sink_event()
2354 demux->segment.duration = dur; in gst_qtdemux_handle_sink_event()
2356 if (gst_event_get_seqnum (event) == demux->offset_seek_seqnum) { in gst_qtdemux_handle_sink_event()
2365 if (!demux->pullbased) { in gst_qtdemux_handle_sink_event()
2368 for (i = 0; i < QTDEMUX_N_STREAMS (demux); i++) { in gst_qtdemux_handle_sink_event()
2369 if (QTDEMUX_NTH_STREAM (demux, i)->pad != NULL) { in gst_qtdemux_handle_sink_event()
2375 gst_qtdemux_post_no_playable_stream_error (demux); in gst_qtdemux_handle_sink_event()
2377 GST_DEBUG_OBJECT (demux, "Data still available after EOS: %u", in gst_qtdemux_handle_sink_event()
2378 (guint) gst_adapter_available (demux->adapter)); in gst_qtdemux_handle_sink_event()
2379 if (gst_qtdemux_process_adapter (demux, TRUE) != GST_FLOW_OK) { in gst_qtdemux_handle_sink_event()
2389 gst_qtdemux_setcaps (demux, caps); in gst_qtdemux_handle_sink_event()
2399 GST_DEBUG_OBJECT (demux, "Received protection event for system ID %s", in gst_qtdemux_handle_sink_event()
2401 gst_qtdemux_append_protection_system_id (demux, system_id); in gst_qtdemux_handle_sink_event()
2403 g_queue_push_tail (&demux->protection_event_queue, gst_event_ref (event)); in gst_qtdemux_handle_sink_event()
2405 gst_qtdemux_push_event (demux, event); in gst_qtdemux_handle_sink_event()
2415 gst_qtdemux_process_adapter (demux, TRUE); in gst_qtdemux_handle_sink_event()
2416 gst_qtdemux_reset (demux, FALSE); in gst_qtdemux_handle_sink_event()
2418 if (demux->exposed) { in gst_qtdemux_handle_sink_event()
2419 gst_qtdemux_stream_concat (demux, in gst_qtdemux_handle_sink_event()
2420 demux->old_streams, demux->active_streams); in gst_qtdemux_handle_sink_event()
2429 res = gst_pad_event_default (demux->sinkpad, parent, event) & res; in gst_qtdemux_handle_sink_event()
2439 GstQTDemux *demux = GST_QTDEMUX (parent); in gst_qtdemux_handle_sink_query() local
2448 gst_qtdemux_check_seekability (demux); in gst_qtdemux_handle_sink_query()
2450 if (demux->upstream_size != -1 in gst_qtdemux_handle_sink_query()
2451 && gst_qtdemux_get_duration (demux, &duration)) { in gst_qtdemux_handle_sink_query()
2453 gst_util_uint64_scale (8 * demux->upstream_size, GST_SECOND, in gst_qtdemux_handle_sink_query()
2456 GST_LOG_OBJECT (demux, "bitrate query byte length: %" G_GUINT64_FORMAT in gst_qtdemux_handle_sink_query()
2458 demux->upstream_size, GST_TIME_ARGS (duration), bitrate); in gst_qtdemux_handle_sink_query()
2467 res = gst_pad_query_default (pad, (GstObject *) demux, query); in gst_qtdemux_handle_sink_query()
2479 GstQTDemux *demux = GST_QTDEMUX (element);
2481 GST_OBJECT_LOCK (demux);
2482 if (demux->element_index)
2483 gst_object_unref (demux->element_index);
2485 demux->element_index = gst_object_ref (index);
2487 demux->element_index = NULL;
2489 GST_OBJECT_UNLOCK (demux);
2492 gst_index_get_writer_id (index, GST_OBJECT (element), &demux->index_id);
2493 GST_DEBUG_OBJECT (demux, "Set index %" GST_PTR_FORMAT "for writer id %d",
2494 demux->element_index, demux->index_id);
2501 GstQTDemux *demux = GST_QTDEMUX (element);
2503 GST_OBJECT_LOCK (demux);
2504 if (demux->element_index)
2505 result = gst_object_ref (demux->element_index);
2506 GST_OBJECT_UNLOCK (demux);
2508 GST_DEBUG_OBJECT (demux, "Returning index %" GST_PTR_FORMAT, result);
2655 GstQTDemux *demux = stream->demux; in gst_qtdemux_stream_unref() local
2656 gst_element_remove_pad (GST_ELEMENT_CAST (demux), stream->pad); in gst_qtdemux_stream_unref()
2657 GST_OBJECT_LOCK (demux); in gst_qtdemux_stream_unref()
2658 gst_flow_combiner_remove_pad (demux->flowcombiner, stream->pad); in gst_qtdemux_stream_unref()
2659 GST_OBJECT_UNLOCK (demux); in gst_qtdemux_stream_unref()
5388 gst_qtdemux_sync_streams (GstQTDemux * demux) in gst_qtdemux_sync_streams() argument
5392 if (QTDEMUX_N_STREAMS (demux) <= 1) in gst_qtdemux_sync_streams()
5395 for (i = 0; i < QTDEMUX_N_STREAMS (demux); i++) { in gst_qtdemux_sync_streams()
5399 stream = QTDEMUX_NTH_STREAM (demux, i); in gst_qtdemux_sync_streams()
5410 if (demux->segment.flags & GST_SEEK_FLAG_SEGMENT) in gst_qtdemux_sync_streams()
5413 if (demux->pullbased) { in gst_qtdemux_sync_streams()
5420 stream->samples[stream->n_samples - 1].offset >= demux->offset) in gst_qtdemux_sync_streams()
5429 GST_LOG_OBJECT (demux, "current position: %" GST_TIME_FORMAT in gst_qtdemux_sync_streams()
5431 GST_TIME_ARGS (demux->segment.position), GST_TIME_ARGS (end_time)); in gst_qtdemux_sync_streams()
5433 && (end_time + 2 * GST_SECOND < demux->segment.position)) { in gst_qtdemux_sync_streams()
5436 GST_DEBUG_OBJECT (demux, "sending EOS for stream %s", in gst_qtdemux_sync_streams()
5440 if (demux->segment_seqnum != GST_SEQNUM_INVALID) in gst_qtdemux_sync_streams()
5441 gst_event_set_seqnum (event, demux->segment_seqnum); in gst_qtdemux_sync_streams()
5453 gst_qtdemux_combine_flows (GstQTDemux * demux, QtDemuxStream * stream, in gst_qtdemux_combine_flows() argument
5456 GST_LOG_OBJECT (demux, "flow return: %s", gst_flow_get_name (ret)); in gst_qtdemux_combine_flows()
5459 ret = gst_flow_combiner_update_pad_flow (demux->flowcombiner, stream->pad, in gst_qtdemux_combine_flows()
5462 ret = gst_flow_combiner_update_flow (demux->flowcombiner, ret); in gst_qtdemux_combine_flows()
5464 GST_LOG_OBJECT (demux, "combined flow return: %s", gst_flow_get_name (ret)); in gst_qtdemux_combine_flows()
5591 gst_qtdemux_align_buffer (GstQTDemux * demux, in gst_qtdemux_align_buffer() argument
5614 GST_DEBUG_OBJECT (demux, in gst_qtdemux_align_buffer()
6873 has_next_entry (GstQTDemux * demux) in has_next_entry() argument
6878 GST_DEBUG_OBJECT (demux, "Checking if there are samples not played yet"); in has_next_entry()
6880 for (i = 0; i < QTDEMUX_N_STREAMS (demux); i++) { in has_next_entry()
6881 stream = QTDEMUX_NTH_STREAM (demux, i); in has_next_entry()
6889 GST_LOG_OBJECT (demux, "track-id %u samples exhausted", stream->track_id); in has_next_entry()
6892 GST_DEBUG_OBJECT (demux, "Found a sample"); in has_next_entry()
6896 GST_DEBUG_OBJECT (demux, "There wasn't any next sample"); in has_next_entry()
6907 next_entry_size (GstQTDemux * demux) in next_entry_size() argument
6914 GST_LOG_OBJECT (demux, "Finding entry at offset %" G_GUINT64_FORMAT, in next_entry_size()
6915 demux->offset); in next_entry_size()
6917 for (i = 0; i < QTDEMUX_N_STREAMS (demux); i++) { in next_entry_size()
6918 stream = QTDEMUX_NTH_STREAM (demux, i); in next_entry_size()
6926 GST_LOG_OBJECT (demux, "track-id %u samples exhausted", stream->track_id); in next_entry_size()
6930 if (!qtdemux_parse_samples (demux, stream, stream->sample_index)) { in next_entry_size()
6931 GST_LOG_OBJECT (demux, "Parsing of index %u from stbl atom failed!", in next_entry_size()
6938 GST_LOG_OBJECT (demux, in next_entry_size()
6953 GST_LOG_OBJECT (demux, in next_entry_size()
6955 G_GUINT64_FORMAT, target_stream->track_id, smalloffs, demux->offset); in next_entry_size()
6960 if (sample->offset >= demux->offset) { in next_entry_size()
6961 demux->todrop = sample->offset - demux->offset; in next_entry_size()
6962 return sample->size + demux->todrop; in next_entry_size()
6965 GST_DEBUG_OBJECT (demux, in next_entry_size()
6966 "There wasn't any entry at offset %" G_GUINT64_FORMAT, demux->offset); in next_entry_size()
6971 gst_qtdemux_post_progress (GstQTDemux * demux, gint num, gint denom) in gst_qtdemux_post_progress() argument
6975 gst_element_post_message (GST_ELEMENT_CAST (demux), in gst_qtdemux_post_progress()
6976 gst_message_new_element (GST_OBJECT_CAST (demux), in gst_qtdemux_post_progress()
6981 qtdemux_seek_offset (GstQTDemux * demux, guint64 offset) in qtdemux_seek_offset() argument
6986 GST_DEBUG_OBJECT (demux, "Seeking to %" G_GUINT64_FORMAT, offset); in qtdemux_seek_offset()
6994 demux->offset_seek_seqnum = gst_event_get_seqnum (event); in qtdemux_seek_offset()
6995 res = gst_pad_push_event (demux->sinkpad, event); in qtdemux_seek_offset()
6996 demux->offset_seek_seqnum = GST_SEQNUM_INVALID; in qtdemux_seek_offset()
7003 gst_qtdemux_check_seekability (GstQTDemux * demux) in gst_qtdemux_check_seekability() argument
7009 if (demux->upstream_size) in gst_qtdemux_check_seekability()
7012 if (demux->upstream_format_is_time) in gst_qtdemux_check_seekability()
7016 if (!gst_pad_peer_query (demux->sinkpad, query)) { in gst_qtdemux_check_seekability()
7017 GST_DEBUG_OBJECT (demux, "seeking query failed"); in gst_qtdemux_check_seekability()
7025 GST_DEBUG_OBJECT (demux, "doing duration query to fix up unset stop"); in gst_qtdemux_check_seekability()
7026 gst_pad_peer_query_duration (demux->sinkpad, GST_FORMAT_BYTES, &stop); in gst_qtdemux_check_seekability()
7032 GST_DEBUG_OBJECT (demux, "seekable but unknown start/stop -> disable"); in gst_qtdemux_check_seekability()
7039 GST_DEBUG_OBJECT (demux, "seekable: %d (%" G_GUINT64_FORMAT " - %" in gst_qtdemux_check_seekability()
7041 demux->upstream_seekable = seekable; in gst_qtdemux_check_seekability()
7042 demux->upstream_size = seekable ? stop : -1; in gst_qtdemux_check_seekability()
7046 gst_qtdemux_drop_data (GstQTDemux * demux, gint bytes) in gst_qtdemux_drop_data() argument
7048 g_return_if_fail (bytes <= demux->todrop); in gst_qtdemux_drop_data()
7050 GST_LOG_OBJECT (demux, "Dropping %d bytes", bytes); in gst_qtdemux_drop_data()
7051 gst_adapter_flush (demux->adapter, bytes); in gst_qtdemux_drop_data()
7052 demux->neededbytes -= bytes; in gst_qtdemux_drop_data()
7053 demux->offset += bytes; in gst_qtdemux_drop_data()
7054 demux->todrop -= bytes; in gst_qtdemux_drop_data()
7059 gst_qtdemux_check_send_pending_segment (GstQTDemux * demux) in gst_qtdemux_check_send_pending_segment() argument
7061 if (G_UNLIKELY (demux->need_segment)) { in gst_qtdemux_check_send_pending_segment()
7064 if (!demux->upstream_format_is_time) { in gst_qtdemux_check_send_pending_segment()
7065 gst_qtdemux_map_and_push_segments (demux, &demux->segment); in gst_qtdemux_check_send_pending_segment()
7068 segment_event = gst_event_new_segment (&demux->segment); in gst_qtdemux_check_send_pending_segment()
7069 if (demux->segment_seqnum != GST_SEQNUM_INVALID) in gst_qtdemux_check_send_pending_segment()
7070 gst_event_set_seqnum (segment_event, demux->segment_seqnum); in gst_qtdemux_check_send_pending_segment()
7071 gst_qtdemux_push_event (demux, segment_event); in gst_qtdemux_check_send_pending_segment()
7074 demux->need_segment = FALSE; in gst_qtdemux_check_send_pending_segment()
7077 for (i = 0; i < QTDEMUX_N_STREAMS (demux); i++) { in gst_qtdemux_check_send_pending_segment()
7078 QtDemuxStream *stream = QTDEMUX_NTH_STREAM (demux, i); in gst_qtdemux_check_send_pending_segment()
7079 gst_qtdemux_push_tags (demux, stream); in gst_qtdemux_check_send_pending_segment()
7081 GST_INFO_OBJECT (demux, "Sending gap event on stream %d", i); in gst_qtdemux_check_send_pending_segment()
7091 gst_qtdemux_send_gap_for_segment (GstQTDemux * demux, in gst_qtdemux_send_gap_for_segment() argument
7118 GstQTDemux *demux; in gst_qtdemux_chain() local
7120 demux = GST_QTDEMUX (parent); in gst_qtdemux_chain()
7122 GST_DEBUG_OBJECT (demux, in gst_qtdemux_chain()
7127 gst_buffer_get_size (inbuf), demux->offset); in gst_qtdemux_chain()
7133 GST_DEBUG_OBJECT (demux, "Got DISCONT, marking all streams as DISCONT"); in gst_qtdemux_chain()
7135 for (i = 0; i < QTDEMUX_N_STREAMS (demux); i++) { in gst_qtdemux_chain()
7136 QTDEMUX_NTH_STREAM (demux, i)->discont = TRUE; in gst_qtdemux_chain()
7142 if (demux->upstream_format_is_time in gst_qtdemux_chain()
7144 for (i = 0; i < QTDEMUX_N_STREAMS (demux); i++) { in gst_qtdemux_chain()
7146 QtDemuxStream *stream = QTDEMUX_NTH_STREAM (demux, i); in gst_qtdemux_chain()
7147 GST_LOG_OBJECT (demux, in gst_qtdemux_chain()
7151 gst_qtdemux_find_index_for_given_media_offset_linear (demux, in gst_qtdemux_chain()
7155 GST_LOG_OBJECT (demux, in gst_qtdemux_chain()
7160 GST_LOG_OBJECT (demux, in gst_qtdemux_chain()
7165 demux->state = QTDEMUX_STATE_MOVIE; in gst_qtdemux_chain()
7169 demux->neededbytes = stream->samples[res].size; in gst_qtdemux_chain()
7170 demux->offset = GST_BUFFER_OFFSET (inbuf); in gst_qtdemux_chain()
7171 demux->mdatleft = in gst_qtdemux_chain()
7172 demux->mdatsize - demux->offset + demux->mdatoffset; in gst_qtdemux_chain()
7173 demux->todrop = 0; in gst_qtdemux_chain()
7178 GST_DEBUG_OBJECT (demux, "Resetting, actual DISCONT"); in gst_qtdemux_chain()
7180 demux->neededbytes = 16; in gst_qtdemux_chain()
7181 demux->state = QTDEMUX_STATE_INITIAL; in gst_qtdemux_chain()
7182 demux->offset = GST_BUFFER_OFFSET (inbuf); in gst_qtdemux_chain()
7183 gst_adapter_clear (demux->adapter); in gst_qtdemux_chain()
7192 if (!is_gap_input && demux->fragmented && demux->segment.rate < 0) { in gst_qtdemux_chain()
7193 gst_qtdemux_process_adapter (demux, TRUE); in gst_qtdemux_chain()
7194 g_ptr_array_foreach (demux->active_streams, in gst_qtdemux_chain()
7199 gst_adapter_push (demux->adapter, inbuf); in gst_qtdemux_chain()
7201 GST_DEBUG_OBJECT (demux, in gst_qtdemux_chain()
7203 demux->neededbytes, gst_adapter_available (demux->adapter)); in gst_qtdemux_chain()
7205 return gst_qtdemux_process_adapter (demux, FALSE); in gst_qtdemux_chain()
7209 gst_qtdemux_process_adapter (GstQTDemux * demux, gboolean force) in gst_qtdemux_process_adapter() argument
7214 if (demux->neededbytes == -1) { in gst_qtdemux_process_adapter()
7218 while (((gst_adapter_available (demux->adapter)) >= demux->neededbytes) && in gst_qtdemux_process_adapter()
7225 discont_offset = gst_adapter_offset_at_discont (demux->adapter); in gst_qtdemux_process_adapter()
7227 gst_adapter_distance_from_discont (demux->adapter); in gst_qtdemux_process_adapter()
7229 GST_DEBUG_OBJECT (demux, in gst_qtdemux_process_adapter()
7232 " bytes)", qt_demux_state_string (demux->state), demux->neededbytes, in gst_qtdemux_process_adapter()
7233 demux->offset, discont_offset, distance_from_discont); in gst_qtdemux_process_adapter()
7237 switch (demux->state) { in gst_qtdemux_process_adapter()
7243 gst_qtdemux_check_seekability (demux); in gst_qtdemux_process_adapter()
7245 data = gst_adapter_map (demux->adapter, demux->neededbytes); in gst_qtdemux_process_adapter()
7248 extract_initial_length_and_fourcc ((guint8 *) data, demux->neededbytes, in gst_qtdemux_process_adapter()
7250 gst_adapter_unmap (demux->adapter); in gst_qtdemux_process_adapter()
7252 GST_DEBUG_OBJECT (demux, "Peeking found [%" GST_FOURCC_FORMAT "] " in gst_qtdemux_process_adapter()
7255 GST_ELEMENT_ERROR (demux, STREAM, DEMUX, in gst_qtdemux_process_adapter()
7263 gint next_entry = next_entry_size (demux); in gst_qtdemux_process_adapter()
7264 if (QTDEMUX_N_STREAMS (demux) > 0 && (next_entry != -1 in gst_qtdemux_process_adapter()
7265 || !demux->fragmented)) { in gst_qtdemux_process_adapter()
7267 demux->state = QTDEMUX_STATE_MOVIE; in gst_qtdemux_process_adapter()
7268 demux->neededbytes = next_entry; in gst_qtdemux_process_adapter()
7269 demux->mdatleft = size; in gst_qtdemux_process_adapter()
7270 demux->mdatsize = demux->mdatleft; in gst_qtdemux_process_adapter()
7278 old = demux->offset; in gst_qtdemux_process_adapter()
7284 if (demux->upstream_seekable && in gst_qtdemux_process_adapter()
7285 demux->upstream_size > 4 * (1 << 20)) { in gst_qtdemux_process_adapter()
7286 res = qtdemux_seek_offset (demux, target); in gst_qtdemux_process_adapter()
7288 GST_DEBUG_OBJECT (demux, "skipping seek"); in gst_qtdemux_process_adapter()
7293 GST_DEBUG_OBJECT (demux, "seek success"); in gst_qtdemux_process_adapter()
7296 if (fourcc == FOURCC_mdat && demux->first_mdat == -1) { in gst_qtdemux_process_adapter()
7297 demux->first_mdat = old; in gst_qtdemux_process_adapter()
7298 GST_DEBUG_OBJECT (demux, "first mdat at %" G_GUINT64_FORMAT, in gst_qtdemux_process_adapter()
7299 demux->first_mdat); in gst_qtdemux_process_adapter()
7302 demux->offset = target; in gst_qtdemux_process_adapter()
7303 demux->neededbytes = 16; in gst_qtdemux_process_adapter()
7304 demux->state = QTDEMUX_STATE_INITIAL; in gst_qtdemux_process_adapter()
7307 demux->offset = old; in gst_qtdemux_process_adapter()
7308 GST_DEBUG_OBJECT (demux, "seek failed/skipped"); in gst_qtdemux_process_adapter()
7311 if (demux->mdatbuffer) in gst_qtdemux_process_adapter()
7312 bs = gst_buffer_get_size (demux->mdatbuffer); in gst_qtdemux_process_adapter()
7317 demux->state = QTDEMUX_STATE_BUFFER_MDAT; in gst_qtdemux_process_adapter()
7318 demux->neededbytes = size; in gst_qtdemux_process_adapter()
7319 if (!demux->mdatbuffer) in gst_qtdemux_process_adapter()
7320 demux->mdatoffset = demux->offset; in gst_qtdemux_process_adapter()
7324 GST_ELEMENT_ERROR (demux, STREAM, DEMUX, in gst_qtdemux_process_adapter()
7333 if (demux->mdatbuffer && !(fourcc == FOURCC_moov in gst_qtdemux_process_adapter()
7336 demux->neededbytes = size; in gst_qtdemux_process_adapter()
7337 demux->state = QTDEMUX_STATE_HEADER; in gst_qtdemux_process_adapter()
7345 GST_DEBUG_OBJECT (demux, "In header"); in gst_qtdemux_process_adapter()
7347 data = gst_adapter_map (demux->adapter, demux->neededbytes); in gst_qtdemux_process_adapter()
7350 extract_initial_length_and_fourcc (data, demux->neededbytes, NULL, in gst_qtdemux_process_adapter()
7355 if (demux->got_moov && QTDEMUX_N_STREAMS (demux) > 0 && in gst_qtdemux_process_adapter()
7356 (!demux->fragmented in gst_qtdemux_process_adapter()
7357 || demux->last_moov_offset == demux->offset)) { in gst_qtdemux_process_adapter()
7358 GST_DEBUG_OBJECT (demux, in gst_qtdemux_process_adapter()
7361 GST_DEBUG_OBJECT (demux, "Parsing [moov]"); in gst_qtdemux_process_adapter()
7363 if (demux->got_moov && demux->fragmented) { in gst_qtdemux_process_adapter()
7364 GST_DEBUG_OBJECT (demux, in gst_qtdemux_process_adapter()
7366 if (demux->moov_node_compressed) { in gst_qtdemux_process_adapter()
7367 g_node_destroy (demux->moov_node_compressed); in gst_qtdemux_process_adapter()
7368 if (demux->moov_node) in gst_qtdemux_process_adapter()
7369 g_free (demux->moov_node->data); in gst_qtdemux_process_adapter()
7371 demux->moov_node_compressed = NULL; in gst_qtdemux_process_adapter()
7372 if (demux->moov_node) in gst_qtdemux_process_adapter()
7373 g_node_destroy (demux->moov_node); in gst_qtdemux_process_adapter()
7374 demux->moov_node = NULL; in gst_qtdemux_process_adapter()
7377 demux->last_moov_offset = demux->offset; in gst_qtdemux_process_adapter()
7380 gst_qtdemux_stream_concat (demux, in gst_qtdemux_process_adapter()
7381 demux->old_streams, demux->active_streams); in gst_qtdemux_process_adapter()
7383 qtdemux_parse_moov (demux, data, demux->neededbytes); in gst_qtdemux_process_adapter()
7384 qtdemux_node_dump (demux, demux->moov_node); in gst_qtdemux_process_adapter()
7385 qtdemux_parse_tree (demux); in gst_qtdemux_process_adapter()
7386 qtdemux_prepare_streams (demux); in gst_qtdemux_process_adapter()
7387 QTDEMUX_EXPOSE_LOCK (demux); in gst_qtdemux_process_adapter()
7388 qtdemux_expose_streams (demux); in gst_qtdemux_process_adapter()
7389 QTDEMUX_EXPOSE_UNLOCK (demux); in gst_qtdemux_process_adapter()
7391 demux->got_moov = TRUE; in gst_qtdemux_process_adapter()
7393 gst_qtdemux_check_send_pending_segment (demux); in gst_qtdemux_process_adapter()
7395 if (demux->moov_node_compressed) { in gst_qtdemux_process_adapter()
7396 g_node_destroy (demux->moov_node_compressed); in gst_qtdemux_process_adapter()
7397 g_free (demux->moov_node->data); in gst_qtdemux_process_adapter()
7399 demux->moov_node_compressed = NULL; in gst_qtdemux_process_adapter()
7400 g_node_destroy (demux->moov_node); in gst_qtdemux_process_adapter()
7401 demux->moov_node = NULL; in gst_qtdemux_process_adapter()
7402 GST_DEBUG_OBJECT (demux, "Finished parsing the header"); in gst_qtdemux_process_adapter()
7405 if ((demux->got_moov || demux->media_caps) && demux->fragmented) { in gst_qtdemux_process_adapter()
7411 GST_DEBUG_OBJECT (demux, "Parsing [moof]"); in gst_qtdemux_process_adapter()
7424 prev_pts = gst_adapter_prev_pts (demux->adapter, &dist); in gst_qtdemux_process_adapter()
7425 prev_offset = demux->offset - dist; in gst_qtdemux_process_adapter()
7426 if (demux->fragment_start_offset == -1 in gst_qtdemux_process_adapter()
7427 || prev_offset > demux->fragment_start_offset) { in gst_qtdemux_process_adapter()
7428 demux->fragment_start_offset = prev_offset; in gst_qtdemux_process_adapter()
7429 demux->fragment_start = prev_pts; in gst_qtdemux_process_adapter()
7430 GST_DEBUG_OBJECT (demux, in gst_qtdemux_process_adapter()
7432 GST_TIME_FORMAT, demux->fragment_start_offset, in gst_qtdemux_process_adapter()
7433 GST_TIME_ARGS (demux->fragment_start)); in gst_qtdemux_process_adapter()
7451 gst_adapter_offset_at_discont (demux->adapter); in gst_qtdemux_process_adapter()
7453 gst_adapter_distance_from_discont (demux->adapter); in gst_qtdemux_process_adapter()
7455 GST_DEBUG_OBJECT (demux, in gst_qtdemux_process_adapter()
7458 demux->offset, adapter_discont_offset, adapter_discont_dist); in gst_qtdemux_process_adapter()
7460 if (demux->upstream_format_is_time) { in gst_qtdemux_process_adapter()
7461 demux->moof_offset = adapter_discont_offset; in gst_qtdemux_process_adapter()
7462 if (demux->moof_offset != GST_BUFFER_OFFSET_NONE) in gst_qtdemux_process_adapter()
7463 demux->moof_offset += adapter_discont_dist; in gst_qtdemux_process_adapter()
7464 if (demux->moof_offset == GST_BUFFER_OFFSET_NONE) in gst_qtdemux_process_adapter()
7465 demux->moof_offset = demux->offset; in gst_qtdemux_process_adapter()
7467 demux->moof_offset = demux->offset; in gst_qtdemux_process_adapter()
7470 if (!qtdemux_parse_moof (demux, data, demux->neededbytes, in gst_qtdemux_process_adapter()
7471 demux->moof_offset, NULL)) { in gst_qtdemux_process_adapter()
7472 gst_adapter_unmap (demux->adapter); in gst_qtdemux_process_adapter()
7478 if (demux->mss_mode && !demux->exposed) { in gst_qtdemux_process_adapter()
7479 QTDEMUX_EXPOSE_LOCK (demux); in gst_qtdemux_process_adapter()
7480 qtdemux_expose_streams (demux); in gst_qtdemux_process_adapter()
7481 QTDEMUX_EXPOSE_UNLOCK (demux); in gst_qtdemux_process_adapter()
7484 gst_qtdemux_check_send_pending_segment (demux); in gst_qtdemux_process_adapter()
7486 GST_DEBUG_OBJECT (demux, "Discarding [moof]"); in gst_qtdemux_process_adapter()
7489 GST_DEBUG_OBJECT (demux, "Parsing [ftyp]"); in gst_qtdemux_process_adapter()
7490 qtdemux_parse_ftyp (demux, data, demux->neededbytes); in gst_qtdemux_process_adapter()
7492 GST_DEBUG_OBJECT (demux, "Parsing [uuid]"); in gst_qtdemux_process_adapter()
7493 qtdemux_parse_uuid (demux, data, demux->neededbytes); in gst_qtdemux_process_adapter()
7495 GST_DEBUG_OBJECT (demux, "Parsing [sidx]"); in gst_qtdemux_process_adapter()
7496 qtdemux_parse_sidx (demux, data, demux->neededbytes); in gst_qtdemux_process_adapter()
7505 GST_DEBUG_OBJECT (demux, in gst_qtdemux_process_adapter()
7510 GST_WARNING_OBJECT (demux, in gst_qtdemux_process_adapter()
7517 gst_adapter_unmap (demux->adapter); in gst_qtdemux_process_adapter()
7520 if (demux->mdatbuffer && QTDEMUX_N_STREAMS (demux)) { in gst_qtdemux_process_adapter()
7524 GST_DEBUG_OBJECT (demux, "We have n_streams:%d and mdatbuffer:%p", in gst_qtdemux_process_adapter()
7525 QTDEMUX_N_STREAMS (demux), demux->mdatbuffer); in gst_qtdemux_process_adapter()
7529 gst_adapter_flush (demux->adapter, demux->neededbytes); in gst_qtdemux_process_adapter()
7532 remaining_data_size = gst_adapter_available (demux->adapter); in gst_qtdemux_process_adapter()
7534 g_assert (demux->restoredata_buffer == NULL); in gst_qtdemux_process_adapter()
7535 demux->restoredata_buffer = in gst_qtdemux_process_adapter()
7536 gst_adapter_take_buffer (demux->adapter, remaining_data_size); in gst_qtdemux_process_adapter()
7537 demux->restoredata_offset = demux->offset + demux->neededbytes; in gst_qtdemux_process_adapter()
7538 GST_DEBUG_OBJECT (demux, in gst_qtdemux_process_adapter()
7541 demux->restoredata_offset); in gst_qtdemux_process_adapter()
7544 gst_adapter_push (demux->adapter, demux->mdatbuffer); in gst_qtdemux_process_adapter()
7545 demux->mdatbuffer = NULL; in gst_qtdemux_process_adapter()
7546 demux->offset = demux->mdatoffset; in gst_qtdemux_process_adapter()
7547 demux->neededbytes = next_entry_size (demux); in gst_qtdemux_process_adapter()
7548 demux->state = QTDEMUX_STATE_MOVIE; in gst_qtdemux_process_adapter()
7549 demux->mdatleft = gst_adapter_available (demux->adapter); in gst_qtdemux_process_adapter()
7550 demux->mdatsize = demux->mdatleft; in gst_qtdemux_process_adapter()
7552 GST_DEBUG_OBJECT (demux, "Carrying on normally"); in gst_qtdemux_process_adapter()
7553 gst_adapter_flush (demux->adapter, demux->neededbytes); in gst_qtdemux_process_adapter()
7556 if (demux->got_moov && demux->first_mdat != -1 in gst_qtdemux_process_adapter()
7557 && has_next_entry (demux)) { in gst_qtdemux_process_adapter()
7561 res = qtdemux_seek_offset (demux, demux->first_mdat); in gst_qtdemux_process_adapter()
7563 demux->offset = demux->first_mdat; in gst_qtdemux_process_adapter()
7565 GST_DEBUG_OBJECT (demux, "Seek back failed"); in gst_qtdemux_process_adapter()
7568 demux->offset += demux->neededbytes; in gst_qtdemux_process_adapter()
7570 demux->neededbytes = 16; in gst_qtdemux_process_adapter()
7571 demux->state = QTDEMUX_STATE_INITIAL; in gst_qtdemux_process_adapter()
7580 GST_DEBUG_OBJECT (demux, "Got our buffer at offset %" G_GUINT64_FORMAT, in gst_qtdemux_process_adapter()
7581 demux->offset); in gst_qtdemux_process_adapter()
7582 buf = gst_adapter_take_buffer (demux->adapter, demux->neededbytes); in gst_qtdemux_process_adapter()
7584 GST_DEBUG_OBJECT (demux, "mdatbuffer starts with %" GST_FOURCC_FORMAT, in gst_qtdemux_process_adapter()
7586 if (demux->mdatbuffer) in gst_qtdemux_process_adapter()
7587 demux->mdatbuffer = gst_buffer_append (demux->mdatbuffer, buf); in gst_qtdemux_process_adapter()
7589 demux->mdatbuffer = buf; in gst_qtdemux_process_adapter()
7590 demux->offset += demux->neededbytes; in gst_qtdemux_process_adapter()
7591 demux->neededbytes = 16; in gst_qtdemux_process_adapter()
7592 demux->state = QTDEMUX_STATE_INITIAL; in gst_qtdemux_process_adapter()
7593 gst_qtdemux_post_progress (demux, 1, 1); in gst_qtdemux_process_adapter()
7604 GST_DEBUG_OBJECT (demux, in gst_qtdemux_process_adapter()
7605 "BEGIN // in MOVIE for offset %" G_GUINT64_FORMAT, demux->offset); in gst_qtdemux_process_adapter()
7607 if (demux->fragmented) { in gst_qtdemux_process_adapter()
7608 GST_DEBUG_OBJECT (demux, "mdat remaining %" G_GUINT64_FORMAT, in gst_qtdemux_process_adapter()
7609 demux->mdatleft); in gst_qtdemux_process_adapter()
7610 if (G_LIKELY (demux->todrop < demux->mdatleft)) { in gst_qtdemux_process_adapter()
7613 if (G_UNLIKELY (demux->neededbytes > demux->mdatleft)) { in gst_qtdemux_process_adapter()
7614 GST_ELEMENT_ERROR (demux, STREAM, DEMUX, in gst_qtdemux_process_adapter()
7620 demux->mdatleft -= demux->neededbytes; in gst_qtdemux_process_adapter()
7622 GST_DEBUG_OBJECT (demux, "data atom emptied; resuming atom scan"); in gst_qtdemux_process_adapter()
7624 gst_qtdemux_drop_data (demux, demux->mdatleft); in gst_qtdemux_process_adapter()
7625 demux->mdatleft = 0; in gst_qtdemux_process_adapter()
7628 demux->state = QTDEMUX_STATE_INITIAL; in gst_qtdemux_process_adapter()
7629 demux->neededbytes = 16; in gst_qtdemux_process_adapter()
7632 if (demux->restoredata_buffer) { in gst_qtdemux_process_adapter()
7633 g_assert (gst_adapter_available (demux->adapter) == 0); in gst_qtdemux_process_adapter()
7635 gst_adapter_push (demux->adapter, demux->restoredata_buffer); in gst_qtdemux_process_adapter()
7636 demux->restoredata_buffer = NULL; in gst_qtdemux_process_adapter()
7637 demux->offset = demux->restoredata_offset; in gst_qtdemux_process_adapter()
7644 if (demux->todrop) { in gst_qtdemux_process_adapter()
7645 if (demux->cenc_aux_info_offset > 0) { in gst_qtdemux_process_adapter()
7649 GST_DEBUG_OBJECT (demux, "parsing cenc auxiliary info"); in gst_qtdemux_process_adapter()
7650 data = gst_adapter_map (demux->adapter, demux->todrop); in gst_qtdemux_process_adapter()
7651 gst_byte_reader_init (&br, data + 8, demux->todrop); in gst_qtdemux_process_adapter()
7652 if (!qtdemux_parse_cenc_aux_info (demux, in gst_qtdemux_process_adapter()
7653 QTDEMUX_NTH_STREAM (demux, 0), &br, in gst_qtdemux_process_adapter()
7654 demux->cenc_aux_info_sizes, demux->cenc_aux_sample_count)) { in gst_qtdemux_process_adapter()
7655 GST_ERROR_OBJECT (demux, "failed to parse cenc auxiliary info"); in gst_qtdemux_process_adapter()
7657 gst_adapter_unmap (demux->adapter); in gst_qtdemux_process_adapter()
7658 g_free (demux->cenc_aux_info_sizes); in gst_qtdemux_process_adapter()
7659 demux->cenc_aux_info_sizes = NULL; in gst_qtdemux_process_adapter()
7662 demux->cenc_aux_info_offset = 0; in gst_qtdemux_process_adapter()
7663 g_free (demux->cenc_aux_info_sizes); in gst_qtdemux_process_adapter()
7664 demux->cenc_aux_info_sizes = NULL; in gst_qtdemux_process_adapter()
7665 gst_adapter_unmap (demux->adapter); in gst_qtdemux_process_adapter()
7667 gst_qtdemux_drop_data (demux, demux->todrop); in gst_qtdemux_process_adapter()
7673 gst_qtdemux_check_send_pending_segment (demux); in gst_qtdemux_process_adapter()
7676 for (i = 0; i < QTDEMUX_N_STREAMS (demux); i++) { in gst_qtdemux_process_adapter()
7677 stream = QTDEMUX_NTH_STREAM (demux, i); in gst_qtdemux_process_adapter()
7683 GST_LOG_OBJECT (demux, in gst_qtdemux_process_adapter()
7690 if (stream->samples[stream->sample_index].offset == demux->offset) in gst_qtdemux_process_adapter()
7697 gst_qtdemux_stream_check_and_change_stsd_index (demux, stream); in gst_qtdemux_process_adapter()
7700 gst_qtdemux_configure_stream (demux, stream); in gst_qtdemux_process_adapter()
7707 GST_DEBUG_OBJECT (demux, "stream : %" GST_FOURCC_FORMAT, in gst_qtdemux_process_adapter()
7716 if (G_UNLIKELY (demux->segment.stop != -1 in gst_qtdemux_process_adapter()
7717 && demux->segment.stop <= pts && stream->on_keyframe) in gst_qtdemux_process_adapter()
7718 && !(demux->upstream_format_is_time && demux->segment.rate < 0)) { in gst_qtdemux_process_adapter()
7719 GST_DEBUG_OBJECT (demux, "we reached the end of our segment."); in gst_qtdemux_process_adapter()
7723 gst_adapter_flush (demux->adapter, demux->neededbytes); in gst_qtdemux_process_adapter()
7724 demux->offset += demux->neededbytes; in gst_qtdemux_process_adapter()
7728 for (i = 0; i < QTDEMUX_N_STREAMS (demux); i++) { in gst_qtdemux_process_adapter()
7729 if (!STREAM_IS_EOS (QTDEMUX_NTH_STREAM (demux, i))) { in gst_qtdemux_process_adapter()
7738 gst_adapter_take_buffer (demux->adapter, demux->neededbytes); in gst_qtdemux_process_adapter()
7743 ret = gst_qtdemux_decorate_and_push_buffer (demux, stream, outbuf, in gst_qtdemux_process_adapter()
7744 dts, pts, duration, keyframe, dts, demux->offset); in gst_qtdemux_process_adapter()
7748 GST_OBJECT_LOCK (demux); in gst_qtdemux_process_adapter()
7749 ret = gst_qtdemux_combine_flows (demux, stream, ret); in gst_qtdemux_process_adapter()
7750 GST_OBJECT_UNLOCK (demux); in gst_qtdemux_process_adapter()
7753 gst_adapter_flush (demux->adapter, demux->neededbytes); in gst_qtdemux_process_adapter()
7760 GST_LOG_OBJECT (demux, "increasing offset %" G_GUINT64_FORMAT " by %u", in gst_qtdemux_process_adapter()
7761 demux->offset, demux->neededbytes); in gst_qtdemux_process_adapter()
7762 demux->offset += demux->neededbytes; in gst_qtdemux_process_adapter()
7763 GST_LOG_OBJECT (demux, "offset is now %" G_GUINT64_FORMAT, in gst_qtdemux_process_adapter()
7764 demux->offset); in gst_qtdemux_process_adapter()
7768 GST_DEBUG_OBJECT (demux, "All streams are EOS, signal upstream"); in gst_qtdemux_process_adapter()
7769 demux->neededbytes = -1; in gst_qtdemux_process_adapter()
7773 if ((demux->neededbytes = next_entry_size (demux)) == -1) { in gst_qtdemux_process_adapter()
7774 if (demux->fragmented) { in gst_qtdemux_process_adapter()
7775 GST_DEBUG_OBJECT (demux, "(temporarily) out of fragmented samples"); in gst_qtdemux_process_adapter()
7777 demux->todrop = demux->mdatleft; in gst_qtdemux_process_adapter()
7778 demux->neededbytes = demux->todrop; in gst_qtdemux_process_adapter()
7794 if (ret == GST_FLOW_OK && demux->state == QTDEMUX_STATE_BUFFER_MDAT && in gst_qtdemux_process_adapter()
7795 gst_adapter_available (demux->adapter) <= demux->neededbytes) { in gst_qtdemux_process_adapter()
7796 gst_qtdemux_post_progress (demux, gst_adapter_available (demux->adapter), in gst_qtdemux_process_adapter()
7797 demux->neededbytes); in gst_qtdemux_process_adapter()
7806 GST_DEBUG_OBJECT (demux, "Stopping, combined return flow %s", in gst_qtdemux_process_adapter()
7812 GST_ELEMENT_ERROR (demux, STREAM, FAILED, (NULL), ("unknown stream found")); in gst_qtdemux_process_adapter()
7818 GST_DEBUG_OBJECT (demux, "no next entry, EOS"); in gst_qtdemux_process_adapter()
7824 GST_ELEMENT_ERROR (demux, STREAM, FAILED, in gst_qtdemux_process_adapter()
7825 (NULL), ("qtdemuxer invalid state %d", demux->state)); in gst_qtdemux_process_adapter()
7831 GST_ELEMENT_ERROR (demux, STREAM, FAILED, in gst_qtdemux_process_adapter()
7873 GstQTDemux *demux = GST_QTDEMUX (parent); in qtdemux_sink_activate_mode() local
7877 demux->pullbased = FALSE; in qtdemux_sink_activate_mode()
7882 demux->pullbased = TRUE; in qtdemux_sink_activate_mode()
9001 gst_qtdemux_stream_check_and_change_stsd_index (GstQTDemux * demux, in gst_qtdemux_stream_check_and_change_stsd_index() argument
9011 GST_ELEMENT_ERROR (demux, STREAM, DEMUX, in gst_qtdemux_stream_check_and_change_stsd_index()