2006-07-14 13:02:53 +00:00
|
|
|
/* GStreamer ASF/WMV/WMA demuxer
|
2002-10-17 21:41:47 +00:00
|
|
|
* Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
|
2006-07-14 13:02:53 +00:00
|
|
|
* Copyright (C) <2006> Tim-Philipp Müller <tim centricular net>
|
2002-10-17 21:41:47 +00:00
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Library General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Library General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Library General Public
|
|
|
|
* License along with this library; if not, write to the
|
|
|
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
|
|
* Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
2003-06-29 19:46:09 +00:00
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
#include "config.h"
|
|
|
|
#endif
|
2004-05-02 18:07:39 +00:00
|
|
|
|
configure.ac: bump required gstreamer version to 0.8.1.1 because of following changes [--ds]
Original commit message from CVS:
reviewed by David Schleef
* configure.ac: bump required gstreamer version to 0.8.1.1
because of following changes [--ds]
* gst-libs/gst/riff/riff-read.c: Include gst/gstutils.h.
(gst_riff_peek_head, gst_riff_peek_list, gst_riff_read_list)
(gst_riff_read_header): Use GST_READ_UINT*
macros to access possibly unaligned memory.
* gst/typefind/gsttypefindfunctions.c: Include gst/gstutils.h.
(mp3_type_find): Use GST_READ_UINT*
macros to access possibly unaligned memory.
(mp3_type_find, mpeg1_parse_header, qt_type_find)
(speex_type_find): Likewise
* gst/tags/gstvorbistag.c: (ADVANCE): Likewise
* gst/qtdemux/qtdemux.c: Include stdlib.h (needed by realloc).
(QTDEMUX_GUINT32_GET, QTDEMUX_GUINT16_GET, QTDEMUX_FP32_GET)
(QTDEMUX_FP16_GET, QTDEMUX_FOURCC_GET)
(gst_qtdemux_loop_header, gst_qtdemux_loop_header)
(qtdemux_node_dump_foreach, qtdemux_tree_get_child_by_type)
(qtdemux_tree_get_sibling_by_type): Use GST_READ_UINT*
macros to access possibly unaligned memory.
* gst/mpegstream/gstmpegpacketize.c: (parse_generic, parse_chunk):
Likewise.
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead)
(gst_mpeg_demux_parse_packet, gst_mpeg_demux_parse_pes): Likewise.
* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain):
Likewise.
* gst/mpeg2sub/gstmpeg2subt.c: (GST_BUFFER_DATA)
(gst_mpeg2subt_chain_subtitle): Likewise.
* gst/mpeg1videoparse/gstmp1videoparse.c: (mp1videoparse_parse_seq)
(gst_mp1videoparse_time_code, gst_mp1videoparse_real_chain):
Likewise.
* gst/mpeg1sys/buffer.c: (mpeg1mux_buffer_update_audio_info):
Likewise.
* gst/cdxaparse/gstcdxaparse.c: (gst_bytestream_peek_bytes):
Likewise.
* gst/asfdemux/gstasfdemux.c: (_read_var_length, _read_uint):
Likewise.
2004-04-20 21:04:22 +00:00
|
|
|
#include <gst/gstutils.h>
|
2004-10-01 10:50:57 +00:00
|
|
|
#include <gst/riff/riff-media.h>
|
2006-07-31 09:53:05 +00:00
|
|
|
#include <gst/gst-i18n-plugin.h>
|
2004-05-11 16:25:04 +00:00
|
|
|
#include <string.h>
|
2004-05-02 18:07:39 +00:00
|
|
|
|
2002-10-17 21:41:47 +00:00
|
|
|
#include "gstasfdemux.h"
|
2003-01-31 21:41:07 +00:00
|
|
|
#include "asfheaders.h"
|
2002-10-17 21:41:47 +00:00
|
|
|
|
2003-12-22 01:47:08 +00:00
|
|
|
static GstStaticPadTemplate gst_asf_demux_sink_template =
|
2004-03-14 22:34:30 +00:00
|
|
|
GST_STATIC_PAD_TEMPLATE ("sink",
|
|
|
|
GST_PAD_SINK,
|
|
|
|
GST_PAD_ALWAYS,
|
|
|
|
GST_STATIC_CAPS ("video/x-ms-asf")
|
|
|
|
);
|
2004-01-27 01:27:04 +00:00
|
|
|
|
2006-08-22 15:52:16 +00:00
|
|
|
static GstStaticPadTemplate audio_src_template =
|
|
|
|
GST_STATIC_PAD_TEMPLATE ("audio_%02d",
|
|
|
|
GST_PAD_SRC,
|
|
|
|
GST_PAD_SOMETIMES,
|
|
|
|
GST_STATIC_CAPS_ANY);
|
|
|
|
|
|
|
|
static GstStaticPadTemplate video_src_template =
|
|
|
|
GST_STATIC_PAD_TEMPLATE ("video_%02d",
|
|
|
|
GST_PAD_SRC,
|
|
|
|
GST_PAD_SOMETIMES,
|
|
|
|
GST_STATIC_CAPS_ANY);
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
/* size of an ASF object header, ie. GUID (16 bytes) + object size (8 bytes) */
|
|
|
|
#define ASF_OBJECT_HEADER_SIZE (16+8)
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
/* FIXME: get rid of this */
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* abuse this GstFlowReturn enum for internal usage */
|
|
|
|
#define ASF_FLOW_NEED_MORE_DATA 99
|
|
|
|
|
|
|
|
#define gst_asf_get_flow_name(flow) \
|
|
|
|
(flow == ASF_FLOW_NEED_MORE_DATA) ? \
|
|
|
|
"need-more-data" : gst_flow_get_name (flow)
|
|
|
|
|
2004-01-27 01:27:04 +00:00
|
|
|
GST_DEBUG_CATEGORY_STATIC (asf_debug);
|
|
|
|
#define GST_CAT_DEFAULT asf_debug
|
2004-03-14 22:34:30 +00:00
|
|
|
|
2005-09-02 15:43:54 +00:00
|
|
|
static GstStateChangeReturn gst_asf_demux_change_state (GstElement * element,
|
|
|
|
GstStateChange transition);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static gboolean gst_asf_demux_element_send_event (GstElement * element,
|
|
|
|
GstEvent * event);
|
|
|
|
static gboolean gst_asf_demux_send_event_unlocked (GstASFDemux * demux,
|
|
|
|
GstEvent * event);
|
|
|
|
static gboolean gst_asf_demux_handle_src_query (GstPad * pad, GstQuery * query);
|
|
|
|
static const GstQueryType *gst_asf_demux_get_src_query_types (GstPad * pad);
|
|
|
|
static GstFlowReturn gst_asf_demux_chain (GstPad * pad, GstBuffer * buf);
|
|
|
|
static gboolean gst_asf_demux_sink_event (GstPad * pad, GstEvent * event);
|
|
|
|
static GstFlowReturn gst_asf_demux_process_object (GstASFDemux * demux,
|
|
|
|
guint8 ** p_data, guint64 * p_size);
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
static void
|
|
|
|
gst_asf_demux_process_queued_extended_stream_objects (GstASFDemux * demux);
|
|
|
|
static GstFlowReturn gst_asf_demux_handle_data (GstASFDemux * demux,
|
|
|
|
guint8 ** p_data, guint64 * p_size);
|
2002-10-17 21:41:47 +00:00
|
|
|
|
2006-05-06 00:18:31 +00:00
|
|
|
GST_BOILERPLATE (GstASFDemux, gst_asf_demux, GstElement, GST_TYPE_ELEMENT);
|
2002-10-17 21:41:47 +00:00
|
|
|
|
2006-05-06 00:18:31 +00:00
|
|
|
static void
|
|
|
|
gst_asf_demux_base_init (gpointer g_class)
|
2003-11-01 11:28:53 +00:00
|
|
|
{
|
|
|
|
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
|
2004-05-02 18:07:39 +00:00
|
|
|
static GstElementDetails gst_asf_demux_details = {
|
|
|
|
"ASF Demuxer",
|
|
|
|
"Codec/Demuxer",
|
|
|
|
"Demultiplexes ASF Streams",
|
|
|
|
"Owen Fraser-Green <owen@discobabe.net>"
|
|
|
|
};
|
2003-11-01 11:28:53 +00:00
|
|
|
|
2006-08-22 15:52:16 +00:00
|
|
|
gst_element_class_add_pad_template (element_class,
|
|
|
|
gst_static_pad_template_get (&audio_src_template));
|
|
|
|
gst_element_class_add_pad_template (element_class,
|
|
|
|
gst_static_pad_template_get (&video_src_template));
|
2004-03-14 22:34:30 +00:00
|
|
|
gst_element_class_add_pad_template (element_class,
|
2003-12-22 01:47:08 +00:00
|
|
|
gst_static_pad_template_get (&gst_asf_demux_sink_template));
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
2003-11-01 11:28:53 +00:00
|
|
|
gst_element_class_set_details (element_class, &gst_asf_demux_details);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
|
|
|
GST_DEBUG_CATEGORY_INIT (asf_debug, "asfdemux", 0, "asf demuxer element");
|
2003-11-01 11:28:53 +00:00
|
|
|
}
|
|
|
|
|
2002-10-17 21:41:47 +00:00
|
|
|
static void
|
2004-03-14 22:34:30 +00:00
|
|
|
gst_asf_demux_class_init (GstASFDemuxClass * klass)
|
2002-10-17 21:41:47 +00:00
|
|
|
{
|
|
|
|
GstElementClass *gstelement_class;
|
|
|
|
|
2004-03-14 22:34:30 +00:00
|
|
|
gstelement_class = (GstElementClass *) klass;
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gstelement_class->change_state =
|
|
|
|
GST_DEBUG_FUNCPTR (gst_asf_demux_change_state);
|
|
|
|
gstelement_class->send_event =
|
|
|
|
GST_DEBUG_FUNCPTR (gst_asf_demux_element_send_event);
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_asf_demux_init (GstASFDemux * demux, GstASFDemuxClass * klass)
|
2002-10-17 21:41:47 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
demux->sinkpad =
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
gst_pad_new_from_static_template (&gst_asf_demux_sink_template, "sink");
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_pad_set_chain_function (demux->sinkpad,
|
|
|
|
GST_DEBUG_FUNCPTR (gst_asf_demux_chain));
|
|
|
|
gst_pad_set_event_function (demux->sinkpad,
|
|
|
|
GST_DEBUG_FUNCPTR (gst_asf_demux_sink_event));
|
|
|
|
gst_element_add_pad (GST_ELEMENT (demux), demux->sinkpad);
|
2002-10-17 21:41:47 +00:00
|
|
|
|
2003-01-31 18:23:38 +00:00
|
|
|
/* We should zero everything to be on the safe side */
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
demux->num_audio_streams = 0;
|
|
|
|
demux->num_video_streams = 0;
|
|
|
|
demux->num_streams = 0;
|
2003-01-31 18:23:38 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
demux->taglist = NULL;
|
|
|
|
demux->state = GST_ASF_DEMUX_STATE_HEADER;
|
|
|
|
}
|
|
|
|
|
|
|
|
static gboolean
|
|
|
|
gst_asf_demux_sink_event (GstPad * pad, GstEvent * event)
|
|
|
|
{
|
|
|
|
GstASFDemux *demux;
|
|
|
|
gboolean ret = TRUE;
|
|
|
|
|
|
|
|
demux = GST_ASF_DEMUX (gst_pad_get_parent (pad));
|
|
|
|
|
2006-04-07 09:14:26 +00:00
|
|
|
GST_LOG_OBJECT (demux, "handling %s event", GST_EVENT_TYPE_NAME (event));
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
switch (GST_EVENT_TYPE (event)) {
|
|
|
|
case GST_EVENT_NEWSEGMENT:{
|
|
|
|
GstFormat newsegment_format;
|
|
|
|
gint64 newsegment_start;
|
|
|
|
guint n;
|
|
|
|
|
|
|
|
gst_event_parse_new_segment (event, NULL, NULL, &newsegment_format,
|
|
|
|
&newsegment_start, NULL, NULL);
|
|
|
|
|
2006-10-09 12:09:14 +00:00
|
|
|
if (newsegment_format != GST_FORMAT_BYTES) {
|
|
|
|
GST_WARNING_OBJECT (demux, "newsegment format not BYTES, ignoring");
|
|
|
|
gst_event_unref (event);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
g_assert (newsegment_start >= 0);
|
|
|
|
|
|
|
|
GST_OBJECT_LOCK (demux);
|
|
|
|
demux->pts = 0;
|
|
|
|
gst_adapter_clear (demux->adapter);
|
|
|
|
|
|
|
|
for (n = 0; n < demux->num_streams; n++) {
|
|
|
|
if (demux->stream[n].frag_offset > 0) {
|
|
|
|
gst_buffer_unref (demux->stream[n].payload);
|
|
|
|
demux->stream[n].frag_offset = 0;
|
|
|
|
}
|
|
|
|
if (demux->stream[n].cache) {
|
|
|
|
gst_buffer_unref (demux->stream[n].cache);
|
|
|
|
}
|
|
|
|
demux->stream[n].need_newsegment = TRUE;
|
|
|
|
demux->stream[n].last_pts = GST_CLOCK_TIME_NONE;
|
|
|
|
demux->stream[n].sequence = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
GST_OBJECT_UNLOCK (demux);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
case GST_EVENT_FLUSH_START:
|
|
|
|
case GST_EVENT_FLUSH_STOP:{
|
|
|
|
#if 0
|
|
|
|
/* just drop these events, we
|
|
|
|
* send our own when seeking */
|
|
|
|
gst_event_unref (event);
|
|
|
|
#endif
|
|
|
|
ret = gst_pad_event_default (pad, event);
|
|
|
|
break;
|
|
|
|
}
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
case GST_EVENT_EOS:{
|
2007-02-01 11:12:25 +00:00
|
|
|
if (demux->state == GST_ASF_DEMUX_STATE_HEADER) {
|
|
|
|
GST_ELEMENT_ERROR (demux, STREAM, DEMUX,
|
|
|
|
(_("This stream contains no data.")),
|
|
|
|
("got eos and didn't receive a complete header object"));
|
|
|
|
break;
|
|
|
|
}
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_OBJECT_LOCK (demux);
|
|
|
|
gst_adapter_clear (demux->adapter);
|
|
|
|
GST_OBJECT_UNLOCK (demux);
|
2006-02-17 17:58:44 +00:00
|
|
|
gst_asf_demux_send_event_unlocked (demux, event);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
break;
|
|
|
|
}
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
default:
|
|
|
|
ret = gst_pad_event_default (pad, event);
|
|
|
|
break;
|
|
|
|
}
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_object_unref (demux);
|
|
|
|
return ret;
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static gboolean
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_asf_demux_handle_seek_event (GstASFDemux * demux, GstEvent * event)
|
2002-10-17 21:41:47 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GstSegment segment;
|
|
|
|
GstSeekFlags flags;
|
|
|
|
GstSeekType cur_type, stop_type;
|
|
|
|
GstFormat format;
|
|
|
|
gboolean only_need_update;
|
|
|
|
gboolean keyunit_sync;
|
|
|
|
gboolean accurate;
|
|
|
|
gboolean flush;
|
|
|
|
gboolean ret = FALSE;
|
|
|
|
gdouble rate;
|
|
|
|
gint64 cur, stop;
|
|
|
|
gint64 seek_offset;
|
2006-12-15 17:54:48 +00:00
|
|
|
gint64 seek_time;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
guint64 seek_packet;
|
|
|
|
|
2006-12-15 17:54:48 +00:00
|
|
|
if (demux->seekable == FALSE || demux->packet_size == 0 ||
|
|
|
|
demux->num_packets == 0 || demux->play_time == 0) {
|
|
|
|
GST_LOG_OBJECT (demux, "stream is not seekable");
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur,
|
|
|
|
&stop_type, &stop);
|
|
|
|
|
|
|
|
if (format != GST_FORMAT_TIME) {
|
2006-12-15 17:54:48 +00:00
|
|
|
GST_LOG_OBJECT (demux, "seeking is only supported in TIME format");
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (rate <= 0.0) {
|
2006-12-15 17:54:48 +00:00
|
|
|
GST_LOG_OBJECT (demux, "backward playback is not supported yet");
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
return FALSE;
|
|
|
|
}
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* FIXME: this seeking code is very very broken. Do not copy
|
|
|
|
* it under any circumstances, unless you want to make Wim cry */
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
flush = ((flags & GST_SEEK_FLAG_FLUSH) == GST_SEEK_FLAG_FLUSH);
|
|
|
|
accurate = ((flags & GST_SEEK_FLAG_ACCURATE) == GST_SEEK_FLAG_ACCURATE);
|
|
|
|
keyunit_sync = ((flags & GST_SEEK_FLAG_KEY_UNIT) == GST_SEEK_FLAG_KEY_UNIT);
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* operating on copy of segment until we know the seek worked */
|
|
|
|
GST_OBJECT_LOCK (demux);
|
|
|
|
segment = demux->segment;
|
|
|
|
GST_OBJECT_UNLOCK (demux);
|
|
|
|
|
|
|
|
gst_segment_set_seek (&segment, rate, format, flags, cur_type,
|
|
|
|
cur, stop_type, stop, &only_need_update);
|
|
|
|
|
|
|
|
GST_DEBUG ("trying to seek to time %" GST_TIME_FORMAT,
|
|
|
|
GST_TIME_ARGS (segment.start));
|
|
|
|
|
2006-12-15 17:54:48 +00:00
|
|
|
seek_time = segment.start;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
2006-12-15 17:54:48 +00:00
|
|
|
/* Hackety hack, this sucks. We just seek to an earlier position
|
|
|
|
* and let the sinks throw away the stuff before the segment start */
|
|
|
|
if (flush && (accurate || keyunit_sync)) {
|
|
|
|
seek_time -= 5 * GST_SECOND;
|
|
|
|
if (seek_time < 0)
|
|
|
|
seek_time = 0;
|
|
|
|
}
|
2004-03-14 22:34:30 +00:00
|
|
|
|
2006-12-15 17:54:48 +00:00
|
|
|
seek_packet = demux->num_packets * seek_time / demux->play_time;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
2006-12-15 17:54:48 +00:00
|
|
|
if (seek_packet > demux->num_packets)
|
|
|
|
seek_packet = demux->num_packets;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
2006-12-15 17:54:48 +00:00
|
|
|
seek_offset = seek_packet * demux->packet_size + demux->data_offset;
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_LOG ("seeking to byte offset %" G_GINT64_FORMAT, seek_offset);
|
|
|
|
|
|
|
|
ret = gst_pad_push_event (demux->sinkpad,
|
|
|
|
gst_event_new_seek (1.0, GST_FORMAT_BYTES,
|
|
|
|
flags | GST_SEEK_FLAG_ACCURATE,
|
|
|
|
GST_SEEK_TYPE_SET, seek_offset, GST_SEEK_TYPE_NONE, -1));
|
|
|
|
|
|
|
|
if (ret == FALSE) {
|
|
|
|
GST_WARNING ("upstream element failed to seek!");
|
|
|
|
goto done;
|
|
|
|
}
|
|
|
|
|
|
|
|
GST_OBJECT_LOCK (demux);
|
|
|
|
demux->segment = segment;
|
|
|
|
demux->packet = seek_packet;
|
|
|
|
GST_OBJECT_UNLOCK (demux);
|
|
|
|
|
|
|
|
done:
|
|
|
|
|
|
|
|
return ret;
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static gboolean
|
|
|
|
gst_asf_demux_handle_src_event (GstPad * pad, GstEvent * event)
|
2002-10-17 21:41:47 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GstASFDemux *demux;
|
|
|
|
gboolean ret;
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
demux = GST_ASF_DEMUX (gst_pad_get_parent (pad));
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_DEBUG ("handling %s event on source pad %s",
|
|
|
|
GST_EVENT_TYPE_NAME (event), GST_PAD_NAME (pad));
|
2004-12-10 21:11:33 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
switch (GST_EVENT_TYPE (event)) {
|
|
|
|
case GST_EVENT_SEEK:
|
|
|
|
ret = gst_asf_demux_handle_seek_event (demux, event);
|
|
|
|
gst_event_unref (event);
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
break;
|
|
|
|
default:
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
ret = gst_pad_event_default (pad, event);
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
break;
|
|
|
|
}
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
|
|
|
gst_object_unref (demux);
|
|
|
|
return ret;
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
static inline guint32
|
|
|
|
gst_asf_demux_identify_guid (const ASFGuidHash * guids, ASFGuid * guid)
|
2002-10-17 21:41:47 +00:00
|
|
|
{
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
guint32 ret;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
ret = gst_asf_identify_guid (guids, guid);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GST_LOG ("%s 0x%08x-0x%08x-0x%08x-0x%08x",
|
|
|
|
gst_asf_get_guid_nick (guids, ret),
|
|
|
|
guid->v1, guid->v2, guid->v3, guid->v4);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
return ret;
|
|
|
|
}
|
2002-10-17 21:41:47 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
AsfObjectID id;
|
|
|
|
guint64 size;
|
|
|
|
} AsfObject;
|
|
|
|
|
|
|
|
static gboolean
|
|
|
|
asf_demux_peek_object (GstASFDemux * demux, const guint8 * data,
|
|
|
|
guint data_len, AsfObject * object)
|
|
|
|
{
|
|
|
|
ASFGuid guid;
|
|
|
|
|
|
|
|
if (data_len < ASF_OBJECT_HEADER_SIZE)
|
|
|
|
return FALSE;
|
|
|
|
|
|
|
|
guid.v1 = GST_READ_UINT32_LE (data + 0);
|
|
|
|
guid.v2 = GST_READ_UINT32_LE (data + 4);
|
|
|
|
guid.v3 = GST_READ_UINT32_LE (data + 8);
|
|
|
|
guid.v4 = GST_READ_UINT32_LE (data + 12);
|
|
|
|
|
|
|
|
object->size = GST_READ_UINT64_LE (data + 16);
|
|
|
|
|
|
|
|
/* FIXME: make asf_demux_identify_object_guid() */
|
|
|
|
object->id = gst_asf_demux_identify_guid (asf_object_guids, &guid);
|
|
|
|
if (object->id == ASF_OBJ_UNDEFINED) {
|
|
|
|
GST_WARNING_OBJECT (demux, "Unknown object %08x-%08x-%08x-%08x",
|
|
|
|
guid.v1, guid.v2, guid.v3, guid.v4);
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
2004-03-14 22:34:30 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
return TRUE;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
}
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static GstFlowReturn
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
gst_asf_demux_chain_headers (GstASFDemux * demux)
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
{
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GstFlowReturn flow;
|
|
|
|
AsfObject obj, data_obj;
|
|
|
|
guint8 *header_data, *data = NULL;
|
|
|
|
guint64 header_size;
|
2004-03-14 22:34:30 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
data = (guint8 *) gst_adapter_peek (demux->adapter, ASF_OBJECT_HEADER_SIZE);
|
|
|
|
if (data == NULL)
|
|
|
|
goto need_more_data;
|
2002-10-17 21:41:47 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
asf_demux_peek_object (demux, data, ASF_OBJECT_HEADER_SIZE, &obj);
|
|
|
|
if (obj.id != ASF_OBJ_HEADER)
|
|
|
|
goto wrong_type;
|
2004-03-14 22:34:30 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GST_LOG_OBJECT (demux, "header size = %u", (guint) obj.size);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
/* + 50 for non-packet data at beginning of ASF_OBJ_DATA */
|
|
|
|
if (gst_adapter_available (demux->adapter) < obj.size + 50)
|
|
|
|
goto need_more_data;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
data = gst_adapter_take (demux->adapter, obj.size + 50);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
header_data = data;
|
|
|
|
header_size = obj.size;
|
|
|
|
flow = gst_asf_demux_process_object (demux, &header_data, &header_size);
|
|
|
|
if (flow != GST_FLOW_OK)
|
|
|
|
goto parse_failed;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
/* calculate where the packet data starts */
|
|
|
|
demux->data_offset = obj.size + 50;
|
|
|
|
/* demux->offset = demux->data_offset; */
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
/* now skip forward to the beginning of ASF_OBJ_DATA */
|
|
|
|
asf_demux_peek_object (demux, data + obj.size, 50, &data_obj);
|
|
|
|
if (data_obj.id != ASF_OBJ_DATA) {
|
|
|
|
GST_WARNING_OBJECT (demux, "headers not followed by a DATA object");
|
|
|
|
goto wrong_type;
|
|
|
|
}
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
/* demux->index_offset = 0; */
|
|
|
|
demux->data_size = data_obj.size - 50;
|
|
|
|
demux->packet = 0;
|
|
|
|
|
|
|
|
/* FIXME: num_packets is invalid if the broadcast flag in file obj is set */
|
|
|
|
demux->num_packets =
|
|
|
|
GST_READ_UINT64_LE (data + obj.size + ASF_OBJECT_HEADER_SIZE + 16);
|
|
|
|
|
|
|
|
if (demux->num_packets == 0)
|
|
|
|
demux->seekable = FALSE;
|
|
|
|
|
|
|
|
/* process pending stream objects and create pads for those */
|
|
|
|
gst_asf_demux_process_queued_extended_stream_objects (demux);
|
|
|
|
gst_element_no_more_pads (GST_ELEMENT (demux));
|
|
|
|
|
|
|
|
if (demux->num_streams == 0)
|
|
|
|
goto no_streams;
|
|
|
|
|
|
|
|
GST_INFO_OBJECT (demux, "Stream has %" G_GUINT64_FORMAT " packets, "
|
|
|
|
"data_offset=%" G_GINT64_FORMAT, demux->num_packets, demux->data_offset);
|
|
|
|
|
|
|
|
g_free (data);
|
|
|
|
demux->state = GST_ASF_DEMUX_STATE_DATA;
|
|
|
|
|
|
|
|
return GST_FLOW_OK;
|
|
|
|
|
|
|
|
/* NON-FATAL */
|
|
|
|
need_more_data:
|
|
|
|
{
|
|
|
|
GST_LOG_OBJECT (demux, "not enough data in adapter yet");
|
|
|
|
return GST_FLOW_OK;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
}
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
/* ERRORS */
|
|
|
|
wrong_type:
|
|
|
|
{
|
|
|
|
GST_ELEMENT_ERROR (demux, STREAM, WRONG_TYPE, (NULL),
|
|
|
|
("This doesn't seem to be an ASF file"));
|
|
|
|
g_free (data);
|
|
|
|
return GST_FLOW_ERROR;
|
|
|
|
}
|
|
|
|
no_streams:
|
|
|
|
parse_failed:
|
|
|
|
{
|
|
|
|
GST_ELEMENT_ERROR (demux, STREAM, DEMUX, (NULL),
|
|
|
|
("header parsing failed, or no streams found, flow = %s",
|
|
|
|
gst_flow_get_name (flow)));
|
|
|
|
g_free (data);
|
|
|
|
return GST_FLOW_ERROR;
|
|
|
|
}
|
|
|
|
}
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
static GstFlowReturn
|
|
|
|
gst_asf_demux_chain (GstPad * pad, GstBuffer * buf)
|
|
|
|
{
|
|
|
|
GstFlowReturn ret = GST_FLOW_OK;
|
|
|
|
GstASFDemux *demux;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
demux = GST_ASF_DEMUX (GST_PAD_PARENT (pad));
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GST_LOG_OBJECT (demux, "buffer: size=%u, offset=%" G_GINT64_FORMAT,
|
|
|
|
GST_BUFFER_SIZE (buf), GST_BUFFER_OFFSET (buf));
|
|
|
|
|
|
|
|
gst_adapter_push (demux->adapter, buf);
|
|
|
|
|
|
|
|
switch (demux->state) {
|
|
|
|
case GST_ASF_DEMUX_STATE_HEADER:{
|
|
|
|
ret = gst_asf_demux_chain_headers (demux);
|
|
|
|
if (demux->state != GST_ASF_DEMUX_STATE_DATA)
|
|
|
|
break;
|
|
|
|
/* otherwise fall through */
|
|
|
|
}
|
|
|
|
case GST_ASF_DEMUX_STATE_DATA:{
|
|
|
|
while (gst_adapter_available (demux->adapter) >= demux->packet_size) {
|
|
|
|
guint64 data_size;
|
|
|
|
guint8 *data;
|
|
|
|
|
|
|
|
data_size = demux->packet_size;
|
|
|
|
data = (guint8 *) gst_adapter_peek (demux->adapter, data_size);
|
|
|
|
g_assert (data != NULL);
|
|
|
|
|
|
|
|
GST_LOG_OBJECT (demux, "packet %u/%u", (guint) demux->packet,
|
|
|
|
(guint) demux->num_packets);
|
|
|
|
|
|
|
|
ret = gst_asf_demux_handle_data (demux, &data, &data_size);
|
|
|
|
|
|
|
|
/* FIXME: check if this can happen, shouldn't really, should it? */
|
|
|
|
if (ret == ASF_FLOW_NEED_MORE_DATA) {
|
|
|
|
GST_DEBUG_OBJECT (demux, "not flushing, flow was need-more-data");
|
|
|
|
|
|
|
|
/* FIXME: we always know the packet size, this code is weird */
|
|
|
|
/* if we know the packet size and still do a
|
|
|
|
* short read, then something is fishy */
|
|
|
|
/*
|
|
|
|
GST_ELEMENT_ERROR (demux, STREAM, DEMUX,
|
|
|
|
("Error parsing packet"),
|
|
|
|
("Unexpected short read in packet at offset %" G_GINT64_FORMAT,
|
|
|
|
gst_asf_demux_get_current_offset (demux, NULL)));
|
|
|
|
|
|
|
|
ret = GST_FLOW_ERROR;
|
|
|
|
*/
|
|
|
|
gst_adapter_flush (demux->adapter, demux->packet_size);
|
|
|
|
ret = GST_FLOW_OK;
|
|
|
|
break; /* bail out */
|
|
|
|
} else {
|
|
|
|
GST_DEBUG ("flushing packet (%u bytes)", demux->packet_size);
|
|
|
|
gst_adapter_flush (demux->adapter, demux->packet_size);
|
|
|
|
}
|
|
|
|
/* FIXME: ++packet */
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
default:
|
|
|
|
g_assert_not_reached ();
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
/* FIXME: eradicate ASF_FLOW_NEED_MORE_DATA */
|
|
|
|
|
|
|
|
if (ret != GST_FLOW_OK)
|
|
|
|
GST_DEBUG_OBJECT (demux, "flow: %s", gst_flow_get_name (ret));
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
2002-10-17 21:41:47 +00:00
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static inline gboolean
|
|
|
|
gst_asf_demux_skip_bytes (guint num_bytes, guint8 ** p_data, guint64 * p_size)
|
|
|
|
{
|
|
|
|
if (*p_size < num_bytes)
|
|
|
|
return FALSE;
|
|
|
|
|
|
|
|
*p_data += num_bytes;
|
|
|
|
*p_size -= num_bytes;
|
|
|
|
return TRUE;
|
2004-01-27 01:27:04 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static inline guint8
|
|
|
|
gst_asf_demux_get_uint8 (guint8 ** p_data, guint64 * p_size)
|
2004-01-27 01:27:04 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
guint8 ret;
|
|
|
|
|
|
|
|
g_assert (*p_size >= 1);
|
|
|
|
ret = GST_READ_UINT8 (*p_data);
|
|
|
|
*p_data += sizeof (guint8);
|
|
|
|
*p_size -= sizeof (guint8);
|
|
|
|
return ret;
|
2004-01-27 01:27:04 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static inline guint16
|
|
|
|
gst_asf_demux_get_uint16 (guint8 ** p_data, guint64 * p_size)
|
2004-01-27 01:27:04 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
guint16 ret;
|
|
|
|
|
|
|
|
g_assert (*p_size >= 2);
|
|
|
|
ret = GST_READ_UINT16_LE (*p_data);
|
|
|
|
*p_data += sizeof (guint16);
|
|
|
|
*p_size -= sizeof (guint16);
|
|
|
|
return ret;
|
2004-01-27 01:27:04 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static inline guint32
|
|
|
|
gst_asf_demux_get_uint32 (guint8 ** p_data, guint64 * p_size)
|
2004-01-27 01:27:04 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
guint32 ret;
|
|
|
|
|
|
|
|
g_assert (*p_size >= 4);
|
|
|
|
ret = GST_READ_UINT32_LE (*p_data);
|
|
|
|
*p_data += sizeof (guint32);
|
|
|
|
*p_size -= sizeof (guint32);
|
|
|
|
return ret;
|
2004-01-27 01:27:04 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static inline guint64
|
|
|
|
gst_asf_demux_get_uint64 (guint8 ** p_data, guint64 * p_size)
|
2004-01-27 01:27:04 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
guint64 ret;
|
|
|
|
|
|
|
|
g_assert (*p_size >= 8);
|
|
|
|
ret = GST_READ_UINT64_LE (*p_data);
|
|
|
|
*p_data += sizeof (guint64);
|
|
|
|
*p_size -= sizeof (guint64);
|
|
|
|
return ret;
|
2004-01-27 01:27:04 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static inline guint32
|
|
|
|
gst_asf_demux_get_var_length (guint8 type, guint8 ** p_data, guint64 * p_size)
|
2004-01-27 01:27:04 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
switch (type) {
|
|
|
|
case 0:
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
case 1:
|
|
|
|
g_assert (*p_size >= 1);
|
|
|
|
return gst_asf_demux_get_uint8 (p_data, p_size);
|
|
|
|
|
|
|
|
case 2:
|
|
|
|
g_assert (*p_size >= 2);
|
|
|
|
return gst_asf_demux_get_uint16 (p_data, p_size);
|
|
|
|
|
|
|
|
case 3:
|
|
|
|
g_assert (*p_size >= 4);
|
|
|
|
return gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
g_assert_not_reached ();
|
2004-01-27 01:27:04 +00:00
|
|
|
}
|
|
|
|
|
2004-05-18 01:38:49 +00:00
|
|
|
static gboolean
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_asf_demux_get_buffer (GstBuffer ** p_buf, guint num_bytes_to_read,
|
|
|
|
guint8 ** p_data, guint64 * p_size)
|
2004-05-18 01:38:49 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
*p_buf = NULL;
|
|
|
|
|
|
|
|
if (*p_size < num_bytes_to_read)
|
|
|
|
return FALSE;
|
|
|
|
|
|
|
|
*p_buf = gst_buffer_new_and_alloc (num_bytes_to_read);
|
|
|
|
memcpy (GST_BUFFER_DATA (*p_buf), *p_data, num_bytes_to_read);
|
|
|
|
*p_data += num_bytes_to_read;
|
|
|
|
*p_size -= num_bytes_to_read;
|
|
|
|
return TRUE;
|
2004-05-18 01:38:49 +00:00
|
|
|
}
|
|
|
|
|
2004-01-27 01:27:04 +00:00
|
|
|
static gboolean
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_asf_demux_get_bytes (guint8 ** p_buf, guint num_bytes_to_read,
|
|
|
|
guint8 ** p_data, guint64 * p_size)
|
2004-01-27 01:27:04 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
*p_buf = NULL;
|
|
|
|
|
|
|
|
if (*p_size < num_bytes_to_read)
|
|
|
|
return FALSE;
|
|
|
|
|
|
|
|
*p_buf = g_memdup (*p_data, num_bytes_to_read);
|
|
|
|
*p_data += num_bytes_to_read;
|
|
|
|
*p_size -= num_bytes_to_read;
|
|
|
|
return TRUE;
|
2004-01-27 01:27:04 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static gboolean
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_asf_demux_get_string (gchar ** p_str, guint16 * p_strlen,
|
|
|
|
guint8 ** p_data, guint64 * p_size)
|
2004-01-27 01:27:04 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
guint16 s_length;
|
|
|
|
guint8 *s;
|
|
|
|
|
|
|
|
*p_str = NULL;
|
|
|
|
|
|
|
|
if (*p_size < 2)
|
|
|
|
return FALSE;
|
|
|
|
|
|
|
|
s_length = gst_asf_demux_get_uint16 (p_data, p_size);
|
|
|
|
|
2006-05-10 14:40:03 +00:00
|
|
|
if (p_strlen)
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
*p_strlen = s_length;
|
|
|
|
|
|
|
|
if (s_length == 0) {
|
|
|
|
GST_WARNING ("zero-length string");
|
|
|
|
*p_str = g_strdup ("");
|
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!gst_asf_demux_get_bytes (&s, s_length, p_data, p_size))
|
|
|
|
return FALSE;
|
|
|
|
|
|
|
|
g_assert (s != NULL);
|
|
|
|
|
|
|
|
/* just because They don't exist doesn't
|
|
|
|
* mean They are not out to get you ... */
|
|
|
|
if (s[s_length - 1] != '\0') {
|
|
|
|
s = g_realloc (s, s_length + 1);
|
|
|
|
s[s_length] = '\0';
|
|
|
|
}
|
|
|
|
|
|
|
|
*p_str = (gchar *) s;
|
|
|
|
return TRUE;
|
2004-01-27 01:27:04 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
2007-01-24 17:36:36 +00:00
|
|
|
static void
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_asf_demux_get_guid (ASFGuid * guid, guint8 ** p_data, guint64 * p_size)
|
2004-01-27 01:27:04 +00:00
|
|
|
{
|
2007-01-24 17:36:36 +00:00
|
|
|
g_assert (*p_size >= 4 * sizeof (guint32));
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
|
|
|
guid->v1 = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
guid->v2 = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
guid->v3 = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
guid->v4 = gst_asf_demux_get_uint32 (p_data, p_size);
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
|
2004-01-27 01:27:04 +00:00
|
|
|
static gboolean
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_asf_demux_get_obj_stream (asf_obj_stream * stream, guint8 ** p_data,
|
|
|
|
guint64 * p_size)
|
2004-01-27 01:27:04 +00:00
|
|
|
{
|
2006-07-14 13:02:53 +00:00
|
|
|
guint16 flags;
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (*p_size < (16 + 16 + 8 + 4 + 4 + 2 + 4))
|
|
|
|
return FALSE;
|
2004-01-27 01:27:04 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_asf_demux_get_guid (&stream->type, p_data, p_size);
|
|
|
|
gst_asf_demux_get_guid (&stream->correction, p_data, p_size);
|
2004-01-27 01:27:04 +00:00
|
|
|
|
2006-07-14 13:02:53 +00:00
|
|
|
stream->time_offset = gst_asf_demux_get_uint64 (p_data, p_size) * 100;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
stream->type_specific_size = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
stream->stream_specific_size = gst_asf_demux_get_uint32 (p_data, p_size);
|
2006-07-14 13:02:53 +00:00
|
|
|
flags = gst_asf_demux_get_uint16 (p_data, p_size);
|
|
|
|
stream->id = flags & 0x7f;
|
|
|
|
stream->encrypted = (flags & 0x8000) << 15;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
stream->unknown2 = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
return TRUE;
|
|
|
|
}
|
2004-01-27 01:27:04 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static gboolean
|
|
|
|
gst_asf_demux_get_replicated_data (asf_replicated_data * rep, guint8 ** p_data,
|
|
|
|
guint64 * p_size)
|
|
|
|
{
|
|
|
|
if (*p_size < (4 + 4))
|
|
|
|
return FALSE;
|
2004-01-27 01:27:04 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
rep->object_size = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
rep->frag_timestamp = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
return TRUE;
|
|
|
|
}
|
2004-01-27 01:27:04 +00:00
|
|
|
|
2003-01-31 21:10:00 +00:00
|
|
|
static gboolean
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_asf_demux_get_obj_data_correction (asf_obj_data_correction * object,
|
|
|
|
guint8 ** p_data, guint64 * p_size)
|
2002-10-17 21:41:47 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (*p_size < (1 + 1))
|
|
|
|
return FALSE;
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
object->type = gst_asf_demux_get_uint8 (p_data, p_size);
|
|
|
|
object->cycle = gst_asf_demux_get_uint8 (p_data, p_size);
|
|
|
|
return TRUE;
|
|
|
|
}
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static gboolean
|
|
|
|
gst_asf_demux_get_stream_audio (asf_stream_audio * audio, guint8 ** p_data,
|
|
|
|
guint64 * p_size)
|
|
|
|
{
|
|
|
|
if (*p_size < (2 + 2 + 4 + 4 + 2 + 2 + 2))
|
|
|
|
return FALSE;
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* WAVEFORMATEX Structure */
|
|
|
|
audio->codec_tag = gst_asf_demux_get_uint16 (p_data, p_size);
|
|
|
|
audio->channels = gst_asf_demux_get_uint16 (p_data, p_size);
|
|
|
|
audio->sample_rate = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
audio->byte_rate = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
audio->block_align = gst_asf_demux_get_uint16 (p_data, p_size);
|
|
|
|
audio->word_size = gst_asf_demux_get_uint16 (p_data, p_size);
|
|
|
|
/* Codec specific data size */
|
|
|
|
audio->size = gst_asf_demux_get_uint16 (p_data, p_size);
|
2002-10-17 21:41:47 +00:00
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static gboolean
|
|
|
|
gst_asf_demux_get_stream_video (asf_stream_video * video, guint8 ** p_data,
|
|
|
|
guint64 * p_size)
|
|
|
|
{
|
|
|
|
if (*p_size < (4 + 4 + 1 + 2))
|
|
|
|
return FALSE;
|
2003-01-31 21:10:00 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
video->width = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
video->height = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
video->unknown = gst_asf_demux_get_uint8 (p_data, p_size);
|
|
|
|
video->size = gst_asf_demux_get_uint16 (p_data, p_size);
|
2003-01-31 21:10:00 +00:00
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static gboolean
|
|
|
|
gst_asf_demux_get_stream_video_format (asf_stream_video_format * fmt,
|
|
|
|
guint8 ** p_data, guint64 * p_size)
|
2005-01-27 00:56:11 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (*p_size < (4 + 4 + 4 + 2 + 2 + 4 + 4 + 4 + 4 + 4 + 4))
|
|
|
|
return FALSE;
|
2005-01-27 00:56:11 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
fmt->size = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
fmt->width = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
fmt->height = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
fmt->planes = gst_asf_demux_get_uint16 (p_data, p_size);
|
|
|
|
fmt->depth = gst_asf_demux_get_uint16 (p_data, p_size);
|
|
|
|
fmt->tag = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
fmt->image_size = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
fmt->xpels_meter = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
fmt->ypels_meter = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
fmt->num_colors = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
fmt->imp_colors = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
return TRUE;
|
|
|
|
}
|
2005-01-27 00:56:11 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static asf_stream_context *
|
|
|
|
gst_asf_demux_get_stream (GstASFDemux * demux, guint16 id)
|
|
|
|
{
|
|
|
|
guint8 i;
|
|
|
|
asf_stream_context *stream;
|
2005-01-27 00:56:11 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
for (i = 0; i < demux->num_streams; i++) {
|
|
|
|
stream = &demux->stream[i];
|
|
|
|
if (stream->id == id) {
|
|
|
|
/* We've found the one with the matching id */
|
|
|
|
return &demux->stream[i];
|
2005-01-27 00:56:11 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Base case if we haven't found one at all */
|
|
|
|
GST_WARNING ("Segment found for undefined stream: (%d)", id);
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2006-07-15 13:33:38 +00:00
|
|
|
static asf_obj_ext_stream_properties *
|
|
|
|
gst_asf_demux_get_ext_stream_props_for_stream (GstASFDemux * demux, gint id)
|
|
|
|
{
|
|
|
|
GSList *l;
|
|
|
|
|
|
|
|
for (l = demux->ext_stream_props; l != NULL; l = l->next) {
|
|
|
|
asf_obj_ext_stream_properties *esp;
|
|
|
|
|
|
|
|
esp = (asf_obj_ext_stream_properties *) l->data;
|
|
|
|
if (esp->stream_num == id)
|
|
|
|
return esp;
|
|
|
|
}
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static void
|
|
|
|
gst_asf_demux_setup_pad (GstASFDemux * demux, GstPad * src_pad,
|
2006-06-28 11:20:03 +00:00
|
|
|
GstCaps * caps, guint16 id, gboolean is_video, GstTagList * tags)
|
2003-01-31 21:10:00 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
asf_stream_context *stream;
|
2003-01-31 21:10:00 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_pad_use_fixed_caps (src_pad);
|
|
|
|
gst_pad_set_caps (src_pad, caps);
|
2003-01-31 21:10:00 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_pad_set_event_function (src_pad,
|
|
|
|
GST_DEBUG_FUNCPTR (gst_asf_demux_handle_src_event));
|
|
|
|
gst_pad_set_query_type_function (src_pad,
|
|
|
|
GST_DEBUG_FUNCPTR (gst_asf_demux_get_src_query_types));
|
|
|
|
gst_pad_set_query_function (src_pad,
|
|
|
|
GST_DEBUG_FUNCPTR (gst_asf_demux_handle_src_query));
|
2004-05-02 18:07:39 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
stream = &demux->stream[demux->num_streams];
|
|
|
|
stream->caps = caps;
|
|
|
|
stream->pad = src_pad;
|
|
|
|
stream->id = id;
|
|
|
|
stream->frag_offset = 0;
|
|
|
|
stream->sequence = 0;
|
|
|
|
stream->delay = 0;
|
2006-03-27 10:39:03 +00:00
|
|
|
stream->first_pts = GST_CLOCK_TIME_NONE;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
stream->last_pts = GST_CLOCK_TIME_NONE;
|
|
|
|
stream->fps_known = !is_video; /* bit hacky for audio */
|
|
|
|
stream->is_video = is_video;
|
|
|
|
stream->need_newsegment = TRUE;
|
2006-06-28 11:20:03 +00:00
|
|
|
stream->pending_tags = tags;
|
2004-05-16 16:22:42 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_pad_set_element_private (src_pad, stream);
|
2003-01-31 21:10:00 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_INFO ("Adding pad %s for stream %u with caps %" GST_PTR_FORMAT,
|
|
|
|
GST_PAD_NAME (src_pad), demux->num_streams, caps);
|
|
|
|
|
|
|
|
++demux->num_streams;
|
2006-10-09 12:09:14 +00:00
|
|
|
gst_pad_set_active (src_pad, TRUE);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_element_add_pad (GST_ELEMENT (demux), src_pad);
|
|
|
|
}
|
2004-05-02 18:07:39 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static void
|
|
|
|
gst_asf_demux_add_audio_stream (GstASFDemux * demux,
|
|
|
|
asf_stream_audio * audio, guint16 id, guint8 ** p_data, guint64 * p_size)
|
|
|
|
{
|
2006-07-15 13:33:38 +00:00
|
|
|
asf_obj_ext_stream_properties *ext_props;
|
2006-06-28 11:20:03 +00:00
|
|
|
GstTagList *tags = NULL;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GstBuffer *extradata = NULL;
|
|
|
|
GstPad *src_pad;
|
|
|
|
GstCaps *caps;
|
|
|
|
guint16 size_left = 0;
|
|
|
|
gchar *codec_name = NULL;
|
|
|
|
gchar *name = NULL;
|
|
|
|
|
|
|
|
size_left = audio->size;
|
|
|
|
|
|
|
|
/* Create the audio pad */
|
|
|
|
name = g_strdup_printf ("audio_%02d", demux->num_audio_streams);
|
|
|
|
|
2006-08-22 15:52:16 +00:00
|
|
|
src_pad = gst_pad_new_from_static_template (&audio_src_template, name);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
g_free (name);
|
|
|
|
|
|
|
|
/* Swallow up any left over data and set up the
|
|
|
|
* standard properties from the header info */
|
|
|
|
if (size_left) {
|
2006-11-20 15:52:42 +00:00
|
|
|
GST_INFO_OBJECT (demux, "Audio header contains %d bytes of "
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
"codec specific data", size_left);
|
|
|
|
|
2007-01-24 17:36:36 +00:00
|
|
|
g_assert (size_left <= *p_size);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_asf_demux_get_buffer (&extradata, size_left, p_data, p_size);
|
2004-05-02 18:07:39 +00:00
|
|
|
}
|
2003-01-31 21:10:00 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* asf_stream_audio is the same as gst_riff_strf_auds, but with an
|
|
|
|
* additional two bytes indicating extradata. */
|
|
|
|
caps = gst_riff_create_audio_caps (audio->codec_tag, NULL,
|
|
|
|
(gst_riff_strf_auds *) audio, extradata, NULL, &codec_name);
|
2004-05-02 18:07:39 +00:00
|
|
|
|
2006-06-28 11:20:03 +00:00
|
|
|
if (caps == NULL) {
|
|
|
|
caps = gst_caps_new_simple ("audio/x-asf-unknown", "codec_id",
|
|
|
|
G_TYPE_INT, (gint) audio->codec_tag, NULL);
|
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Informing about that audio format we just added */
|
2006-06-28 11:20:03 +00:00
|
|
|
if (codec_name) {
|
|
|
|
tags = gst_tag_list_new ();
|
|
|
|
gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_AUDIO_CODEC,
|
|
|
|
codec_name, NULL);
|
|
|
|
g_free (codec_name);
|
|
|
|
}
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
2006-07-15 13:33:38 +00:00
|
|
|
/* add language info if we have it */
|
|
|
|
ext_props = gst_asf_demux_get_ext_stream_props_for_stream (demux, id);
|
|
|
|
if (ext_props && ext_props->lang_idx < demux->num_languages) {
|
|
|
|
if (tags == NULL)
|
|
|
|
tags = gst_tag_list_new ();
|
|
|
|
gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_LANGUAGE_CODE,
|
|
|
|
demux->languages[ext_props->lang_idx], NULL);
|
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (extradata)
|
|
|
|
gst_buffer_unref (extradata);
|
|
|
|
|
2006-07-15 13:33:38 +00:00
|
|
|
GST_INFO ("Adding audio stream %u codec %u (0x%04x), tags=%" GST_PTR_FORMAT,
|
|
|
|
demux->num_video_streams, audio->codec_tag, audio->codec_tag, tags);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
|
|
|
++demux->num_audio_streams;
|
|
|
|
|
2006-06-28 11:20:03 +00:00
|
|
|
gst_asf_demux_setup_pad (demux, src_pad, caps, id, FALSE, tags);
|
2003-01-31 21:10:00 +00:00
|
|
|
}
|
|
|
|
|
2006-07-28 15:15:15 +00:00
|
|
|
static void
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_asf_demux_add_video_stream (GstASFDemux * demux,
|
|
|
|
asf_stream_video_format * video, guint16 id,
|
|
|
|
guint8 ** p_data, guint64 * p_size)
|
2005-01-05 21:46:19 +00:00
|
|
|
{
|
2006-06-28 11:20:03 +00:00
|
|
|
GstTagList *tags = NULL;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GstBuffer *extradata = NULL;
|
|
|
|
GstPad *src_pad;
|
|
|
|
GstCaps *caps;
|
|
|
|
gchar *name = NULL;
|
|
|
|
gchar *codec_name = NULL;
|
|
|
|
gint size_left = video->size - 40;
|
2005-01-05 21:46:19 +00:00
|
|
|
|
2006-07-09 14:07:31 +00:00
|
|
|
/* Create the video pad */
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
name = g_strdup_printf ("video_%02d", demux->num_video_streams);
|
2006-08-22 15:52:16 +00:00
|
|
|
src_pad = gst_pad_new_from_static_template (&video_src_template, name);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
g_free (name);
|
2005-01-05 21:46:19 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Now try some gstreamer formatted MIME types (from gst_avi_demux_strf_vids) */
|
|
|
|
if (size_left) {
|
|
|
|
GST_LOG ("Video header has %d bytes of codec specific data", size_left);
|
2007-01-24 17:36:36 +00:00
|
|
|
g_assert (size_left <= *p_size);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_asf_demux_get_buffer (&extradata, size_left, p_data, p_size);
|
|
|
|
}
|
2005-01-05 21:46:19 +00:00
|
|
|
|
2006-06-28 11:20:03 +00:00
|
|
|
GST_DEBUG ("video codec %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (video->tag));
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* yes, asf_stream_video_format and gst_riff_strf_vids are the same */
|
|
|
|
caps = gst_riff_create_video_caps (video->tag, NULL,
|
|
|
|
(gst_riff_strf_vids *) video, extradata, NULL, &codec_name);
|
2005-01-05 21:46:19 +00:00
|
|
|
|
2006-06-28 11:20:03 +00:00
|
|
|
if (caps == NULL) {
|
|
|
|
caps = gst_caps_new_simple ("video/x-asf-unknown", "fourcc",
|
|
|
|
GST_TYPE_FOURCC, video->tag, NULL);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (codec_name) {
|
|
|
|
tags = gst_tag_list_new ();
|
|
|
|
gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_VIDEO_CODEC,
|
|
|
|
codec_name, NULL);
|
|
|
|
g_free (codec_name);
|
|
|
|
}
|
2005-01-05 21:46:19 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (extradata)
|
|
|
|
gst_buffer_unref (extradata);
|
2005-01-05 21:46:19 +00:00
|
|
|
|
2006-06-28 11:20:03 +00:00
|
|
|
GST_INFO ("Adding video stream %u codec %" GST_FOURCC_FORMAT " (0x%08x)",
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
demux->num_video_streams, GST_FOURCC_ARGS (video->tag), video->tag);
|
2005-01-05 21:46:19 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_caps_set_simple (caps, "framerate", GST_TYPE_FRACTION, 25, 1, NULL);
|
2005-01-05 21:46:19 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
++demux->num_video_streams;
|
2005-01-05 21:46:19 +00:00
|
|
|
|
2006-06-28 11:20:03 +00:00
|
|
|
gst_asf_demux_setup_pad (demux, src_pad, caps, id, TRUE, tags);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
}
|
2005-01-05 21:46:19 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static GstFlowReturn
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
gst_asf_demux_process_stream (GstASFDemux * demux, guint8 * data, guint64 size)
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
{
|
|
|
|
asf_obj_stream object;
|
|
|
|
guint32 stream_id;
|
|
|
|
guint32 correction;
|
2005-01-05 21:46:19 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Get the rest of the header's header */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (!gst_asf_demux_get_obj_stream (&object, &data, &size))
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
goto not_enough_data;
|
2005-01-05 21:46:19 +00:00
|
|
|
|
2006-07-14 13:02:53 +00:00
|
|
|
GST_DEBUG ("Found stream #%u", object.id);
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Identify the stream type */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
stream_id = gst_asf_demux_identify_guid (asf_stream_guids, &object.type);
|
|
|
|
correction =
|
|
|
|
gst_asf_demux_identify_guid (asf_correction_guids, &object.correction);
|
2005-01-05 21:46:19 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
switch (stream_id) {
|
|
|
|
case ASF_STREAM_AUDIO:{
|
|
|
|
asf_stream_audio audio_object;
|
2005-01-05 21:46:19 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (!gst_asf_demux_get_stream_audio (&audio_object, &data, &size))
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
goto not_enough_data;
|
2005-01-05 21:46:19 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_INFO ("Object is an audio stream with %u bytes of additional data",
|
|
|
|
audio_object.size);
|
2005-01-05 21:46:19 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_asf_demux_add_audio_stream (demux, &audio_object, object.id,
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
&data, &size);
|
2005-01-05 21:46:19 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
switch (correction) {
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
case ASF_CORRECTION_ON:{
|
|
|
|
guint span, packet_size, chunk_size, data_size, silence_data;
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_INFO ("Using error correction");
|
2005-01-05 21:46:19 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (size < (1 + 2 + 2 + 2 + 1))
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
goto not_enough_data;
|
2005-01-05 21:46:19 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
span = gst_asf_demux_get_uint8 (&data, &size);
|
|
|
|
packet_size = gst_asf_demux_get_uint16 (&data, &size);
|
|
|
|
chunk_size = gst_asf_demux_get_uint16 (&data, &size);
|
|
|
|
data_size = gst_asf_demux_get_uint16 (&data, &size);
|
|
|
|
silence_data = gst_asf_demux_get_uint8 (&data, &size);
|
|
|
|
|
|
|
|
/* FIXME: shouldn't this be per-stream? */
|
|
|
|
demux->span = span;
|
2005-01-05 21:46:19 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GST_DEBUG_OBJECT (demux, "Descrambling ps:%u cs:%u ds:%u s:%u sd:%u",
|
|
|
|
packet_size, chunk_size, data_size, span, silence_data);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
|
|
|
if (demux->span > 1) {
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (chunk_size == 0 || ((packet_size / chunk_size) <= 1)) {
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Disable descrambling */
|
|
|
|
demux->span = 0;
|
|
|
|
} else {
|
|
|
|
/* FIXME: this else branch was added for
|
|
|
|
* weird_al_yankovic - the saga begins.asf */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
demux->ds_packet_size = packet_size;
|
|
|
|
demux->ds_chunk_size = chunk_size;
|
2005-01-08 12:25:26 +00:00
|
|
|
}
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
} else {
|
|
|
|
/* Descambling is enabled */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
demux->ds_packet_size = packet_size;
|
|
|
|
demux->ds_chunk_size = chunk_size;
|
2005-01-06 12:41:13 +00:00
|
|
|
}
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
#if 0
|
|
|
|
/* Now skip the rest of the silence data */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (data_size > 1)
|
|
|
|
gst_bytestream_flush (demux->bs, data_size - 1);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
#else
|
|
|
|
/* FIXME: CHECKME. And why -1? */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (data_size > 1) {
|
|
|
|
if (!gst_asf_demux_skip_bytes (data_size - 1, &data, &size)) {
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
goto not_enough_data;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
break;
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
}
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
case ASF_CORRECTION_OFF:
|
|
|
|
GST_INFO ("Error correction off");
|
|
|
|
#if 0
|
|
|
|
/* gst_bytestream_flush (demux->bs, object.stream_specific_size); */
|
|
|
|
#else
|
|
|
|
/* FIXME: CHECKME */
|
|
|
|
if (!gst_asf_demux_skip_bytes (object.stream_specific_size,
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
&data, &size)) {
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
goto not_enough_data;
|
2005-01-06 12:41:13 +00:00
|
|
|
}
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
#endif
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
GST_ELEMENT_ERROR (demux, STREAM, DEMUX, (NULL),
|
|
|
|
("Audio stream using unknown error correction"));
|
|
|
|
return GST_FLOW_ERROR;
|
|
|
|
}
|
2005-01-06 12:41:13 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
break;
|
|
|
|
}
|
2005-01-08 15:30:33 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
case ASF_STREAM_VIDEO:{
|
|
|
|
asf_stream_video_format video_format_object;
|
|
|
|
asf_stream_video video_object;
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
guint16 vsize;
|
2005-01-06 12:41:13 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (!gst_asf_demux_get_stream_video (&video_object, &data, &size))
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
goto not_enough_data;
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
vsize = video_object.size - 40; /* Byte order gets offset by single byte */
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
|
|
|
GST_INFO ("object is a video stream with %u bytes of "
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
"additional data", vsize);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
|
|
|
if (!gst_asf_demux_get_stream_video_format (&video_format_object,
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
&data, &size)) {
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
goto not_enough_data;
|
2005-01-05 21:46:19 +00:00
|
|
|
}
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
|
|
|
gst_asf_demux_add_video_stream (demux, &video_format_object, object.id,
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
&data, &size);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
|
|
|
break;
|
2005-01-05 21:46:19 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
default:
|
2006-02-17 10:24:56 +00:00
|
|
|
GST_WARNING_OBJECT (demux, "Unknown asf stream (id %08x)",
|
|
|
|
(guint) stream_id);
|
|
|
|
break;
|
2005-01-05 21:46:19 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
return GST_FLOW_OK;
|
2005-01-05 21:46:19 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
not_enough_data:
|
|
|
|
{
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GST_WARNING_OBJECT (demux, "Unexpected end of data parsing stream object");
|
|
|
|
/* pretend it's ok, we'll error out later if we found no streams */
|
|
|
|
return GST_FLOW_OK;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
}
|
2005-01-05 21:46:19 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static const gchar *
|
|
|
|
gst_asf_demux_get_gst_tag_from_tag_name (const gchar * name_utf16le,
|
|
|
|
gsize name_len)
|
2002-10-17 21:41:47 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
const struct
|
|
|
|
{
|
|
|
|
const gchar *asf_name;
|
|
|
|
const gchar *gst_name;
|
|
|
|
} tags[] = {
|
|
|
|
{
|
|
|
|
"WM/Genre", GST_TAG_GENRE}, {
|
|
|
|
"WM/AlbumTitle", GST_TAG_ALBUM}, {
|
|
|
|
"WM/AlbumArtist", GST_TAG_ARTIST}, {
|
2006-09-07 16:05:31 +00:00
|
|
|
"WM/Track", GST_TAG_TRACK_NUMBER}, {
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
"WM/Year", GST_TAG_DATE}
|
|
|
|
/* { "WM/Composer", GST_TAG_COMPOSER } */
|
|
|
|
};
|
|
|
|
gchar *name_utf8;
|
|
|
|
gsize in, out;
|
|
|
|
guint i;
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* convert name to UTF-8 */
|
|
|
|
name_utf8 = g_convert (name_utf16le, name_len, "UTF-8", "UTF-16LE", &in,
|
|
|
|
&out, NULL);
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (name_utf8 == NULL) {
|
|
|
|
GST_WARNING ("Failed to convert name to UTF8, skipping");
|
|
|
|
return NULL;
|
|
|
|
}
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
for (i = 0; i < G_N_ELEMENTS (tags); ++i) {
|
|
|
|
if (strncmp (tags[i].asf_name, name_utf8, out) == 0) {
|
2006-09-07 16:05:31 +00:00
|
|
|
GST_LOG ("map tagname '%s' -> '%s'", name_utf8, tags[i].gst_name);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
g_free (name_utf8);
|
|
|
|
return tags[i].gst_name;
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2006-09-07 16:05:31 +00:00
|
|
|
GST_LOG ("unhandled tagname '%s'", name_utf8);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
g_free (name_utf8);
|
|
|
|
return NULL;
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* gst_asf_demux_commit_taglist() takes ownership of taglist! */
|
|
|
|
static void
|
|
|
|
gst_asf_demux_commit_taglist (GstASFDemux * demux, GstTagList * taglist)
|
2004-05-18 01:38:49 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_DEBUG ("Committing tags: %" GST_PTR_FORMAT, taglist);
|
2004-05-18 01:38:49 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_element_found_tags (GST_ELEMENT (demux), gst_tag_list_copy (taglist));
|
2004-05-18 01:38:49 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* save internally */
|
|
|
|
if (!demux->taglist)
|
|
|
|
demux->taglist = taglist;
|
|
|
|
else {
|
|
|
|
GstTagList *t;
|
2004-05-18 01:38:49 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
t = gst_tag_list_merge (demux->taglist, taglist, GST_TAG_MERGE_APPEND);
|
|
|
|
gst_tag_list_free (demux->taglist);
|
|
|
|
gst_tag_list_free (taglist);
|
|
|
|
demux->taglist = t;
|
2004-05-18 01:38:49 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
#define ASF_DEMUX_DATA_TYPE_UTF16LE_STRING 0
|
|
|
|
#define ASF_DEMUX_DATA_TYPE_DWORD 3
|
|
|
|
|
|
|
|
/* Extended Content Description Object */
|
|
|
|
static GstFlowReturn
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
gst_asf_demux_process_ext_content_desc (GstASFDemux * demux, guint8 * data,
|
|
|
|
guint64 size)
|
2002-10-17 21:41:47 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Other known (and unused) 'text/unicode' metadata available :
|
|
|
|
*
|
|
|
|
* WM/Lyrics =
|
|
|
|
* WM/MediaPrimaryClassID = {D1607DBC-E323-4BE2-86A1-48A42A28441E}
|
|
|
|
* WMFSDKVersion = 9.00.00.2980
|
|
|
|
* WMFSDKNeeded = 0.0.0.0000
|
|
|
|
* WM/UniqueFileIdentifier = AMGa_id=R 15334;AMGp_id=P 5149;AMGt_id=T 2324984
|
|
|
|
* WM/Publisher = 4AD
|
|
|
|
* WM/Provider = AMG
|
|
|
|
* WM/ProviderRating = 8
|
|
|
|
* WM/ProviderStyle = Rock (similar to WM/Genre)
|
|
|
|
* WM/GenreID (similar to WM/Genre)
|
2006-09-07 16:05:31 +00:00
|
|
|
* WM/TrackNumber (same as WM/Track but as a string)
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
*
|
|
|
|
* Other known (and unused) 'non-text' metadata available :
|
|
|
|
*
|
|
|
|
* WM/EncodingTime
|
|
|
|
* WM/MCDI
|
|
|
|
* IsVBR
|
2006-12-21 08:16:41 +00:00
|
|
|
*
|
|
|
|
* We might want to read WM/TrackNumber and use atoi() if we don't have
|
|
|
|
* WM/Track
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
*/
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GstTagList *taglist;
|
|
|
|
guint16 blockcount, i;
|
2004-03-14 22:34:30 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GST_INFO_OBJECT (demux, "object is an extended content description");
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
taglist = gst_tag_list_new ();
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Content Descriptor Count */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (size < 2)
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
goto not_enough_data;
|
2004-03-14 22:34:30 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
blockcount = gst_asf_demux_get_uint16 (&data, &size);
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
for (i = 1; i <= blockcount; ++i) {
|
|
|
|
const gchar *gst_tag_name;
|
|
|
|
guint16 datatype;
|
|
|
|
guint16 value_len;
|
|
|
|
guint16 name_len;
|
|
|
|
GValue tag_value = { 0, };
|
|
|
|
gsize in, out;
|
|
|
|
gchar *name;
|
|
|
|
gchar *value;
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Descriptor */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (!gst_asf_demux_get_string (&name, &name_len, &data, &size))
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
goto not_enough_data;
|
2004-03-14 22:34:30 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (size < 2) {
|
2007-01-24 17:36:36 +00:00
|
|
|
g_free (name);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
goto not_enough_data;
|
2007-01-24 17:36:36 +00:00
|
|
|
}
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Descriptor Value Data Type */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
datatype = gst_asf_demux_get_uint16 (&data, &size);
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Descriptor Value (not really a string, but same thing reading-wise) */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (!gst_asf_demux_get_string (&value, &value_len, &data, &size)) {
|
2007-01-24 17:36:36 +00:00
|
|
|
g_free (name);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
goto not_enough_data;
|
2007-01-24 17:36:36 +00:00
|
|
|
}
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_tag_name = gst_asf_demux_get_gst_tag_from_tag_name (name, name_len);
|
2006-09-07 16:05:31 +00:00
|
|
|
if (gst_tag_name != NULL) {
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
switch (datatype) {
|
|
|
|
case ASF_DEMUX_DATA_TYPE_UTF16LE_STRING:{
|
|
|
|
gchar *value_utf8;
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
value_utf8 = g_convert (value, value_len, "UTF-8", "UTF-16LE",
|
|
|
|
&in, &out, NULL);
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* get rid of tags with empty value */
|
|
|
|
if (value_utf8 != NULL && *value_utf8 != '\0') {
|
|
|
|
value_utf8[out] = '\0';
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (strcmp (gst_tag_name, GST_TAG_DATE) == 0) {
|
|
|
|
guint year = atoi (value_utf8);
|
|
|
|
|
|
|
|
if (year > 0) {
|
|
|
|
GDate *date = g_date_new_dmy (1, 1, year);
|
|
|
|
|
|
|
|
g_value_init (&tag_value, GST_TYPE_DATE);
|
|
|
|
gst_value_set_date (&tag_value, date);
|
|
|
|
g_date_free (date);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
g_value_init (&tag_value, G_TYPE_STRING);
|
|
|
|
g_value_set_string (&tag_value, value_utf8);
|
|
|
|
}
|
|
|
|
} else if (value_utf8 == NULL) {
|
|
|
|
GST_WARNING ("Failed to convert string value to UTF8, skipping");
|
|
|
|
} else {
|
|
|
|
GST_DEBUG ("Skipping empty string value for %s", gst_tag_name);
|
|
|
|
}
|
|
|
|
g_free (value_utf8);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case ASF_DEMUX_DATA_TYPE_DWORD:{
|
2006-09-07 16:05:31 +00:00
|
|
|
/* this is the track number */
|
|
|
|
g_value_init (&tag_value, G_TYPE_UINT);
|
|
|
|
g_value_set_uint (&tag_value, (guint) GST_READ_UINT32_LE (value));
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
default:{
|
|
|
|
GST_DEBUG ("Skipping tag %s of type %d", gst_tag_name, datatype);
|
|
|
|
break;
|
|
|
|
}
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (G_IS_VALUE (&tag_value)) {
|
|
|
|
gst_tag_list_add_values (taglist, GST_TAG_MERGE_APPEND,
|
|
|
|
gst_tag_name, &tag_value, NULL);
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
g_value_unset (&tag_value);
|
2004-09-22 07:55:36 +00:00
|
|
|
}
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
|
|
|
g_free (name);
|
|
|
|
g_free (value);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (gst_structure_n_fields (GST_STRUCTURE (taglist)) > 0) {
|
|
|
|
gst_asf_demux_commit_taglist (demux, taglist);
|
2002-10-17 21:41:47 +00:00
|
|
|
} else {
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_tag_list_free (taglist);
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
return GST_FLOW_OK;
|
|
|
|
|
2006-09-07 14:08:42 +00:00
|
|
|
/* Errors */
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
not_enough_data:
|
|
|
|
{
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GST_WARNING ("Unexpected end of data parsing ext content desc object");
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_tag_list_free (taglist);
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
return GST_FLOW_OK; /* not really fatal */
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
}
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
|
2003-01-31 21:10:00 +00:00
|
|
|
static gboolean
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_asf_demux_get_object_header (GstASFDemux * demux, guint32 * obj_id,
|
|
|
|
guint64 * obj_size, guint8 ** p_data, guint64 * p_size)
|
2002-10-17 21:41:47 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
ASFGuid guid;
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (*p_size < ASF_OBJECT_HEADER_SIZE)
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
return FALSE;
|
|
|
|
|
|
|
|
gst_asf_demux_get_guid (&guid, p_data, p_size);
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
*obj_id = gst_asf_demux_identify_guid (asf_object_guids, &guid);
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
*obj_size = gst_asf_demux_get_uint64 (p_data, p_size);
|
|
|
|
|
|
|
|
if (*obj_id == ASF_OBJ_UNDEFINED) {
|
|
|
|
GST_WARNING ("Unknown object %08x-%08x-%08x-%08x",
|
|
|
|
guid.v1, guid.v2, guid.v3, guid.v4);
|
|
|
|
}
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
|
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static GstFlowReturn
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
gst_asf_demux_process_header (GstASFDemux * demux, guint8 * data, guint64 size)
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
{
|
|
|
|
GstFlowReturn ret = GST_FLOW_OK;
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
guint32 i, num_objects;
|
|
|
|
guint8 unknown;
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Get the rest of the header's header */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (size < (4 + 1 + 1))
|
|
|
|
goto not_enough_data;
|
2002-10-17 21:41:47 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
num_objects = gst_asf_demux_get_uint32 (&data, &size);
|
|
|
|
unknown = gst_asf_demux_get_uint8 (&data, &size);
|
|
|
|
unknown = gst_asf_demux_get_uint8 (&data, &size);
|
|
|
|
|
|
|
|
GST_INFO_OBJECT (demux, "object is a header with %u parts", num_objects);
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Loop through the header's objects, processing those */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
for (i = 0; i < num_objects; ++i) {
|
|
|
|
GST_INFO_OBJECT (demux, "reading header part %u", i);
|
|
|
|
ret = gst_asf_demux_process_object (demux, &data, &size);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (ret != GST_FLOW_OK) {
|
|
|
|
GST_WARNING ("process_object returned %s", gst_asf_get_flow_name (ret));
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
return ret;
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
|
|
|
|
not_enough_data:
|
|
|
|
{
|
|
|
|
GST_ELEMENT_ERROR (demux, STREAM, DEMUX, (NULL),
|
|
|
|
("short read parsing HEADER object"));
|
|
|
|
return GST_FLOW_ERROR;
|
|
|
|
}
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
}
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static GstFlowReturn
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
gst_asf_demux_process_file (GstASFDemux * demux, guint8 * data, guint64 size)
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
{
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
guint64 file_size, creation_time, packets_count;
|
|
|
|
guint64 play_time, send_time, preroll;
|
|
|
|
guint32 flags, min_pktsize, max_pktsize, min_bitrate;
|
2006-12-15 17:54:48 +00:00
|
|
|
gboolean broadcast;
|
2002-10-17 21:41:47 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (size < (16 + 8 + 8 + 8 + 8 + 8 + 8 + 4 + 4 + 4 + 4))
|
|
|
|
goto not_enough_data;
|
2004-03-14 22:34:30 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
gst_asf_demux_skip_bytes (16, &data, &size); /* skip GUID */
|
|
|
|
file_size = gst_asf_demux_get_uint64 (&data, &size);
|
|
|
|
creation_time = gst_asf_demux_get_uint64 (&data, &size);
|
|
|
|
packets_count = gst_asf_demux_get_uint64 (&data, &size);
|
|
|
|
play_time = gst_asf_demux_get_uint64 (&data, &size);
|
|
|
|
send_time = gst_asf_demux_get_uint64 (&data, &size);
|
|
|
|
preroll = gst_asf_demux_get_uint64 (&data, &size);
|
|
|
|
flags = gst_asf_demux_get_uint32 (&data, &size);
|
|
|
|
min_pktsize = gst_asf_demux_get_uint32 (&data, &size);
|
|
|
|
max_pktsize = gst_asf_demux_get_uint32 (&data, &size);
|
|
|
|
min_bitrate = gst_asf_demux_get_uint32 (&data, &size);
|
|
|
|
|
|
|
|
broadcast = !!(flags & 0x01);
|
|
|
|
demux->seekable = !!(flags & 0x02);
|
2006-12-15 17:54:48 +00:00
|
|
|
|
|
|
|
GST_DEBUG_OBJECT (demux, "flags::broadcast = %d", broadcast);
|
|
|
|
GST_DEBUG_OBJECT (demux, "flags::seekable = %d", demux->seekable);
|
|
|
|
|
|
|
|
if (broadcast) {
|
|
|
|
/* these fields are invalid if the broadcast flag is set */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
play_time = 0;
|
|
|
|
file_size = 0;
|
2006-12-15 17:54:48 +00:00
|
|
|
}
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (min_pktsize != max_pktsize)
|
|
|
|
goto non_fixed_packet_size;
|
|
|
|
|
|
|
|
demux->packet_size = max_pktsize;
|
|
|
|
|
|
|
|
/* FIXME: do we need send_time as well? what is it? */
|
2004-03-14 22:34:30 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
demux->play_time = (guint64) play_time *(GST_SECOND / 10000000);
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
demux->preroll = preroll;
|
2006-12-15 17:54:48 +00:00
|
|
|
|
|
|
|
if (demux->play_time == 0)
|
|
|
|
demux->seekable = FALSE;
|
|
|
|
|
2006-02-17 09:54:43 +00:00
|
|
|
GST_DEBUG_OBJECT (demux,
|
|
|
|
"play_time %" GST_TIME_FORMAT " preroll %" GST_TIME_FORMAT,
|
|
|
|
GST_TIME_ARGS (demux->play_time), GST_TIME_ARGS (demux->preroll));
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_segment_set_duration (&demux->segment, GST_FORMAT_TIME, demux->play_time);
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_INFO ("object is a file with %" G_GUINT64_FORMAT " data packets",
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
packets_count);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_INFO ("preroll = %" G_GUINT64_FORMAT, demux->preroll);
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
return GST_FLOW_OK;
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
|
|
|
|
/* ERRORS */
|
|
|
|
non_fixed_packet_size:
|
|
|
|
{
|
|
|
|
GST_ELEMENT_ERROR (demux, STREAM, DEMUX, (NULL),
|
|
|
|
("packet size must be fixed"));
|
|
|
|
return GST_FLOW_ERROR;
|
|
|
|
}
|
|
|
|
not_enough_data:
|
|
|
|
{
|
|
|
|
GST_ELEMENT_ERROR (demux, STREAM, DEMUX, (NULL),
|
|
|
|
("short read parsing FILE object"));
|
|
|
|
return GST_FLOW_ERROR;
|
|
|
|
}
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Content Description Object */
|
|
|
|
static GstFlowReturn
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
gst_asf_demux_process_comment (GstASFDemux * demux, guint8 * data, guint64 size)
|
2002-10-17 21:41:47 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
struct
|
|
|
|
{
|
|
|
|
const gchar *gst_tag;
|
|
|
|
guint16 val_length;
|
|
|
|
gchar *val_utf8;
|
|
|
|
} tags[5] = {
|
|
|
|
{
|
|
|
|
GST_TAG_TITLE, 0, NULL}, {
|
|
|
|
GST_TAG_ARTIST, 0, NULL}, {
|
|
|
|
GST_TAG_COPYRIGHT, 0, NULL}, {
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GST_TAG_DESCRIPTION, 0, NULL}, {
|
|
|
|
GST_TAG_COMMENT, 0, NULL}
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
};
|
|
|
|
GstTagList *taglist;
|
|
|
|
GValue value = { 0 };
|
|
|
|
gsize in, out;
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
gint i = -1;
|
2002-10-17 21:41:47 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GST_INFO_OBJECT (demux, "object is a comment");
|
2002-10-17 21:41:47 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (size < (2 + 2 + 2 + 2 + 2))
|
|
|
|
goto not_enough_data;
|
2003-01-31 18:23:38 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
tags[0].val_length = gst_asf_demux_get_uint16 (&data, &size);
|
|
|
|
tags[1].val_length = gst_asf_demux_get_uint16 (&data, &size);
|
|
|
|
tags[2].val_length = gst_asf_demux_get_uint16 (&data, &size);
|
|
|
|
tags[3].val_length = gst_asf_demux_get_uint16 (&data, &size);
|
|
|
|
tags[4].val_length = gst_asf_demux_get_uint16 (&data, &size);
|
2003-01-31 18:23:38 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GST_DEBUG_OBJECT (demux, "Comment lengths: title=%d author=%d copyright=%d "
|
|
|
|
"description=%d rating=%d", tags[0].val_length, tags[1].val_length,
|
|
|
|
tags[2].val_length, tags[3].val_length, tags[4].val_length);
|
2004-03-15 19:32:25 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
for (i = 0; i < G_N_ELEMENTS (tags); ++i) {
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (size < tags[i].val_length)
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
goto not_enough_data;
|
2004-03-15 19:32:25 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* might be just '/0', '/0'... */
|
|
|
|
if (tags[i].val_length > 2 && tags[i].val_length % 2 == 0) {
|
|
|
|
/* convert to UTF-8 */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
tags[i].val_utf8 = g_convert ((gchar *) data, tags[i].val_length,
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
"UTF-8", "UTF-16LE", &in, &out, NULL);
|
|
|
|
}
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
gst_asf_demux_skip_bytes (tags[i].val_length, &data, &size);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
}
|
2004-03-15 19:32:25 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* parse metadata into taglist */
|
|
|
|
taglist = gst_tag_list_new ();
|
|
|
|
g_value_init (&value, G_TYPE_STRING);
|
|
|
|
for (i = 0; i < G_N_ELEMENTS (tags); ++i) {
|
|
|
|
if (tags[i].val_utf8 && strlen (tags[i].val_utf8) > 0 && tags[i].gst_tag) {
|
|
|
|
g_value_set_string (&value, tags[i].val_utf8);
|
|
|
|
gst_tag_list_add_values (taglist, GST_TAG_MERGE_APPEND,
|
|
|
|
tags[i].gst_tag, &value, NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
g_value_unset (&value);
|
2004-03-15 19:32:25 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (gst_structure_n_fields (GST_STRUCTURE (taglist)) > 0) {
|
|
|
|
gst_asf_demux_commit_taglist (demux, taglist);
|
|
|
|
} else {
|
|
|
|
gst_tag_list_free (taglist);
|
|
|
|
}
|
2004-03-15 19:32:25 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
for (i = 0; i < G_N_ELEMENTS (tags); ++i)
|
|
|
|
g_free (tags[i].val_utf8);
|
2003-01-31 18:23:38 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
return GST_FLOW_OK;
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
not_enough_data:
|
|
|
|
{
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GST_WARNING_OBJECT (demux, "unexpectedly short of data while processing "
|
|
|
|
"comment tag section %d, skipping comment object", i);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
for (i = 0; i < G_N_ELEMENTS (tags); i++)
|
|
|
|
g_free (tags[i].val_utf8);
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
return GST_FLOW_OK; /* not really fatal */
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static GstFlowReturn
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
gst_asf_demux_process_bitrate_props_object (GstASFDemux * demux, guint8 * data,
|
|
|
|
guint64 size)
|
2002-10-17 21:41:47 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
guint16 num_streams, i;
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (size < 2)
|
|
|
|
goto not_enough_data;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
num_streams = gst_asf_demux_get_uint16 (&data, &size);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
|
|
|
GST_INFO ("object is a bitrate properties object with %u streams",
|
|
|
|
num_streams);
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (size < (num_streams * (2 + 4)))
|
|
|
|
goto not_enough_data;
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
for (i = 0; i < num_streams; ++i) {
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
guint32 bitrate;
|
|
|
|
guint16 stream_id;
|
2002-10-17 21:41:47 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
stream_id = gst_asf_demux_get_uint16 (&data, &size);
|
|
|
|
bitrate = gst_asf_demux_get_uint32 (&data, &size);
|
2002-10-17 21:41:47 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (stream_id < GST_ASF_DEMUX_NUM_STREAM_IDS) {
|
|
|
|
demux->bitrate[stream_id] = bitrate;
|
|
|
|
GST_DEBUG ("bitrate[%u] = %u", stream_id, bitrate);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
} else {
|
|
|
|
GST_WARNING ("stream id %u is too large", stream_id);
|
|
|
|
}
|
|
|
|
}
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
return GST_FLOW_OK;
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
|
|
|
|
not_enough_data:
|
|
|
|
{
|
|
|
|
GST_WARNING_OBJECT (demux, "short read parsing bitrate props object!");
|
|
|
|
return GST_FLOW_OK; /* not really fatal */
|
|
|
|
}
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static GstFlowReturn
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
gst_asf_demux_process_header_ext (GstASFDemux * demux, guint8 * data,
|
|
|
|
guint64 size)
|
2003-01-31 21:10:00 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GstFlowReturn ret = GST_FLOW_OK;
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
guint64 hdr_size;
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Get the rest of the header's header */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (size < (16 + 2 + 4))
|
|
|
|
goto not_enough_data;
|
|
|
|
|
|
|
|
/* skip GUID and two other bytes */
|
|
|
|
gst_asf_demux_skip_bytes (16 + 2, &data, &size);
|
|
|
|
hdr_size = gst_asf_demux_get_uint32 (&data, &size);
|
2003-01-31 21:10:00 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GST_INFO ("object is an extended header with a size of %u bytes", size);
|
2003-10-09 09:06:04 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* FIXME: does data_size include the rest of the header that we have read? */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (hdr_size > size)
|
|
|
|
goto not_enough_data;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
while (hdr_size > 0) {
|
|
|
|
ret = gst_asf_demux_process_object (demux, &data, &hdr_size);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (ret != GST_FLOW_OK)
|
|
|
|
break;
|
2003-10-09 09:06:04 +00:00
|
|
|
}
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
return ret;
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
|
|
|
|
not_enough_data:
|
|
|
|
{
|
|
|
|
GST_ELEMENT_ERROR (demux, STREAM, DEMUX, (NULL),
|
|
|
|
("short read parsing extended header object"));
|
|
|
|
return GST_FLOW_ERROR;
|
|
|
|
}
|
2003-01-31 21:10:00 +00:00
|
|
|
}
|
|
|
|
|
2006-07-14 13:02:53 +00:00
|
|
|
static GstFlowReturn
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
gst_asf_demux_process_language_list (GstASFDemux * demux, guint8 * data,
|
|
|
|
guint64 size)
|
2006-07-14 13:02:53 +00:00
|
|
|
{
|
|
|
|
guint i;
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (size < 2)
|
|
|
|
goto not_enough_data;
|
2006-07-14 13:02:53 +00:00
|
|
|
|
|
|
|
if (demux->languages) {
|
|
|
|
GST_WARNING ("More than one LANGUAGE_LIST object in stream");
|
|
|
|
g_strfreev (demux->languages);
|
|
|
|
demux->languages = NULL;
|
|
|
|
demux->num_languages = 0;
|
|
|
|
}
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
demux->num_languages = gst_asf_demux_get_uint16 (&data, &size);
|
2006-07-14 13:02:53 +00:00
|
|
|
GST_LOG ("%u languages:", demux->num_languages);
|
|
|
|
|
|
|
|
demux->languages = g_new0 (gchar *, demux->num_languages + 1);
|
|
|
|
for (i = 0; i < demux->num_languages; ++i) {
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
guint8 len, *lang_data = NULL;
|
2006-07-14 13:02:53 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (size < 1)
|
2007-01-24 17:36:36 +00:00
|
|
|
goto not_enough_data;
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
len = gst_asf_demux_get_uint8 (&data, &size);
|
|
|
|
if (gst_asf_demux_get_bytes (&lang_data, len, &data, &size)) {
|
2006-07-14 13:02:53 +00:00
|
|
|
gchar *utf8;
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
utf8 = g_convert ((gchar *) lang_data, len, "UTF-8", "UTF-16LE", NULL,
|
2006-07-14 13:02:53 +00:00
|
|
|
NULL, NULL);
|
|
|
|
|
|
|
|
/* truncate "en-us" etc. to just "en" */
|
|
|
|
if (utf8 && strlen (utf8) >= 5 && (utf8[2] == '-' || utf8[2] == '_')) {
|
|
|
|
utf8[2] = '\0';
|
|
|
|
}
|
|
|
|
GST_DEBUG ("[%u] %s", i, GST_STR_NULL (utf8));
|
|
|
|
demux->languages[i] = utf8;
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
g_free (lang_data);
|
2007-01-24 17:36:36 +00:00
|
|
|
} else {
|
|
|
|
goto not_enough_data;
|
2006-07-14 13:02:53 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return GST_FLOW_OK;
|
2007-01-24 17:36:36 +00:00
|
|
|
|
|
|
|
not_enough_data:
|
|
|
|
{
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GST_WARNING_OBJECT (demux, "short read parsing language list object!");
|
2007-01-24 17:36:36 +00:00
|
|
|
g_free (demux->languages);
|
|
|
|
demux->languages = NULL;
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
return GST_FLOW_OK; /* not fatal */
|
2007-01-24 17:36:36 +00:00
|
|
|
}
|
2006-07-14 13:02:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static GstFlowReturn
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
gst_asf_demux_process_ext_stream_props (GstASFDemux * demux, guint8 * data,
|
|
|
|
guint64 size)
|
2006-07-14 13:02:53 +00:00
|
|
|
{
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
AsfObject stream_obj;
|
2006-07-14 13:02:53 +00:00
|
|
|
asf_obj_ext_stream_properties esp = { 0, };
|
|
|
|
guint16 stream_name_count;
|
|
|
|
guint16 payload_ext_sys_count;
|
|
|
|
guint64 len;
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
guint8 *data_start = data;
|
|
|
|
guint obj_size = (guint) size;
|
2006-07-14 13:02:53 +00:00
|
|
|
guint i;
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (size < 8 + 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 2 + 2 + 8 + 2 + 2) /* 64 */
|
|
|
|
goto not_enough_data;
|
2006-07-14 13:02:53 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
esp.start_time = gst_asf_demux_get_uint64 (&data, &size);
|
|
|
|
esp.end_time = gst_asf_demux_get_uint64 (&data, &size);
|
|
|
|
esp.data_bitrate = gst_asf_demux_get_uint32 (&data, &size);
|
|
|
|
esp.buffer_size = gst_asf_demux_get_uint32 (&data, &size);
|
|
|
|
esp.intial_buf_fullness = gst_asf_demux_get_uint32 (&data, &size);
|
|
|
|
esp.data_bitrate2 = gst_asf_demux_get_uint32 (&data, &size);
|
|
|
|
esp.buffer_size2 = gst_asf_demux_get_uint32 (&data, &size);
|
|
|
|
esp.intial_buf_fullness2 = gst_asf_demux_get_uint32 (&data, &size);
|
|
|
|
esp.max_obj_size = gst_asf_demux_get_uint32 (&data, &size);
|
|
|
|
esp.flags = gst_asf_demux_get_uint32 (&data, &size);
|
|
|
|
esp.stream_num = gst_asf_demux_get_uint16 (&data, &size);
|
|
|
|
esp.lang_idx = gst_asf_demux_get_uint16 (&data, &size);
|
|
|
|
esp.avg_time_per_frame = gst_asf_demux_get_uint64 (&data, &size);
|
|
|
|
stream_name_count = gst_asf_demux_get_uint16 (&data, &size);
|
|
|
|
payload_ext_sys_count = gst_asf_demux_get_uint16 (&data, &size);
|
2006-07-14 13:02:53 +00:00
|
|
|
|
|
|
|
GST_INFO ("start_time = %" GST_TIME_FORMAT,
|
|
|
|
GST_TIME_ARGS (esp.start_time * GST_MSECOND));
|
|
|
|
GST_INFO ("end_time = %" GST_TIME_FORMAT,
|
|
|
|
GST_TIME_ARGS (esp.end_time * GST_MSECOND));
|
|
|
|
GST_INFO ("flags = %08x", esp.flags);
|
|
|
|
GST_INFO ("average time per frame = %" GST_TIME_FORMAT,
|
|
|
|
GST_TIME_ARGS (esp.avg_time_per_frame * 100));
|
|
|
|
GST_INFO ("stream number = %u", esp.stream_num);
|
|
|
|
GST_INFO ("stream language ID idx = %u (%s)", esp.lang_idx,
|
|
|
|
(esp.lang_idx < demux->num_languages) ?
|
|
|
|
GST_STR_NULL (demux->languages[esp.lang_idx]) : "??");
|
|
|
|
GST_INFO ("stream name count = %u", stream_name_count);
|
|
|
|
|
|
|
|
/* read stream names */
|
|
|
|
for (i = 0; i < stream_name_count; ++i) {
|
|
|
|
guint16 stream_lang_idx;
|
|
|
|
gchar *stream_name = NULL;
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (size < 2)
|
|
|
|
goto not_enough_data;
|
|
|
|
stream_lang_idx = gst_asf_demux_get_uint16 (&data, &size);
|
|
|
|
if (!gst_asf_demux_get_string (&stream_name, NULL, &data, &size))
|
|
|
|
goto not_enough_data;
|
2006-07-14 13:02:53 +00:00
|
|
|
GST_INFO ("stream name %d: %s", i, GST_STR_NULL (stream_name));
|
|
|
|
g_free (stream_name); /* TODO: store names in struct */
|
|
|
|
}
|
|
|
|
|
|
|
|
/* read payload extension systems stuff */
|
|
|
|
GST_LOG ("payload ext sys count = %u", payload_ext_sys_count);
|
|
|
|
for (i = 0; i < payload_ext_sys_count; ++i) {
|
|
|
|
guint32 sys_info_len;
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (!gst_asf_demux_skip_bytes (16 + 2, &data, &size) || size < 4)
|
|
|
|
goto not_enough_data;
|
|
|
|
sys_info_len = gst_asf_demux_get_uint32 (&data, &size);
|
2006-07-14 13:02:53 +00:00
|
|
|
GST_LOG ("payload systems info len = %u", sys_info_len);
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (!gst_asf_demux_skip_bytes (sys_info_len, &data, &size))
|
|
|
|
goto not_enough_data;
|
2006-07-14 13:02:53 +00:00
|
|
|
}
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GST_LOG ("bytes read: %u/%u", (guint) (data - data_start), obj_size);
|
2006-07-14 13:02:53 +00:00
|
|
|
|
|
|
|
/* there might be an optional STREAM_INFO object here now */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (size == 0)
|
2006-07-14 13:02:53 +00:00
|
|
|
goto done;
|
|
|
|
|
|
|
|
/* get size of the stream object */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (!asf_demux_peek_object (demux, data, size, &stream_obj))
|
|
|
|
goto not_enough_data;
|
|
|
|
|
|
|
|
if (stream_obj.id != ASF_OBJ_STREAM)
|
|
|
|
goto expected_stream_object;
|
2006-07-14 13:02:53 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (stream_obj.size < ASF_OBJECT_HEADER_SIZE ||
|
|
|
|
stream_obj.size > (10 * 1024 * 1024))
|
|
|
|
goto not_enough_data;
|
|
|
|
|
|
|
|
gst_asf_demux_skip_bytes (ASF_OBJECT_HEADER_SIZE, &data, &size);
|
2006-07-14 13:02:53 +00:00
|
|
|
|
|
|
|
/* process this stream object later after all the other 'normal' ones
|
|
|
|
* have been processed (since the others are more important/non-hidden) */
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
len = stream_obj.size - ASF_OBJECT_HEADER_SIZE;
|
|
|
|
if (!gst_asf_demux_get_bytes (&esp.stream_obj_data, len, &data, &size))
|
|
|
|
goto not_enough_data;
|
2006-07-14 13:02:53 +00:00
|
|
|
|
|
|
|
esp.stream_obj_len = len;
|
|
|
|
|
|
|
|
done:
|
|
|
|
|
|
|
|
demux->ext_stream_props = g_slist_append (demux->ext_stream_props,
|
|
|
|
g_memdup (&esp, sizeof (esp)));
|
|
|
|
|
|
|
|
return GST_FLOW_OK;
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
|
|
|
|
/* Errors */
|
|
|
|
not_enough_data:
|
|
|
|
{
|
|
|
|
GST_WARNING_OBJECT (demux, "short read parsing ext stream props object!");
|
|
|
|
return GST_FLOW_OK; /* not absolutely fatal */
|
|
|
|
}
|
|
|
|
expected_stream_object:
|
|
|
|
{
|
|
|
|
GST_WARNING_OBJECT (demux, "error parsing extended stream properties "
|
|
|
|
"object: expected embedded stream object, but got %s object instead!",
|
|
|
|
gst_asf_get_guid_nick (asf_object_guids, stream_obj.id));
|
|
|
|
return GST_FLOW_OK; /* not absolutely fatal */
|
|
|
|
}
|
2006-07-14 13:02:53 +00:00
|
|
|
}
|
|
|
|
|
2006-07-07 19:26:40 +00:00
|
|
|
static const gchar *
|
|
|
|
gst_asf_demux_push_obj (GstASFDemux * demux, guint32 obj_id)
|
|
|
|
{
|
|
|
|
const gchar *nick;
|
|
|
|
|
|
|
|
nick = gst_asf_get_guid_nick (asf_object_guids, obj_id);
|
|
|
|
if (g_str_has_prefix (nick, "ASF_OBJ_"))
|
|
|
|
nick += strlen ("ASF_OBJ_");
|
|
|
|
|
|
|
|
if (demux->objpath == NULL) {
|
|
|
|
demux->objpath = g_strdup (nick);
|
|
|
|
} else {
|
|
|
|
gchar *newpath;
|
|
|
|
|
|
|
|
newpath = g_strdup_printf ("%s/%s", demux->objpath, nick);
|
|
|
|
g_free (demux->objpath);
|
|
|
|
demux->objpath = newpath;
|
|
|
|
}
|
|
|
|
|
|
|
|
return (const gchar *) demux->objpath;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
gst_asf_demux_pop_obj (GstASFDemux * demux)
|
|
|
|
{
|
|
|
|
gchar *s;
|
|
|
|
|
|
|
|
if ((s = g_strrstr (demux->objpath, "/"))) {
|
|
|
|
*s = '\0';
|
|
|
|
} else {
|
|
|
|
g_free (demux->objpath);
|
|
|
|
demux->objpath = NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2006-07-14 13:02:53 +00:00
|
|
|
static void
|
|
|
|
gst_asf_demux_process_queued_extended_stream_objects (GstASFDemux * demux)
|
|
|
|
{
|
|
|
|
GSList *l;
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GST_DEBUG_OBJECT (demux, "parsing %d stream objects embedded in extended "
|
|
|
|
"stream properties", g_slist_length (demux->ext_stream_props));
|
2006-07-14 13:02:53 +00:00
|
|
|
|
|
|
|
for (l = demux->ext_stream_props; l != NULL; l = l->next) {
|
|
|
|
asf_obj_ext_stream_properties *esp;
|
|
|
|
guint64 len;
|
|
|
|
guint8 *data;
|
|
|
|
|
|
|
|
esp = (asf_obj_ext_stream_properties *) l->data;
|
|
|
|
data = esp->stream_obj_data;
|
|
|
|
len = esp->stream_obj_len;
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GST_DEBUG ("Parsing stream data allocated at %p", data);
|
|
|
|
|
|
|
|
if (data && gst_asf_demux_process_stream (demux, data, len) != GST_FLOW_OK) {
|
2006-07-14 13:02:53 +00:00
|
|
|
GST_WARNING_OBJECT (demux,
|
|
|
|
"failed to parse stream object in extended "
|
|
|
|
"stream properties object for stream %u", esp->stream_num);
|
|
|
|
}
|
|
|
|
g_free (esp->stream_obj_data);
|
|
|
|
esp->stream_obj_data = NULL;
|
|
|
|
esp->stream_obj_data = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static GstFlowReturn
|
|
|
|
gst_asf_demux_process_object (GstASFDemux * demux, guint8 ** p_data,
|
|
|
|
guint64 * p_size)
|
2004-03-14 22:34:30 +00:00
|
|
|
{
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GstFlowReturn ret = GST_FLOW_OK;
|
2002-10-17 21:41:47 +00:00
|
|
|
guint32 obj_id;
|
2006-07-14 13:02:53 +00:00
|
|
|
guint64 obj_size, obj_data_size;
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (!gst_asf_demux_get_object_header (demux, &obj_id, &obj_size, p_data,
|
|
|
|
p_size)) {
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
obj_data_size = obj_size - ASF_OBJECT_HEADER_SIZE;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
if (*p_size < obj_data_size)
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
|
|
|
|
2006-07-07 19:26:40 +00:00
|
|
|
gst_asf_demux_push_obj (demux, obj_id);
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
GST_INFO ("%s: size %" G_GUINT64_FORMAT, demux->objpath, obj_size);
|
2002-10-17 21:41:47 +00:00
|
|
|
|
2003-01-31 21:41:07 +00:00
|
|
|
switch (obj_id) {
|
2004-03-14 22:34:30 +00:00
|
|
|
case ASF_OBJ_STREAM:
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
ret = gst_asf_demux_process_stream (demux, *p_data, obj_data_size);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
break;
|
2004-03-14 22:34:30 +00:00
|
|
|
case ASF_OBJ_FILE:
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
ret = gst_asf_demux_process_file (demux, *p_data, obj_data_size);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
break;
|
2004-03-14 22:34:30 +00:00
|
|
|
case ASF_OBJ_HEADER:
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
ret = gst_asf_demux_process_header (demux, *p_data, obj_data_size);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
break;
|
2004-03-14 22:34:30 +00:00
|
|
|
case ASF_OBJ_COMMENT:
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
ret = gst_asf_demux_process_comment (demux, *p_data, obj_data_size);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
break;
|
2004-03-14 22:34:30 +00:00
|
|
|
case ASF_OBJ_HEAD1:
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
ret = gst_asf_demux_process_header_ext (demux, *p_data, obj_data_size);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
break;
|
2004-03-14 22:34:30 +00:00
|
|
|
case ASF_OBJ_BITRATE_PROPS:
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
ret =
|
|
|
|
gst_asf_demux_process_bitrate_props_object (demux, *p_data,
|
|
|
|
obj_data_size);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
break;
|
2005-01-05 21:46:19 +00:00
|
|
|
case ASF_OBJ_EXT_CONTENT_DESC:
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
ret =
|
|
|
|
gst_asf_demux_process_ext_content_desc (demux, *p_data,
|
|
|
|
obj_data_size);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
break;
|
2006-07-14 13:02:53 +00:00
|
|
|
case ASF_OBJ_EXTENDED_STREAM_PROPS:
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
ret =
|
|
|
|
gst_asf_demux_process_ext_stream_props (demux, *p_data,
|
|
|
|
obj_data_size);
|
2006-07-14 13:02:53 +00:00
|
|
|
break;
|
|
|
|
case ASF_OBJ_LANGUAGE_LIST:
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
ret = gst_asf_demux_process_language_list (demux, *p_data, obj_data_size);
|
2006-07-14 13:02:53 +00:00
|
|
|
break;
|
2006-07-28 15:15:15 +00:00
|
|
|
case ASF_OBJ_CONTENT_ENCRYPTION:
|
|
|
|
case ASF_OBJ_EXT_CONTENT_ENCRYPTION:
|
|
|
|
case ASF_OBJ_DIGITAL_SIGNATURE_OBJECT:
|
|
|
|
goto error_encrypted;
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
case ASF_OBJ_CONCEAL_NONE:
|
|
|
|
case ASF_OBJ_HEAD2:
|
2004-03-14 22:34:30 +00:00
|
|
|
case ASF_OBJ_UNDEFINED:
|
2004-05-18 01:38:49 +00:00
|
|
|
case ASF_OBJ_CODEC_COMMENT:
|
|
|
|
case ASF_OBJ_INDEX:
|
|
|
|
case ASF_OBJ_PADDING:
|
|
|
|
case ASF_OBJ_BITRATE_MUTEX:
|
|
|
|
case ASF_OBJ_METADATA_OBJECT:
|
2006-07-07 19:26:40 +00:00
|
|
|
case ASF_OBJ_COMPATIBILITY:
|
|
|
|
case ASF_OBJ_INDEX_PLACEHOLDER:
|
|
|
|
case ASF_OBJ_INDEX_PARAMETERS:
|
|
|
|
case ASF_OBJ_ADVANCED_MUTUAL_EXCLUSION:
|
|
|
|
case ASF_OBJ_STREAM_PRIORITIZATION:
|
2006-07-28 15:15:15 +00:00
|
|
|
case ASF_OBJ_SCRIPT_COMMAND:
|
2004-03-14 22:34:30 +00:00
|
|
|
default:
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
/* Unknown/unhandled object, skip it and hope for the best */
|
|
|
|
GST_INFO ("%s: skipping object", demux->objpath);
|
|
|
|
ret = GST_FLOW_OK;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
break;
|
2003-01-31 18:23:38 +00:00
|
|
|
}
|
|
|
|
|
gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
|
|
|
/* this can't fail, we checked the number of bytes available before */
|
|
|
|
gst_asf_demux_skip_bytes (obj_data_size, p_data, p_size);
|
|
|
|
|
|
|
|
GST_LOG ("%s: ret = %s", demux->objpath, gst_asf_get_flow_name (ret));
|
2006-07-07 19:26:40 +00:00
|
|
|
|
|
|
|
gst_asf_demux_pop_obj (demux);
|
2003-11-06 13:16:24 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
return ret;
|
2006-07-28 15:15:15 +00:00
|
|
|
|
|
|
|
/* ERRORS */
|
|
|
|
error_encrypted:
|
|
|
|
{
|
|
|
|
GST_ELEMENT_ERROR (demux, STREAM, DECODE,
|
|
|
|
(_("This file is encrypted and cannot be played.")), (NULL));
|
|
|
|
return GST_FLOW_ERROR;
|
|
|
|
}
|
2003-01-31 18:23:38 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static void
|
|
|
|
gst_asf_demux_descramble_segment (GstASFDemux * demux,
|
2004-03-14 22:34:30 +00:00
|
|
|
asf_segment_info * segment_info, asf_stream_context * stream)
|
|
|
|
{
|
2003-01-31 18:23:38 +00:00
|
|
|
GstBuffer *scrambled_buffer;
|
|
|
|
GstBuffer *descrambled_buffer;
|
|
|
|
GstBuffer *sub_buffer;
|
2004-03-14 22:34:30 +00:00
|
|
|
guint offset;
|
|
|
|
guint off;
|
|
|
|
guint row;
|
|
|
|
guint col;
|
|
|
|
guint idx;
|
|
|
|
|
2003-01-31 18:23:38 +00:00
|
|
|
/* descrambled_buffer is initialised in the first iteration */
|
|
|
|
descrambled_buffer = NULL;
|
|
|
|
scrambled_buffer = stream->payload;
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (segment_info->segment_size < demux->ds_packet_size * demux->span)
|
|
|
|
return;
|
2003-01-31 18:23:38 +00:00
|
|
|
|
2004-03-14 22:34:30 +00:00
|
|
|
for (offset = 0; offset < segment_info->segment_size;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
offset += demux->ds_chunk_size) {
|
|
|
|
off = offset / demux->ds_chunk_size;
|
|
|
|
row = off / demux->span;
|
|
|
|
col = off % demux->span;
|
|
|
|
idx = row + col * demux->ds_packet_size / demux->ds_chunk_size;
|
|
|
|
GST_DEBUG ("idx=%u, row=%u, col=%u, off=%u, ds_chunk_size=%u", idx, row,
|
|
|
|
col, off, demux->ds_chunk_size);
|
|
|
|
GST_DEBUG ("segment_info->segment_size=%u, span=%u, packet_size=%u",
|
|
|
|
segment_info->segment_size, demux->span, demux->ds_packet_size);
|
|
|
|
GST_DEBUG ("GST_BUFFER_SIZE (scrambled_buffer) = %u",
|
|
|
|
GST_BUFFER_SIZE (scrambled_buffer));
|
2004-03-14 22:34:30 +00:00
|
|
|
sub_buffer =
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_buffer_create_sub (scrambled_buffer, idx * demux->ds_chunk_size,
|
|
|
|
demux->ds_chunk_size);
|
2003-01-31 18:23:38 +00:00
|
|
|
if (!offset) {
|
|
|
|
descrambled_buffer = sub_buffer;
|
|
|
|
} else {
|
2004-03-06 01:25:57 +00:00
|
|
|
GstBuffer *newbuf;
|
|
|
|
|
|
|
|
newbuf = gst_buffer_merge (descrambled_buffer, sub_buffer);
|
2003-01-31 18:23:38 +00:00
|
|
|
gst_buffer_unref (sub_buffer);
|
2004-03-06 01:25:57 +00:00
|
|
|
gst_buffer_unref (descrambled_buffer);
|
|
|
|
descrambled_buffer = newbuf;
|
2003-01-31 18:23:38 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stream->payload = descrambled_buffer;
|
|
|
|
gst_buffer_unref (scrambled_buffer);
|
|
|
|
}
|
|
|
|
|
2004-03-14 22:34:30 +00:00
|
|
|
static gboolean
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_asf_demux_element_send_event (GstElement * element, GstEvent * event)
|
|
|
|
{
|
|
|
|
GstASFDemux *demux = GST_ASF_DEMUX (element);
|
|
|
|
gint i;
|
|
|
|
|
|
|
|
GST_DEBUG ("handling element event of type %s", GST_EVENT_TYPE_NAME (event));
|
|
|
|
|
|
|
|
for (i = 0; i < demux->num_streams; ++i) {
|
|
|
|
gst_event_ref (event);
|
|
|
|
if (gst_asf_demux_handle_src_event (demux->stream[i].pad, event)) {
|
|
|
|
gst_event_unref (event);
|
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
gst_event_unref (event);
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* takes ownership of the passed event */
|
|
|
|
static gboolean
|
|
|
|
gst_asf_demux_send_event_unlocked (GstASFDemux * demux, GstEvent * event)
|
2002-10-17 21:41:47 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gboolean ret = TRUE;
|
|
|
|
gint i;
|
|
|
|
|
|
|
|
GST_DEBUG ("sending event of type %s to all source pads",
|
|
|
|
GST_EVENT_TYPE_NAME (event));
|
|
|
|
|
|
|
|
for (i = 0; i < demux->num_streams; ++i) {
|
|
|
|
gst_event_ref (event);
|
|
|
|
gst_pad_push_event (demux->stream[i].pad, event);
|
|
|
|
}
|
|
|
|
gst_event_unref (event);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
static GstFlowReturn
|
|
|
|
gst_asf_demux_push_buffer (GstASFDemux * demux, asf_stream_context * stream,
|
|
|
|
GstBuffer * buf)
|
|
|
|
{
|
|
|
|
GstFlowReturn ret;
|
|
|
|
|
|
|
|
/* do we need to send a newsegment event? */
|
|
|
|
if (stream->need_newsegment) {
|
2006-04-07 09:14:26 +00:00
|
|
|
GST_DEBUG ("sending new-segment event on pad %s: %" GST_TIME_FORMAT " - %"
|
|
|
|
GST_TIME_FORMAT, GST_PAD_NAME (stream->pad),
|
|
|
|
GST_TIME_ARGS (demux->segment.start),
|
|
|
|
GST_TIME_ARGS (demux->segment.stop));
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
|
|
|
/* FIXME: if we need to send a newsegment event on this pad and
|
|
|
|
* the buffer doesn't have a timestamp, should we just drop the buffer
|
|
|
|
* and wait for one with a timestamp before sending it? */
|
2006-04-07 09:14:26 +00:00
|
|
|
/* FIXME: last parameter in newsegment isn't right, is it?! */
|
|
|
|
gst_pad_push_event (stream->pad,
|
|
|
|
gst_event_new_new_segment (FALSE, demux->segment.rate, GST_FORMAT_TIME,
|
|
|
|
demux->segment.start, demux->segment.stop, demux->segment.start));
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
|
|
|
stream->need_newsegment = FALSE;
|
|
|
|
}
|
|
|
|
|
2006-06-28 11:20:03 +00:00
|
|
|
/* need to send tags? */
|
|
|
|
if (stream->pending_tags) {
|
|
|
|
GST_LOG_OBJECT (demux, "tags %" GST_PTR_FORMAT, stream->pending_tags);
|
|
|
|
gst_element_found_tags_for_pad (GST_ELEMENT (demux), stream->pad,
|
|
|
|
stream->pending_tags);
|
|
|
|
stream->pending_tags = NULL;
|
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* don't set the same time stamp on multiple consecutive outgoing
|
|
|
|
* video buffers, set it on the first one and set NONE on the others,
|
|
|
|
* it's the decoder's job to fill the missing bits properly */
|
|
|
|
if (stream->is_video && GST_BUFFER_TIMESTAMP_IS_VALID (buf) &&
|
|
|
|
GST_BUFFER_TIMESTAMP (buf) == stream->last_buffer_timestamp) {
|
|
|
|
GST_BUFFER_TIMESTAMP (buf) = GST_CLOCK_TIME_NONE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* make sure segment.last_stop is continually increasing */
|
|
|
|
if (GST_BUFFER_TIMESTAMP_IS_VALID (buf) &&
|
|
|
|
demux->segment.last_stop < (gint64) GST_BUFFER_TIMESTAMP (buf)) {
|
|
|
|
gst_segment_set_last_stop (&demux->segment, GST_FORMAT_TIME,
|
|
|
|
GST_BUFFER_TIMESTAMP (buf));
|
|
|
|
}
|
|
|
|
|
|
|
|
if (GST_BUFFER_TIMESTAMP_IS_VALID (buf))
|
|
|
|
stream->last_buffer_timestamp = GST_BUFFER_TIMESTAMP (buf);
|
|
|
|
|
|
|
|
gst_buffer_set_caps (buf, stream->caps);
|
|
|
|
|
|
|
|
GST_INFO ("pushing buffer on pad %s, ts=%" GST_TIME_FORMAT,
|
|
|
|
GST_PAD_NAME (stream->pad), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
|
|
|
|
|
|
|
|
ret = gst_pad_push (stream->pad, buf);
|
|
|
|
|
|
|
|
if (ret == GST_FLOW_NOT_LINKED)
|
|
|
|
ret = GST_FLOW_OK;
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
static GstFlowReturn
|
|
|
|
gst_asf_demux_process_chunk (GstASFDemux * demux,
|
|
|
|
asf_packet_info * packet_info, asf_segment_info * segment_info,
|
|
|
|
guint8 ** p_data, guint64 * p_size)
|
|
|
|
{
|
|
|
|
GstFlowReturn ret = GST_FLOW_OK;
|
2002-10-17 21:41:47 +00:00
|
|
|
asf_stream_context *stream;
|
2004-03-14 22:34:30 +00:00
|
|
|
GstBuffer *buffer;
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
stream = gst_asf_demux_get_stream (demux, segment_info->stream_number);
|
|
|
|
if (stream == NULL) {
|
|
|
|
GST_WARNING ("invalid stream number %d", segment_info->stream_number);
|
2006-07-08 20:29:56 +00:00
|
|
|
if (!gst_asf_demux_skip_bytes (segment_info->chunk_size, p_data, p_size))
|
|
|
|
ret = ASF_FLOW_NEED_MORE_DATA;
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
goto done;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
}
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_DEBUG ("Processing %s chunk of size %u (frag_offset=%d)",
|
|
|
|
GST_PAD_NAME (stream->pad), segment_info->chunk_size,
|
2004-03-14 22:34:30 +00:00
|
|
|
stream->frag_offset);
|
|
|
|
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
if (segment_info->frag_offset == 0) {
|
2002-10-17 21:41:47 +00:00
|
|
|
/* new packet */
|
|
|
|
stream->sequence = segment_info->sequence;
|
2006-03-27 10:39:03 +00:00
|
|
|
if (!GST_CLOCK_TIME_IS_VALID (stream->first_pts))
|
|
|
|
stream->first_pts = segment_info->frag_timestamp - demux->preroll;
|
|
|
|
demux->pts =
|
|
|
|
segment_info->frag_timestamp - demux->preroll - stream->first_pts;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
if (stream->is_video) {
|
|
|
|
GST_DEBUG ("%s: demux->pts=%lld (frag_timestamp=%ld, preroll=%lld)",
|
|
|
|
GST_PAD_NAME (stream->pad), demux->pts,
|
|
|
|
segment_info->frag_timestamp, demux->preroll);
|
|
|
|
}
|
|
|
|
*/
|
|
|
|
|
|
|
|
if (!gst_asf_demux_get_buffer (&buffer, segment_info->chunk_size,
|
|
|
|
p_data, p_size)) {
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
|
|
|
}
|
|
|
|
|
|
|
|
GST_DEBUG ("BUFFER: Copied stream to buffer %p", buffer);
|
2003-01-23 11:15:49 +00:00
|
|
|
stream->payload = buffer;
|
2002-10-17 21:41:47 +00:00
|
|
|
} else {
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_DEBUG ("segment_info->sequence=%d, stream->sequence=%d,"
|
|
|
|
" segment_info->frag_offset=%d, stream->frag_offset=%d",
|
2004-03-15 19:32:25 +00:00
|
|
|
segment_info->sequence, stream->sequence, segment_info->frag_offset,
|
|
|
|
stream->frag_offset);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
if (segment_info->sequence == stream->sequence &&
|
|
|
|
segment_info->frag_offset == stream->frag_offset) {
|
2003-01-23 11:15:49 +00:00
|
|
|
GstBuffer *new_buffer;
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* continuing packet */
|
|
|
|
GST_INFO ("continuation packet");
|
|
|
|
|
|
|
|
if (!gst_asf_demux_get_buffer (&buffer, segment_info->chunk_size,
|
|
|
|
p_data, p_size)) {
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
|
|
|
}
|
|
|
|
|
|
|
|
GST_DEBUG ("copied stream to buffer %p", buffer);
|
|
|
|
|
|
|
|
new_buffer = gst_buffer_merge (stream->payload, buffer);
|
|
|
|
GST_DEBUG_OBJECT (demux,
|
|
|
|
"BUFFER: Merged new_buffer (%p - %d) from stream->payload (%p - %d)"
|
|
|
|
" and buffer (%p - %d)", new_buffer,
|
|
|
|
GST_MINI_OBJECT_REFCOUNT_VALUE (new_buffer), stream->payload,
|
|
|
|
GST_MINI_OBJECT_REFCOUNT_VALUE (stream->payload), buffer,
|
|
|
|
GST_MINI_OBJECT_REFCOUNT_VALUE (buffer));
|
|
|
|
gst_buffer_unref (stream->payload);
|
|
|
|
gst_buffer_unref (buffer);
|
|
|
|
stream->payload = new_buffer;
|
|
|
|
} else {
|
|
|
|
/* cannot continue current packet: free it */
|
|
|
|
if (stream->frag_offset != 0) {
|
|
|
|
/* cannot create new packet */
|
|
|
|
GST_DEBUG ("BUFFER: Freeing stream->payload (%p)", stream->payload);
|
|
|
|
gst_buffer_unref (stream->payload);
|
|
|
|
#if 0
|
|
|
|
/* FIXME: is this right/needed? we already do that below, no? */
|
|
|
|
packet_info->size_left -= segment_info->chunk_size;
|
|
|
|
#endif
|
|
|
|
stream->frag_offset = 0;
|
|
|
|
}
|
2006-03-27 10:39:03 +00:00
|
|
|
demux->pts =
|
|
|
|
segment_info->frag_timestamp - demux->preroll - stream->first_pts;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
if (stream->is_video) {
|
|
|
|
GST_DEBUG ("%s: demux->pts=%lld (frag_timestamp=%ld, preroll=%lld)",
|
|
|
|
GST_PAD_NAME (stream->pad), demux->pts,
|
|
|
|
segment_info->frag_timestamp, demux->preroll);
|
|
|
|
}
|
|
|
|
*/
|
|
|
|
|
|
|
|
goto done;
|
|
|
|
#if 0
|
|
|
|
/* FIXME: where did this come from / fit in ? */
|
|
|
|
return TRUE;
|
|
|
|
else {
|
|
|
|
/* create new packet */
|
|
|
|
stream->sequence = segment_info->sequence;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stream->frag_offset += segment_info->chunk_size;
|
|
|
|
|
|
|
|
GST_DEBUG ("frag_offset = %d segment_size = %d ", stream->frag_offset,
|
|
|
|
segment_info->segment_size);
|
|
|
|
|
|
|
|
if (stream->frag_offset < segment_info->segment_size) {
|
|
|
|
/* We don't have the whole packet yet */
|
|
|
|
} else {
|
|
|
|
/* We have the whole packet now so we should push the packet to
|
|
|
|
the src pad now. First though we should check if we need to do
|
|
|
|
descrambling */
|
|
|
|
if (demux->span > 1) {
|
|
|
|
gst_asf_demux_descramble_segment (demux, segment_info, stream);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (stream->is_video) {
|
|
|
|
GST_DEBUG ("%s: demux->pts=%lld=%" GST_TIME_FORMAT
|
|
|
|
", stream->last_pts=%lld=%" GST_TIME_FORMAT,
|
|
|
|
GST_PAD_NAME (stream->pad), demux->pts,
|
|
|
|
GST_TIME_ARGS ((GST_SECOND / 1000) * demux->pts), stream->last_pts,
|
|
|
|
GST_TIME_ARGS ((GST_SECOND / 1000) * stream->last_pts));
|
|
|
|
}
|
|
|
|
|
|
|
|
/* FIXME: last_pts is not a GstClockTime and not in nanoseconds, so
|
|
|
|
* this is not really 100% right ... */
|
|
|
|
if (demux->pts >= stream->last_pts ||
|
|
|
|
!GST_CLOCK_TIME_IS_VALID (stream->last_pts)) {
|
|
|
|
stream->last_pts = demux->pts;
|
|
|
|
}
|
|
|
|
|
|
|
|
GST_BUFFER_TIMESTAMP (stream->payload) =
|
|
|
|
(GST_SECOND / 1000) * stream->last_pts;
|
|
|
|
|
|
|
|
GST_DEBUG ("sending stream %d of size %d", stream->id,
|
|
|
|
segment_info->chunk_size);
|
|
|
|
|
|
|
|
if (!stream->fps_known) {
|
|
|
|
if (!stream->cache) {
|
|
|
|
stream->cache = stream->payload;
|
|
|
|
} else {
|
|
|
|
gdouble fps;
|
|
|
|
gint64 diff;
|
|
|
|
gint num, denom;
|
|
|
|
|
|
|
|
/* why is all this needed anyway? (tpm) */
|
|
|
|
diff = GST_BUFFER_TIMESTAMP (stream->payload) -
|
|
|
|
GST_BUFFER_TIMESTAMP (stream->cache);
|
|
|
|
|
|
|
|
fps = (gdouble) GST_SECOND / diff;
|
|
|
|
|
|
|
|
/* artificial cap */
|
|
|
|
if (fps >= 50.0) {
|
|
|
|
num = 50;
|
|
|
|
denom = 1;
|
|
|
|
} else if (fps <= 5.0) {
|
|
|
|
num = 5;
|
|
|
|
denom = 1;
|
|
|
|
} else {
|
|
|
|
/* crack alert */
|
|
|
|
num = (gint) GST_SECOND;
|
|
|
|
while (diff > G_MAXINT) {
|
|
|
|
num = num >> 1;
|
|
|
|
diff = diff >> 1;
|
|
|
|
}
|
|
|
|
denom = (gint) diff;
|
|
|
|
}
|
|
|
|
stream->fps_known = TRUE;
|
|
|
|
stream->caps = gst_caps_make_writable (stream->caps);
|
|
|
|
gst_caps_set_simple (stream->caps,
|
|
|
|
"framerate", GST_TYPE_FRACTION, num, denom, NULL);
|
|
|
|
GST_DEBUG ("set up stream with fps %d/%d", num, denom);
|
|
|
|
gst_pad_use_fixed_caps (stream->pad);
|
|
|
|
gst_pad_set_caps (stream->pad, stream->caps);
|
|
|
|
|
|
|
|
ret = gst_asf_demux_push_buffer (demux, stream, stream->cache);
|
|
|
|
stream->cache = NULL;
|
|
|
|
|
|
|
|
ret = gst_asf_demux_push_buffer (demux, stream, stream->payload);
|
|
|
|
stream->payload = NULL;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
ret = gst_asf_demux_push_buffer (demux, stream, stream->payload);
|
|
|
|
stream->payload = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
stream->frag_offset = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
done:
|
|
|
|
|
|
|
|
packet_info->size_left -= segment_info->chunk_size;
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
static GstFlowReturn
|
|
|
|
gst_asf_demux_process_segment (GstASFDemux * demux,
|
|
|
|
asf_packet_info * packet_info, guint8 ** p_data, guint64 * p_size)
|
|
|
|
{
|
|
|
|
GstFlowReturn ret = GST_FLOW_OK;
|
|
|
|
asf_segment_info segment_info;
|
|
|
|
gboolean has_key_frame;
|
|
|
|
guint64 start_size;
|
|
|
|
guint32 replic_size;
|
|
|
|
guint32 time_start;
|
|
|
|
guint32 frag_size;
|
|
|
|
guint32 rsize;
|
|
|
|
guint8 time_delta;
|
|
|
|
guint8 byte;
|
|
|
|
|
|
|
|
start_size = *p_size;
|
|
|
|
|
|
|
|
if (*p_size < 1)
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
|
|
|
|
|
|
|
byte = gst_asf_demux_get_uint8 (p_data, p_size);
|
|
|
|
segment_info.stream_number = byte & 0x7f;
|
|
|
|
has_key_frame = ((byte & 0x80) == 0x80); /* FIXME: use this somewhere? */
|
|
|
|
|
|
|
|
GST_INFO ("processing segment for stream %u%s", segment_info.stream_number,
|
|
|
|
(has_key_frame) ? " (has keyframe)" : "");
|
|
|
|
|
|
|
|
/* FIXME: check (doesn't work) */
|
|
|
|
#if 0
|
|
|
|
{
|
|
|
|
asf_stream_context *stream;
|
|
|
|
|
|
|
|
stream = gst_asf_demux_get_stream (demux, segment_info.stream_number);
|
|
|
|
if (stream && stream->last_pts == GST_CLOCK_TIME_NONE &&
|
|
|
|
stream->is_video && !has_key_frame) {
|
|
|
|
g_print ("skipping segment, waiting for a key unit\n");
|
|
|
|
if (!gst_asf_demux_skip_bytes (segment_info.segment_size - 1, p_data,
|
|
|
|
p_size))
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
|
|
|
packet_info->size_left -= segment_info.segment_size;
|
|
|
|
return GST_FLOW_OK;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2007-01-24 17:36:36 +00:00
|
|
|
{
|
|
|
|
const guint lengths[4] = { 0, 1, 2, 4 };
|
|
|
|
guint needed;
|
|
|
|
|
|
|
|
needed = lengths[packet_info->seqtype]
|
|
|
|
+ lengths[packet_info->fragoffsettype]
|
|
|
|
+ lengths[packet_info->replicsizetype];
|
|
|
|
|
|
|
|
if (*p_size < needed)
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
segment_info.sequence =
|
|
|
|
gst_asf_demux_get_var_length (packet_info->seqtype, p_data, p_size);
|
|
|
|
segment_info.frag_offset =
|
|
|
|
gst_asf_demux_get_var_length (packet_info->fragoffsettype, p_data,
|
|
|
|
p_size);
|
|
|
|
replic_size =
|
|
|
|
gst_asf_demux_get_var_length (packet_info->replicsizetype, p_data,
|
|
|
|
p_size);
|
|
|
|
|
|
|
|
GST_DEBUG ("sequence=%u, frag_offset=%u, replic_size=%u",
|
|
|
|
segment_info.sequence, segment_info.frag_offset, replic_size);
|
|
|
|
|
|
|
|
if (replic_size > 1) {
|
|
|
|
asf_replicated_data replicated_data_header;
|
|
|
|
|
|
|
|
segment_info.compressed = FALSE;
|
|
|
|
|
|
|
|
/* It's uncompressed with replic data */
|
|
|
|
if (!gst_asf_demux_get_replicated_data (&replicated_data_header, p_data,
|
|
|
|
p_size))
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
|
|
|
/* {
|
|
|
|
GST_ELEMENT_ERROR (demux, STREAM, DEMUX, (NULL),
|
|
|
|
("The payload has replicated data but the size is less than 8"));
|
|
|
|
return GST_FLOW_ERROR;
|
|
|
|
}
|
|
|
|
*/
|
|
|
|
segment_info.frag_timestamp = replicated_data_header.frag_timestamp;
|
|
|
|
segment_info.segment_size = replicated_data_header.object_size;
|
|
|
|
|
|
|
|
if (replic_size > 8) {
|
|
|
|
if (!gst_asf_demux_skip_bytes ((replic_size - 8), p_data, p_size))
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if (replic_size == 1) {
|
|
|
|
/* It's compressed */
|
|
|
|
segment_info.compressed = TRUE;
|
2007-01-24 17:36:36 +00:00
|
|
|
if (*p_size < 1)
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
time_delta = gst_asf_demux_get_uint8 (p_data, p_size);
|
|
|
|
GST_DEBUG ("time_delta = %u", time_delta);
|
|
|
|
} else {
|
|
|
|
segment_info.compressed = FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
time_start = segment_info.frag_offset;
|
|
|
|
segment_info.frag_offset = 0;
|
2006-10-09 12:09:14 +00:00
|
|
|
segment_info.frag_timestamp = time_start; /* was: demux->timestamp */
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
GST_DEBUG ("multiple = %u, compressed = %u",
|
|
|
|
packet_info->multiple, segment_info.compressed);
|
|
|
|
|
|
|
|
if (packet_info->multiple) {
|
2007-01-24 17:36:36 +00:00
|
|
|
const guint lengths[4] = { 0, 1, 2, 4 };
|
|
|
|
|
|
|
|
if (*p_size < lengths[packet_info->segsizetype])
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
frag_size = gst_asf_demux_get_var_length (packet_info->segsizetype,
|
|
|
|
p_data, p_size);
|
|
|
|
} else {
|
|
|
|
frag_size = packet_info->size_left - (start_size - *p_size);
|
|
|
|
}
|
|
|
|
|
|
|
|
rsize = start_size - *p_size;
|
|
|
|
|
|
|
|
packet_info->size_left -= rsize;
|
|
|
|
|
|
|
|
GST_DEBUG ("size left = %u, frag size = %u, rsize = %u",
|
|
|
|
packet_info->size_left, frag_size, rsize);
|
|
|
|
|
|
|
|
if (segment_info.compressed) {
|
|
|
|
while (frag_size > 0) {
|
2007-01-24 17:36:36 +00:00
|
|
|
if (*p_size < 1)
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
byte = gst_asf_demux_get_uint8 (p_data, p_size);
|
|
|
|
packet_info->size_left--;
|
|
|
|
segment_info.chunk_size = byte;
|
|
|
|
segment_info.segment_size = segment_info.chunk_size;
|
|
|
|
|
|
|
|
if (segment_info.chunk_size > packet_info->size_left) {
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
|
|
|
/* or is this an error?
|
|
|
|
* GST_ELEMENT_ERROR (demux, STREAM, DEMUX, (NULL),
|
|
|
|
* ("Payload chunk overruns packet size."));
|
|
|
|
* return GST_FLOW_ERROR; */
|
|
|
|
}
|
|
|
|
|
|
|
|
ret = gst_asf_demux_process_chunk (demux, packet_info, &segment_info,
|
|
|
|
p_data, p_size);
|
|
|
|
|
|
|
|
if (ret != GST_FLOW_OK)
|
|
|
|
break;
|
|
|
|
|
|
|
|
if (segment_info.chunk_size < frag_size)
|
|
|
|
frag_size -= segment_info.chunk_size + 1;
|
|
|
|
else {
|
|
|
|
/*
|
|
|
|
GST_ELEMENT_ERROR (demux, STREAM, DEMUX,
|
|
|
|
("Invalid data in stream"),
|
|
|
|
("Invalid fragment size indicator in segment"));
|
|
|
|
ret = GST_FLOW_ERROR;
|
|
|
|
*/
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
segment_info.chunk_size = frag_size;
|
|
|
|
ret = gst_asf_demux_process_chunk (demux, packet_info, &segment_info,
|
|
|
|
p_data, p_size);
|
|
|
|
}
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
static GstFlowReturn
|
|
|
|
gst_asf_demux_handle_data (GstASFDemux * demux, guint8 ** p_data,
|
|
|
|
guint64 * p_size)
|
|
|
|
{
|
|
|
|
asf_packet_info packet_info;
|
|
|
|
gboolean correction;
|
|
|
|
guint64 start_size;
|
|
|
|
guint32 sequence;
|
|
|
|
guint32 packet_length;
|
|
|
|
guint32 rsize;
|
|
|
|
guint16 duration;
|
|
|
|
guint8 num_segments;
|
|
|
|
guint8 segment;
|
|
|
|
guint8 flags;
|
|
|
|
guint8 property;
|
|
|
|
|
|
|
|
start_size = *p_size;
|
|
|
|
|
|
|
|
GST_INFO ("processing packet %" G_GUINT64_FORMAT "/%" G_GUINT64_FORMAT,
|
|
|
|
demux->packet, demux->num_packets);
|
|
|
|
|
|
|
|
if (demux->num_packets > 0 && demux->packet++ >= demux->num_packets) {
|
|
|
|
|
|
|
|
GST_LOG ("reached EOS");
|
|
|
|
#if 0
|
|
|
|
have a gst_asf_demux_reset (demux) maybe ?
|
|
|
|
gst_adapter_clear (demux->adapter);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
gst_asf_demux_send_event_unlocked (demux, gst_event_new_eos ());
|
|
|
|
return GST_FLOW_UNEXPECTED;
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (*p_size < 1) {
|
2007-01-24 17:36:36 +00:00
|
|
|
GST_WARNING ("unexpected end of data"); /* unexpected, why? */
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
|
|
|
}
|
2003-01-31 18:23:38 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
correction = ((gst_asf_demux_get_uint8 (p_data, p_size) & 0x80) == 0x80);
|
2003-01-31 18:23:38 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Uses error correction? */
|
|
|
|
if (correction) {
|
|
|
|
asf_obj_data_correction corr_obj;
|
|
|
|
|
|
|
|
GST_DEBUG ("data has error correction");
|
|
|
|
if (!gst_asf_demux_get_obj_data_correction (&corr_obj, p_data, p_size)) {
|
|
|
|
GST_WARNING ("unexpected end of data");
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
2003-01-31 18:23:38 +00:00
|
|
|
}
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
}
|
2003-01-31 18:23:38 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Read the packet flags */
|
|
|
|
if (*p_size < (1 + 1)) {
|
|
|
|
GST_WARNING ("unexpected end of data");
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
|
|
|
}
|
|
|
|
flags = gst_asf_demux_get_uint8 (p_data, p_size);
|
|
|
|
property = gst_asf_demux_get_uint8 (p_data, p_size);
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
packet_info.multiple = ((flags & 0x01) == 0x01);
|
2003-01-23 11:15:49 +00:00
|
|
|
|
2007-01-24 17:36:36 +00:00
|
|
|
{
|
|
|
|
const guint lengths[4] = { 0, 1, 2, 4 };
|
|
|
|
guint needed;
|
|
|
|
|
|
|
|
needed = lengths[(flags >> 5) & 0x03]
|
|
|
|
+ lengths[(flags >> 3) & 0x03]
|
|
|
|
+ lengths[(flags >> 1) & 0x03];
|
|
|
|
|
|
|
|
if (*p_size < needed)
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
|
|
|
}
|
|
|
|
|
2006-03-01 09:55:49 +00:00
|
|
|
packet_length =
|
|
|
|
gst_asf_demux_get_var_length ((flags >> 5) & 0x03, p_data, p_size);
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
sequence = gst_asf_demux_get_var_length ((flags >> 1) & 0x03, p_data, p_size);
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
packet_info.padsize =
|
|
|
|
gst_asf_demux_get_var_length ((flags >> 3) & 0x03, p_data, p_size);
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (packet_length == 0)
|
|
|
|
packet_length = demux->packet_size;
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_DEBUG ("multiple = %u, sequence = %u, padsize = %u, "
|
|
|
|
"packet length = %u", packet_info.multiple, sequence,
|
|
|
|
packet_info.padsize, packet_length);
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Read the property flags */
|
|
|
|
packet_info.replicsizetype = property & 0x03;
|
|
|
|
packet_info.fragoffsettype = (property >> 2) & 0x03;
|
|
|
|
packet_info.seqtype = (property >> 4) & 0x03;
|
2003-01-31 18:23:38 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (*p_size < (4 + 2)) {
|
|
|
|
GST_WARNING ("unexpected end of data");
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
demux->timestamp = gst_asf_demux_get_uint32 (p_data, p_size);
|
|
|
|
duration = gst_asf_demux_get_uint16 (p_data, p_size);
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_DEBUG ("timestamp = %" GST_TIME_FORMAT ", duration = %" GST_TIME_FORMAT,
|
|
|
|
GST_TIME_ARGS ((gint64) demux->timestamp * GST_MSECOND),
|
|
|
|
GST_TIME_ARGS ((gint64) duration * GST_MSECOND));
|
2003-01-23 11:15:49 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Are there multiple payloads? */
|
|
|
|
if (packet_info.multiple) {
|
2007-01-24 17:36:36 +00:00
|
|
|
guint8 multi_flags;
|
|
|
|
|
|
|
|
if (*p_size < 1)
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
2003-11-05 23:14:52 +00:00
|
|
|
|
2007-01-24 17:36:36 +00:00
|
|
|
multi_flags = gst_asf_demux_get_uint8 (p_data, p_size);
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
packet_info.segsizetype = (multi_flags >> 6) & 0x03;
|
|
|
|
num_segments = multi_flags & 0x3f;
|
|
|
|
} else {
|
|
|
|
packet_info.segsizetype = 2;
|
|
|
|
num_segments = 1;
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
}
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
rsize = start_size - *p_size;
|
2003-01-23 11:15:49 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
packet_info.size_left = packet_length - packet_info.padsize - rsize;
|
2003-01-23 11:15:49 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_DEBUG ("rsize: %u, size left: %u", rsize, packet_info.size_left);
|
2003-01-23 11:15:49 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
for (segment = 0; segment < num_segments; ++segment) {
|
|
|
|
GstFlowReturn ret;
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
ret = gst_asf_demux_process_segment (demux, &packet_info, p_data, p_size);
|
|
|
|
if (ret != GST_FLOW_OK) {
|
|
|
|
GST_DEBUG ("process_segment %u returned %s", segment,
|
|
|
|
gst_asf_get_flow_name (ret));
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
}
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
/* Skip the padding */
|
|
|
|
if (packet_info.padsize > 0) {
|
|
|
|
if (*p_size < packet_info.padsize) {
|
|
|
|
GST_WARNING ("unexpected end of data");
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
|
|
|
}
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (!gst_asf_demux_skip_bytes (packet_info.padsize, p_data, p_size))
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_DEBUG ("remaining size left: %u", packet_info.size_left);
|
|
|
|
|
|
|
|
/* FIXME: this doesn't really make sense, does it? if we don't have enough
|
|
|
|
* bytes left to skip the stuff at the end and we've already sent out
|
|
|
|
* buffers, just returning NEED_MORE_DATA isn't really right. Should we
|
|
|
|
* just throw an error in that case (can it happen with a non-broken
|
|
|
|
* stream?) */
|
|
|
|
if (packet_info.size_left > 0) {
|
|
|
|
if (!gst_asf_demux_skip_bytes (packet_info.size_left, p_data, p_size)) {
|
|
|
|
GST_WARNING
|
|
|
|
("unexpected end of data, *p_size=%lld,packet_info.size_left=%u",
|
|
|
|
*p_size, packet_info.size_left);
|
|
|
|
return ASF_FLOW_NEED_MORE_DATA;
|
|
|
|
}
|
|
|
|
}
|
2002-10-17 21:41:47 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
return GST_FLOW_OK;
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static const GstQueryType *
|
|
|
|
gst_asf_demux_get_src_query_types (GstPad * pad)
|
2002-10-17 21:41:47 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static const GstQueryType types[] = {
|
|
|
|
GST_QUERY_POSITION,
|
|
|
|
GST_QUERY_DURATION,
|
2006-12-15 18:26:41 +00:00
|
|
|
GST_QUERY_SEEKING,
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
0
|
|
|
|
};
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
return types;
|
2002-10-17 21:41:47 +00:00
|
|
|
}
|
|
|
|
|
2004-03-14 22:34:30 +00:00
|
|
|
static gboolean
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_asf_demux_handle_src_query (GstPad * pad, GstQuery * query)
|
2003-01-23 11:15:49 +00:00
|
|
|
{
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GstASFDemux *demux;
|
|
|
|
gboolean res = FALSE;
|
2003-11-05 23:14:52 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
demux = GST_ASF_DEMUX (gst_pad_get_parent (pad));
|
2003-01-23 11:15:49 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_DEBUG ("handling %s query",
|
|
|
|
gst_query_type_get_name (GST_QUERY_TYPE (query)));
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
switch (GST_QUERY_TYPE (query)) {
|
|
|
|
case GST_QUERY_DURATION:
|
|
|
|
{
|
|
|
|
GstFormat format;
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_query_parse_duration (query, &format, NULL);
|
2003-01-23 11:15:49 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (format != GST_FORMAT_TIME) {
|
|
|
|
GST_LOG ("only support duration queries in TIME format");
|
|
|
|
break;
|
|
|
|
}
|
2003-01-31 18:23:38 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_OBJECT_LOCK (demux);
|
2005-01-27 00:56:11 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (demux->segment.duration != GST_CLOCK_TIME_NONE) {
|
|
|
|
GST_LOG ("returning duration: %" GST_TIME_FORMAT,
|
|
|
|
GST_TIME_ARGS (demux->segment.duration));
|
2005-01-27 00:56:11 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_query_set_duration (query, GST_FORMAT_TIME,
|
|
|
|
demux->segment.duration);
|
2003-07-06 20:49:50 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
res = TRUE;
|
|
|
|
} else {
|
|
|
|
GST_LOG ("duration not known yet");
|
|
|
|
}
|
gst/: First batch implementing audio and video codec tags in demuxers.
Original commit message from CVS:
2004-02-23 Julien MOUTTE <julien@moutte.net>
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
(gst_riff_create_audio_caps), (gst_riff_create_iavs_caps),
(gst_riff_create_video_template_caps),
(gst_riff_create_audio_template_caps),
(gst_riff_create_iavs_template_caps):
* gst-libs/gst/riff/riff-media.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_audio_caps), (gst_asf_demux_add_audio_stream),
(gst_asf_demux_video_caps), (gst_asf_demux_add_video_stream):
* gst/avi/gstavidemux.c: (gst_avi_demux_add_stream):
* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
(gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps),
(gst_matroska_demux_plugin_init): First batch implementing audio and
video codec tags in demuxers.
2004-02-23 22:16:21 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_OBJECT_UNLOCK (demux);
|
|
|
|
break;
|
|
|
|
}
|
2003-01-23 11:15:49 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
case GST_QUERY_POSITION:{
|
|
|
|
GstFormat format;
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_query_parse_position (query, &format, NULL);
|
2003-11-05 23:14:52 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (format != GST_FORMAT_TIME) {
|
|
|
|
GST_LOG ("only support position queries in TIME format");
|
|
|
|
break;
|
|
|
|
}
|
2005-01-27 00:56:11 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_OBJECT_LOCK (demux);
|
2005-01-27 00:56:11 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
if (demux->segment.last_stop != GST_CLOCK_TIME_NONE) {
|
|
|
|
GST_LOG ("returning position: %" GST_TIME_FORMAT,
|
|
|
|
GST_TIME_ARGS (demux->segment.last_stop));
|
2003-01-23 11:15:49 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_query_set_position (query, GST_FORMAT_TIME,
|
|
|
|
demux->segment.last_stop);
|
2003-01-23 11:15:49 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
res = TRUE;
|
|
|
|
} else {
|
|
|
|
GST_LOG ("position not known yet");
|
|
|
|
}
|
2003-11-05 23:14:52 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
GST_OBJECT_UNLOCK (demux);
|
|
|
|
break;
|
|
|
|
}
|
2004-03-14 22:34:30 +00:00
|
|
|
|
2006-12-15 17:54:48 +00:00
|
|
|
case GST_QUERY_SEEKING:{
|
|
|
|
GstFormat format;
|
|
|
|
|
|
|
|
gst_query_parse_seeking (query, &format, NULL, NULL, NULL);
|
|
|
|
if (format == GST_FORMAT_TIME) {
|
|
|
|
gint64 duration;
|
|
|
|
|
|
|
|
GST_OBJECT_LOCK (demux);
|
|
|
|
duration = demux->segment.duration;
|
|
|
|
GST_OBJECT_UNLOCK (demux);
|
|
|
|
|
|
|
|
gst_query_set_seeking (query, GST_FORMAT_TIME, demux->seekable,
|
|
|
|
0, duration);
|
|
|
|
res = TRUE;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
default:
|
|
|
|
res = gst_pad_query_default (pad, query);
|
|
|
|
break;
|
|
|
|
}
|
2003-01-23 11:15:49 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
gst_object_unref (demux);
|
|
|
|
return res;
|
|
|
|
}
|
2003-01-23 11:15:49 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
static GstStateChangeReturn
|
|
|
|
gst_asf_demux_change_state (GstElement * element, GstStateChange transition)
|
|
|
|
{
|
|
|
|
GstASFDemux *demux = GST_ASF_DEMUX (element);
|
|
|
|
GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
|
2003-01-23 11:15:49 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
switch (transition) {
|
|
|
|
case GST_STATE_CHANGE_READY_TO_PAUSED:{
|
|
|
|
gst_segment_init (&demux->segment, GST_FORMAT_TIME);
|
|
|
|
demux->adapter = gst_adapter_new ();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
|
|
|
|
if (ret == GST_STATE_CHANGE_FAILURE)
|
|
|
|
return ret;
|
2004-03-14 22:34:30 +00:00
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
switch (transition) {
|
|
|
|
case GST_STATE_CHANGE_PAUSED_TO_READY:{
|
|
|
|
gst_segment_init (&demux->segment, GST_FORMAT_UNDEFINED);
|
|
|
|
gst_adapter_clear (demux->adapter);
|
|
|
|
g_object_unref (demux->adapter);
|
|
|
|
demux->adapter = NULL;
|
|
|
|
if (demux->taglist) {
|
|
|
|
gst_tag_list_free (demux->taglist);
|
|
|
|
demux->taglist = NULL;
|
|
|
|
}
|
|
|
|
demux->state = GST_ASF_DEMUX_STATE_HEADER;
|
2006-07-07 19:26:40 +00:00
|
|
|
g_free (demux->objpath);
|
|
|
|
demux->objpath = NULL;
|
2006-07-14 13:02:53 +00:00
|
|
|
g_strfreev (demux->languages);
|
|
|
|
demux->languages = NULL;
|
|
|
|
demux->num_languages = 0;
|
|
|
|
g_slist_foreach (demux->ext_stream_props, (GFunc) g_free, NULL);
|
|
|
|
g_slist_free (demux->ext_stream_props);
|
|
|
|
demux->ext_stream_props = NULL;
|
2006-07-15 13:33:38 +00:00
|
|
|
memset (demux->stream, 0, sizeof (demux->stream));
|
2006-12-15 17:54:48 +00:00
|
|
|
demux->seekable = FALSE;
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
default:
|
|
|
|
break;
|
2005-01-27 00:56:11 +00:00
|
|
|
}
|
|
|
|
|
asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
|
|
|
return ret;
|
2003-01-23 11:15:49 +00:00
|
|
|
}
|