Commit graph

286 commits

Author SHA1 Message Date
Edward Hervey
c1bf0a091c asfdemux: Convert index entry from presentation time to timestamps.
We weren't taking the preroll into account previously, meaning that we
were always seeking preroll nanoseconds too early... resulting in a lot
of dropped packets (which are before the start time).

This brings quit a bit closer to as-fast-as-possible seeking in asf files.
2009-06-26 13:35:38 +02:00
Edward Hervey
db5ddf927c asfdemux: Fix byte array metadata handling.
We basically discard byte array metadata. Should be trivial to adapt
to storing the pointers if we need it later on.
2009-06-26 10:58:56 +02:00
Edward Hervey
a3f200e4f8 asfdemux: Handle PAR/interlaced information stored in packet payload.
This is the 'other' way to store non 1/1 PAR in asf streams (by storing it
in the ASF Packet payload extensions).
2009-06-26 10:42:29 +02:00
Edward Hervey
1cc2eed416 asfdemux: Store/Handle global metadata (not specific to one stream).
This allows us to store (and handle) PAR information which might be stored there.
2009-06-26 10:42:29 +02:00
Tim-Philipp Müller
16a09febbd asfdemux: don't try to free a NULL taglist 2009-06-23 16:45:00 +01:00
Tim-Philipp Müller
6ec0b61980 asfdemux: post tags only after we've created our source pads
Post global tags only after we've added our source pads, so that
tag events get sent downstream in addition to tag messages posted
on the bus. This makes sure tags can be picked up automatically
when transcoding, but also by tagreadbin/playbin2. Fixes #519721.

While we're at it, also add a container-format tag.
2009-06-23 02:14:00 +01:00
Tim-Philipp Müller
aa0d6f7b48 asfdemux: use new bytereader functions for image tag parsing 2009-06-23 01:38:01 +01:00
Mark Nauwelaerts
1874bf5910 asfdemux: remove some more unused variables 2009-06-22 19:10:17 +02:00
Wim Taymans
22b82d30e5 asfdepay: guard against dropped buffers
If a buffer was dropped, we might request data from the adapter that is not
there and then we get a NULL buffer.
2009-06-22 17:36:21 +02:00
Wim Taymans
36d0450d6e asfdemux: set DISCONT on streams
When we receive a DISCONT as input, don't clear our complete state but simply
mark a discont that will be put on the next buffer. The code will be able to
handle and throw away incomplete data.
Add some more debug info.
Remove an unused variable.
2009-06-22 17:16:58 +02:00
Wim Taymans
c53fd9ded1 asfdepay: set DELTA_UNIT flag correctly
Only set the DELTA_UNIT flag when we are not dealing with a keyframe.
Add some more debug info.
2009-06-22 17:15:52 +02:00
Wim Taymans
8de1502c9b asfdemux: fix latency calculations
We need to check for -1 as an invalid timestamp, not 1.
2009-06-22 13:39:41 +02:00
Tim-Philipp Müller
181db09d90 asfdemux: nicer metadata extraction of genre tags in some cases
Handle pseudo-strings like "(5)" and map them to the ID3v1 genre
that they presumably stand for.
2009-06-05 01:51:20 +01:00
Tim-Philipp Müller
2aeecee037 asfdemux: parse WM/Picture tags to extract cover art
Fixes #583112.
2009-06-05 01:37:54 +01:00
Tim-Philipp Müller
7c40c99238 asfdemux: fix bogus flow return handling in eos handler
Don't overwrite the origin flow return by whatever flow we get
when trying to push the remaining internally queued payloads.
We want to do our eos logic, ie. send an EOS event or segment-done
message in any case. Makes things EOS properly when an EOS event
is forced upon the pipeline so that the source returns
FLOW_UNEXPECTED to a pulling asfdemux. Should fix #582056.
2009-05-30 13:08:15 +01:00
Edward Hervey
f6f09cbb0a asfdemux: Downgrade simple statements from WARNING to DEBUG 2009-05-12 11:57:04 +02:00
Edward Hervey
61c00741a2 asf: Detect more payload extensions.
These should help fix interlaced/PAR issues with more files.
2009-05-12 11:53:45 +02:00
Mark Nauwelaerts
e8a6ad2546 asfdemux: use upstream segment and timestamps for some interpolation
This should particularly help in case of upstream live src, e.g. rtspsrc,
and especially so if it has to perform fallback to TCP.
2009-05-07 12:23:51 +02:00
Edward Hervey
71da4cc7ae rtpasfdepay: Add support for fragmented packet (L == 0).
This happens with rtp-over-udp.
2009-05-07 12:39:00 +02:00
Mark Nauwelaerts
8b2812ca2e asfdemux: 0-base timestamps consistently (whether or not streaming)
This also makes timestamps (more) consistent before and after a possible
seek, and moreover makes for reasonable position reporting in live stream
(whose payload timestamps should not be taken for granted).
2009-05-05 22:41:41 +02:00
Mark Nauwelaerts
0b28139203 asfdemux: report initial latency due to internal preroll queue 2009-05-05 22:41:39 +02:00
Mark Nauwelaerts
c2d092765a asfdemux: enhance debug statement and refactor some initialization 2009-05-05 22:41:37 +02:00
Mark Nauwelaerts
b8297952cf asfdemux: handle FIXME; activate pads after internal preroll also when streaming 2009-05-05 22:41:35 +02:00
Mark Nauwelaerts
44ebe58377 asfdemux: handle FIXME; normalize preroll 2009-05-05 22:41:33 +02:00
Mark Nauwelaerts
b6d4fb9e4f asfdemux: fixes for streaming mode
* Improve newsegment handling, e.g. upstream might live in TIME.
* Only send newsegment if we have needed info.
* Avoid reading past end of data section.
2009-05-05 22:41:30 +02:00
Mark Nauwelaerts
2bd14c7153 asfdemux: fixes/enhancements for streaming mode
* Do not rock the boat by reacting to FLUSH_START.
* Try to handle TIME seeking by seeking upstream in BYTES.
* Handle SEEKING query.
2009-05-05 22:41:26 +02:00
Edward Hervey
804f65e6db asfpacket: Fix pull-mode timestamping handling.
The problem that happens is the following:
* A packet with multiple payloads comes in
* Those payloads get handled one by one
* The first payload contains the first audio payload with timestamp A
* The second payload contains the first video (key)frame with timestamp V (where V < A)

With the previous code, the following would happen:
* the first payload gets processed, then passed to queue_for_stream
* queue_for_stream detects it's the first valid timestamp received and stores
  first_ts = A
* the second payload gets processed, then pass to queue_for_stream
* queue_for_stream detects the timestamp is lower than first_ts... and
  discards it... resulting in losing the first keyframe of the video stream

We've been having this issue for *ages*... it's just that nobody noticed it
that much with playbin. But with playbin2's aggresive multiqueue handling, this
will result in multiqueue not being able to preroll (because the video decoder will
be dropping a ton of buffers before (maybe) receiving the next keyframe).

Tested with over 200 asf files, and they all play the first frame correctly now,
even the most braindead ones.
2009-04-23 09:04:41 +02:00
Edward Hervey
bb6697ba4c asfdemux: Initialize flow for a corner case.
This might be caused by entering the if() line 1214 and then not having
any activated_streams.. resulting in reaching line 1267 without having
any valid flow value.
2009-04-19 14:03:58 +02:00
Edward Hervey
ac0e11e55c remove empty method implementations. 2009-04-19 13:55:24 +02:00
Josep Torra
9cd1fddf15 rtspwms: fix condition to detect extension commands for WMS
Reply with OK to the extension commands for WMS.
2009-04-18 08:12:08 +02:00
Wim Taymans
ef31993f34 rtspwms: reply to extension commands
Reply with OK to the extension commands for WMS.
2009-04-14 10:54:37 +02:00
Wim Taymans
4203f7189c asfdepay: fix a comment 2009-04-14 10:53:51 +02:00
Wim Taymans
2377053422 asfdemux: add some more debugging 2009-04-14 10:53:33 +02:00
Michael Smith
6b9c72619a asfdemux: link to all required libraries including indirectly used ones.
On win32, we're required to link to all the libraries used - including
ones only indirectly used by other libs. So, add gstaudio, gsttag, and
(for windows only) winsock.
2009-04-08 11:44:53 -07:00
Stefan Kost
e12ccaa63c rtpasfdepay: Fix the build by adding the needed include for atoi. 2009-02-23 10:50:50 +02:00
Edward Hervey
96d35e0819 Fix indentation. 2009-02-22 14:22:30 +01:00
Wim Taymans
f0078ebae4 Add ASF depayloader
Add ASF depayloader based on latest public MicroSoft docs (MS-RTSP).
Fixes #335067.
2009-02-20 13:52:29 +01:00
Sebastian Dröge
2744324adc Remove redundant push_mode struct member 2009-01-30 14:38:23 +01:00
Hans de Goede
3bcd050fab Add seeking support to asfdemux in push mode
Fixes bug #568836.
2009-01-26 10:02:02 +01:00
Hans de Goede
4ff0d1fe52 Drop packets with an invalid replicated data length
Drop packets with an invalid replicated data length
instead of continuing with an invalid timestamp
and uninitialized payload metadata.
All other code assumes that the timestamps are valid.
2009-01-26 10:02:02 +01:00
David Schleef
d798fa10c9 Fix leak of converted string 2009-01-23 17:51:32 -08:00
Wim Taymans
3838bdb40d gst/asfdemux/gstasfdemux.c: Remove duplicate and broken code for the streaming case and simply reuse the much better ...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_chain):
Remove duplicate and broken code for the streaming case and simply reuse
the much better working pull based code. Fixes #560348.
2008-11-20 21:31:19 +00:00
Wim Taymans
0ba1ec7104 gst/asfdemux/gstasfdemux.c: Only copy sane aspect ratio values on the caps. Fixes #559682.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_add_video_stream):
Only copy sane aspect ratio values on the caps. Fixes #559682.
2008-11-11 17:14:46 +00:00
Stefan Kost
793cdeb880 Don't install static libs for plugins. Fixes #550851 for ugly.
Original commit message from CVS:
* ext/a52dec/Makefile.am:
* ext/amrnb/Makefile.am:
* ext/cdio/Makefile.am:
* ext/dvdnav/Makefile.am:
* ext/dvdread/Makefile.am:
* ext/lame/Makefile.am:
* ext/mad/Makefile.am:
* ext/mpeg2dec/Makefile.am:
* ext/sidplay/Makefile.am:
* gst/ac3parse/Makefile.am:
* gst/asfdemux/Makefile.am:
* gst/dvdlpcmdec/Makefile.am:
* gst/dvdsub/Makefile.am:
* gst/iec958/Makefile.am:
* gst/mpegaudioparse/Makefile.am:
* gst/mpegstream/Makefile.am:
* gst/realmedia/Makefile.am:
* gst/synaesthesia/Makefile.am:
Don't install static libs for plugins. Fixes #550851 for ugly.
2008-10-13 18:10:25 +00:00
Edward Hervey
def71526d9 gst/asfdemux/gstasfdemux.c: Fix aggregated GST_FLOW_RETURN check for when to send an error message on the bus.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_loop):
Fix aggregated GST_FLOW_RETURN check for when to send an error message
on the bus.
Re-fixes #546859
2008-08-28 09:57:30 +00:00
Michael Smith
33532cddc4 gst/asfdemux/gstasfdemux.c: Properly aggregate flow returns for both push and pull mode, so we shut down if all pads ...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c:
Properly aggregate flow returns for both push and pull mode, so we shut
down if all pads are unlinked.
Fixes #546859.
2008-08-11 18:44:35 +00:00
Frederic Crozat
dddfa0d890 Make sure gettext returns translations in UTF-8 encoding rather than in the current locale encoding (#546822).
Original commit message from CVS:
Patch by: Frederic Crozat <fcrozat@mandriva.org>
* ext/dvdread/dvdreadsrc.c: (plugin_init):
* ext/lame/gstlame.c: (plugin_init):
* gst/asfdemux/gstasf.c: (plugin_init):
Make sure gettext returns translations in UTF-8 encoding rather
than in the current locale encoding (#546822).
2008-08-07 16:14:42 +00:00
Tim-Philipp Müller
f887811a64 Use correct error code for encrypted streams.
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_object):
Use correct error code for encrypted streams.
2008-07-03 13:12:26 +00:00
Stefan Kost
c49cf83ee3 Add missing elements to docs. Restore alphabetical order in section file. Document mad (it was included in docs alrea...
Original commit message from CVS:
* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
* ext/a52dec/gsta52dec.c:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c:
* ext/amrnb/amrnbparse.c:
* ext/lame/gstlame.c:
* ext/mad/gstmad.c:
* ext/sidplay/gstsiddec.cc:
* gst/asfdemux/gstrtspwms.c:
* gst/mpegaudioparse/gstxingmux.c:
* gst/realmedia/rademux.c:
* gst/realmedia/rdtmanager.c:
* gst/realmedia/rtspreal.c:
* gst/synaesthesia/gstsynaesthesia.c:
Add missing elements to docs. Restore alphabetical order in section
file. Document mad (it was included in docs already).
Fix doc-markup: use convinience syntax for examples
(produces valid docbook), add several refsec2 when we have several
titles. Fix some types.
2008-06-13 06:57:21 +00:00
Edgard Lima
d65a5d0d57 Fix "unused var" compiler error when --disable-gst-debug is used.
Original commit message from CVS:
Fix "unused var" compiler error when --disable-gst-debug is used.
2008-04-22 12:11:30 +00:00
Wim Taymans
2336c35df2 gst/asfdemux/gstasfdemux.c: Remove some debug code.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_process_ext_stream_props):
Remove some debug code.
2008-04-01 14:39:24 +00:00
Wim Taymans
229b4f33d3 gst/asfdemux/gstasfdemux.c: Guard against division by 0 and fall back to 25/1 framerate.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_process_ext_stream_props):
Guard against division by 0 and fall back to 25/1 framerate.
2008-04-01 14:29:32 +00:00
Wim Taymans
5f2bca58b0 gst/asfdemux/gstasfdemux.c: Instead of adding a fixes 25/1 framerate to the video caps, use the average frame duratio...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_ext_stream_props):
Instead of adding a fixes 25/1 framerate to the video caps, use the
average frame duration in the extended properties of the video stream as
the framerate. Fixes #524346.
2008-04-01 14:00:32 +00:00
Sebastian Dröge
269a9706fc gst/asfdemux/gstasfdemux.c: If we don't have the position to seek to in our index first try to convert from TIME to B...
Original commit message from CVS:
Patch by:
Hans de Goede <j dot w dot r dot degoede at hhs dot nl>
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_seek_event):
If we don't have the position to seek to in our index first try
to convert from TIME to BYTES upstream and only if that fails
too use the old hack to simply seek to an earlier position
and let the sink drop everything before segment start.
Partially fixes bug #469930.
2008-02-22 06:19:41 +00:00
Tim-Philipp Müller
49cdce158d gst/asfdemux/gstasfdemux.*: Parse metadata object and extract pixel aspect ratio. Fixes #507844.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (asfdemux_dbg), (gst_asf_demux_reset),
(gst_asf_demux_add_video_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_metadata_for_stream),
(gst_asf_demux_process_metadata), (gst_asf_demux_process_object),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Parse metadata object and extract pixel aspect ratio. Fixes #507844.
2008-01-08 16:31:29 +00:00
Stefan Kost
fcc7538113 gst/asfdemux/gstasfdemux.c: Sync _activate_pull() a little more with other demuxers.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c:
Sync _activate_pull() a little more with other demuxers.
2007-11-13 06:57:57 +00:00
Tim-Philipp Müller
db4e736086 gst/asfdemux/gstasfdemux.c: Convert tags that come as string into the type required by
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_ext_content_desc):
Convert tags that come as string into the type required by
GstTagList.
2007-10-31 14:33:03 +00:00
Wim Taymans
c8bd2c02a3 gst/: Fix include paths and link dependecies for rtsp extension.
Original commit message from CVS:
* gst/asfdemux/Makefile.am:
* gst/asfdemux/gstrtspwms.c: (gst_rtsp_wms_parse_sdp), (_do_init),
(gst_rtsp_wms_class_init):
* gst/realmedia/Makefile.am:
* gst/realmedia/rtspreal.c: (rtsp_ext_real_get_transports),
(rtsp_ext_real_before_send), (rtsp_ext_real_after_send),
(rtsp_ext_real_parse_sdp), (rtsp_ext_real_stream_select),
(_do_init), (gst_rtsp_real_class_init):
Fix include paths and link dependecies for rtsp extension.
2007-07-27 10:12:55 +00:00
Wim Taymans
3544cb1ab5 gst/asfdemux/: Move WMS RTSP extension from -good to here.
Original commit message from CVS:
* gst/asfdemux/Makefile.am:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstrtspwms.c: (gst_rtsp_wms_before_send),
(gst_rtsp_wms_after_send), (gst_rtsp_wms_parse_sdp),
(gst_rtsp_wms_configure_stream), (_do_init),
(gst_rtsp_wms_base_init), (gst_rtsp_wms_class_init),
(gst_rtsp_wms_init), (gst_rtsp_wms_finalize),
(gst_rtsp_wms_change_state), (gst_rtsp_wms_extension_init):
* gst/asfdemux/gstrtspwms.h:
Move WMS RTSP extension from -good to here.
Port it to the new pluggable extension interface.
2007-07-25 18:38:42 +00:00
Stefan Kost
1c87647aa0 gst/asfdemux/gstasfdemux.c: Include stdlib.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c:
Include stdlib.
2007-07-20 07:58:25 +00:00
Tim-Philipp Müller
0e2c8a042f Fix build against core CVS by not using deprecated API. Bump requirements for new API (overdue anyway).
Original commit message from CVS:
* configure.ac:
* ext/mpeg2dec/gstmpeg2dec.c: (crop_buffer):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_descramble_buffer):
* gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_chain_raw):
Fix build against core CVS by not using deprecated API. Bump
requirements for new API (overdue anyway).
2007-07-11 23:18:14 +00:00
Edward Hervey
f4f98ea80b Fix leaks some more.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c: (gst_amrnbdec_init):
* gst/ac3parse/gstac3parse.c: (gst_ac3parse_init):
* gst/asfdemux/gstasfmux.c: (gst_asfmux_init):
* gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_init):
* gst/dvdsub/gstdvdsubdec.c: (gst_dvd_sub_dec_init):
* gst/iec958/ac3iec.c: (ac3iec_init):
* gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_init):
Fix leaks some more.
2007-06-22 10:57:06 +00:00
Tim-Philipp Müller
08c63b6800 gst/asfdemux/gstasfdemux.*: Activate streams (ie. add the pads to the element) depending on whether we actually get d...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_reset),
(gst_asf_demux_chain_headers),
(gst_asf_demux_parse_data_object_start), (all_streams_prerolled),
(gst_asf_demux_have_mutually_exclusive_active_stream),
(gst_asf_demux_check_activate_streams),
(gst_asf_demux_find_stream_with_complete_payload),
(gst_asf_demux_push_complete_payloads), (gst_asf_demux_loop),
(gst_asf_demux_activate_ext_props_streams),
(gst_asf_demux_process_object):
* gst/asfdemux/gstasfdemux.h:
Activate streams (ie. add the pads to the element) depending on
whether we actually get data for those streams within the ASF
preroll value specified. Currently only done in pull-mode though
(this will fix problems with playbin hanging on mms streams once
we use this in push-mode as well).
2007-05-07 13:51:43 +00:00
Tim-Philipp Müller
f7abd8bbc8 gst/asfdemux/: Make all timestamps start from zero in pull-mode too; some small clean-ups and FIXMEs here and there.
Original commit message from CVS:
* gst/asfdemux/asfpacket.c: (gst_asf_payload_queue_for_stream):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_reset),
(gst_asf_demux_init), (gst_asf_demux_push_complete_payloads),
(gst_asf_demux_process_file):
* gst/asfdemux/gstasfdemux.h:
Make all timestamps start from zero in pull-mode too; some small
clean-ups and FIXMEs here and there.
2007-05-04 11:04:16 +00:00
Tim-Philipp Müller
c2784b4ca8 gst/asfdemux/asfpacket.c: If packet size is specified within the packet and smaller than the actual packet size, don'...
Original commit message from CVS:
* gst/asfdemux/asfpacket.c: (gst_asf_demux_parse_payload),
(gst_asf_demux_parse_packet):
If packet size is specified within the packet and smaller than
the actual packet size, don't parse beyond the size specified in
the packet (this makes us parse some cases of packets with single
compressed payloads cleanly, see e.g stream from #431318). Also
add a sanity check when parsing compressed single payloads.
2007-05-01 11:10:31 +00:00
Tim-Philipp Müller
279b2b0290 gst/asfdemux/: Seeking improvements: honour the KEY_UNIT seek flag; after a seek, only send data from the keyframe ri...
Original commit message from CVS:
* gst/asfdemux/asfpacket.c: (gst_asf_payload_queue_for_stream):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_seek_index_lookup),
(gst_asf_demux_handle_seek_event),
(gst_asf_demux_push_complete_payloads):
Seeking improvements: honour the KEY_UNIT seek flag; after a seek, only
send data from the keyframe right before the new segment start to
make sure the decoder doesn't have to decode more than absolutely
necessary.
2007-05-01 09:19:13 +00:00
Tim-Philipp Müller
b46ece6980 gst/asfdemux/: Implement payload extension system/extended replicated data parsing, so we can extract payload duratio...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/asfpacket.c:
(asf_payload_parse_replicated_data_extensions),
(gst_asf_demux_parse_payload):
* gst/asfdemux/asfpacket.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_free_stream),
(gst_asf_demux_push_complete_payloads),
(gst_asf_demux_process_ext_stream_props):
* gst/asfdemux/gstasfdemux.h:
Implement payload extension system/extended replicated data parsing,
so we can extract payload durations if they're specified.
2007-04-30 15:36:00 +00:00
Tim-Philipp Müller
850c0fbab8 gst/asfdemux/: Refactor stream parse/activation a bit (stream activation heuristics are still the same though); some ...
Original commit message from CVS:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_free_stream),
(gst_asf_demux_reset), (gst_asf_demux_parse_data_object_start),
(gst_asf_demux_loop), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_activate_stream),
(gst_asf_demux_parse_stream_object),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_activate_ext_props_streams),
(gst_asf_demux_process_object):
* gst/asfdemux/gstasfdemux.h:
Refactor stream parse/activation a bit (stream activation heuristics
are still the same though); some more clean-ups.
2007-04-30 11:41:22 +00:00
Tim-Philipp Müller
1c69080416 gst/asfdemux/: Init debug category before using it.
Original commit message from CVS:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init):
* gst/asfdemux/gstasfdemux.h:
Init debug category before using it.
2007-04-28 10:49:17 +00:00
Tim-Philipp Müller
9ee314648e gst/asfdemux/gstasfdemux.c: Fix silly bug when we can't pull as much data as we want; don't forget to announce pendin...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_pull_data),
(gst_asf_demux_push_complete_payloads), (gst_asf_demux_loop):
Fix silly bug when we can't pull as much data as we want; don't
forget to announce pending tags in the new packet parsing code.
2007-04-27 18:39:21 +00:00
Tim-Philipp Müller
6197c64106 gst/asfdemux/: New packet parsing code: should put halfway decent timestamps on buffers, and might even set the appro...
Original commit message from CVS:
* gst/asfdemux/Makefile.am:
* gst/asfdemux/asfpacket.c: (asf_packet_read_varlen_int),
(asf_packet_create_payload_buffer),
(asf_payload_find_previous_fragment),
(gst_asf_payload_queue_for_stream), (gst_asf_demux_parse_payload),
(gst_asf_demux_parse_packet):
* gst/asfdemux/asfpacket.h:
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_reset_stream_state_after_discont),
(gst_asf_demux_push_complete_payloads), (gst_asf_demux_loop),
(gst_asf_demux_setup_pad), (gst_asf_demux_descramble_buffer),
(gst_asf_demux_process_chunk):
* gst/asfdemux/gstasfdemux.h:
New packet parsing code: should put halfway decent timestamps on
buffers, and might even set the appropriate keyframe/discont buffer
flags from time to time (and even if it doesn't, I'm at least able
to debug this code); only used in pull-mode so far. Still needs
some more work, like payload extensions parsing and proper flow
aggregation, and stream activation based on preroll. Stay tuned.
2007-04-20 20:57:56 +00:00
Tim-Philipp Müller
07f692085f gst/asfdemux/: Some clean-ups and small fixes: rename asf_stream_context structure to
Original commit message from CVS:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_free_stream),
(gst_asf_demux_seek_index_lookup),
(gst_asf_demux_handle_seek_event), (gst_asf_demux_get_stream),
(gst_asf_demux_setup_pad), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_process_file), (gst_asf_demux_descramble_segment),
(gst_asf_demux_push_buffer), (gst_asf_demux_process_chunk),
(gst_asf_demux_process_segment), (gst_asf_demux_handle_data):
* gst/asfdemux/gstasfdemux.h:
Some clean-ups and small fixes: rename asf_stream_context structure to
AsfStream; inline some three-line utility functions that are only used
once anyway and get rid of their associated helper structs; make debug
category global so that it is used by the debug statements in the other
file as well; simplify gst_asf_demux_get_stream(); fix accidental
implicit initialisation of stream->last_buffer_timestamp to 0, which
would lead to missing timestamps on the first buffer; put fourcc format
into video caps to make certain proprietary wmv decoders happy (for the
case of WMVA in particular); play_time is offset by preroll as well, so
fix overreporting of duration for some files.
2007-04-20 17:32:00 +00:00
Tim-Philipp Müller
9ff45f3d88 gst/asfdemux/gstasfdemux.c: Printf format fixes.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_seek_event),
(gst_asf_demux_pull_indices):
Printf format fixes.
2007-04-17 10:21:50 +00:00
Tim-Philipp Müller
d0483656b3 gst/asfdemux/: Make asfdemux work in pull mode where possible. If there's an index at the end of the file, read it an...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_free_stream),
(gst_asf_demux_reset), (gst_asf_demux_init),
(gst_asf_demux_activate), (gst_asf_demux_activate_push),
(gst_asf_demux_activate_pull), (gst_asf_demux_sink_event),
(gst_asf_demux_seek_index_lookup),
(gst_asf_demux_reset_stream_state_after_discont),
(gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_chain_headers),
(gst_asf_demux_chain), (gst_asf_demux_pull_data),
(gst_asf_demux_pull_indices),
(gst_asf_demux_parse_data_object_start),
(gst_asf_demux_pull_headers), (gst_asf_demux_loop),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_file),
(gst_asf_demux_process_simple_index),
(gst_asf_demux_process_object),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_handle_data), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Make asfdemux work in pull mode where possible. If there's an index
at the end of the file, read it and use it for seeking purposes.
2007-04-12 13:38:03 +00:00
Tim-Philipp Müller
620f5606ba gst/asfdemux/gstasfdemux.c: Printf format fix.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_header_ext):
Printf format fix.
2007-03-10 15:56:26 +00:00
Tim-Philipp Müller
12f441024b gst/asfdemux/gstasfdemux.*: Parse advanced mutual exclusion object and only add pads for 'hidden' streams (those in a...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_file),
(gst_asf_demux_process_advanced_mutual_exclusion),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Parse advanced mutual exclusion object and only add pads for
'hidden' streams (those in an extended stream header) that are
mutually exclusive with an already existing 'main stream' if
the broadcasting flag is not set. If the broadcasting flag is set,
assume that data for this stream isn't sent. (This should ideally be
solved better by making playbin more robust against this and/or by
making mmssrc send some information downstream about which streams
will be streamed). Fixes #353116.
2007-02-15 19:55:55 +00:00
Tim-Philipp Müller
f8d7045fc8 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
Tim-Philipp Müller
69f195f044 gst/asfdemux/gstasfdemux.c: Post an error if we receive an EOS event while still waiting for the
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_sink_event):
Post an error if we receive an EOS event while still waiting for the
ASF header object to come through.
2007-02-01 11:12:25 +00:00
Xavier B
a7ba4d3802 gst/asfdemux/gstasfdemux.c: Guard places where we assume that a certain amount of data is available better against le...
Original commit message from CVS:
Patch by: Xavier B. <xavierb gmail com>
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_get_guid),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_process_data),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_segment), (gst_asf_demux_handle_data):
Guard places where we assume that a certain amount of data is
available better against less data being available (should fix
infamous assertion crasher bug #336370). Also fixes a small
memory leak.
2007-01-24 17:36:36 +00:00
Stefan Kost
9a9c15cec3 gst/asfdemux/gstasfdemux.c: add a comment about a future change
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_process_ext_content_desc):
add a comment about a future change
* tests/check/elements/amrnbenc.c: (setup_amrnbenc),
(cleanup_amrnbenc):
* tests/check/elements/mpeg2dec.c: (setup_mpeg2dec),
(cleanup_mpeg2dec):
consistent pad (de)activation
2006-12-21 08:16:41 +00:00
Tim-Philipp Müller
5e3f0ca964 gst/asfdemux/gstasfdemux.c: Update query_types function too.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_get_src_query_types):
Update query_types function too.
2006-12-15 18:26:41 +00:00
Tim-Philipp Müller
7e1371c41e gst/asfdemux/gstasfdemux.*: Don't crash in the seek event handling code when playtime is 0, as may be the case with l...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_seek_event),
(gst_asf_demux_process_data), (gst_asf_demux_process_file),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Don't crash in the seek event handling code when playtime is 0,
as may be the case with live streams (#386218). Implement SEEKING
query so applications can query seekability without second-guessing
based on whether we have a duration or not.
2006-12-15 17:54:48 +00:00
Tim-Philipp Müller
ee9f77cd22 gst/asfdemux/gstasfdemux.c: The availability of extra codec data isn't something that warrants debug messages at WARN...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_add_audio_stream):
The availability of extra codec data isn't something that
warrants debug messages at WARNING level (see #376958).
2006-11-20 15:52:42 +00:00
Tim-Philipp Müller
3a38311f01 gst/: Active pads before adding them to the running element. Don't assert on non-BYTE format newsegment events in asf...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_sink_event),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_segment):
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_get_audio_stream),
(gst_dvd_demux_get_subpicture_stream):
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_get_video_stream),
(gst_mpeg_demux_get_audio_stream),
(gst_mpeg_demux_get_private_stream):
Active pads before adding them to the running element. Don't assert
on non-BYTE format newsegment events in asfdemux.
2006-10-09 12:09:14 +00:00
Tim-Philipp Müller
03f40e53fd Printf format fixes.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_goto_title),
(gst_dvd_read_src_handle_seek_event):
* ext/mad/gstid3tag.c: (gst_id3_tag_chain):
* ext/mad/gstmad.c: (gst_mad_src_query), (gst_mad_chain):
* ext/sidplay/gstsiddec.cc:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_parse_data):
* gst/realmedia/rmdemux.c: (gst_rmdemux_loop),
(gst_rmdemux_parse_packet):
Printf format fixes.
2006-10-05 17:07:52 +00:00
Stefan Kost
f960e4ca4d gst/asfdemux/gstasfdemux.c: Erm, lets properly fix it. The only non-text tag that we support is the track-number and ...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_process_ext_content_desc):
Erm, lets properly fix it. The only non-text tag that we support is
the track-number and that is an UINT. asfdemux was returning a GValue
initialized as INT. Further the Track and not the TrackNumber tag
(the latter is a string too).
2006-09-07 16:05:31 +00:00
Stefan Kost
e70a50e330 gst/asfdemux/gstasfdemux.c: Skip tags that are unknown (was producing an uninialized GValue).
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_process_ext_content_desc):
Skip tags that are unknown (was producing an uninialized GValue).
2006-09-07 14:08:42 +00:00
Tim-Philipp Müller
24d6ec6f6f gst/asfdemux/gstasfdemux.c: Use static pad templates with ANY caps for the source pads for simplicity and to avoid wa...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream):
Use static pad templates with ANY caps for the source pads for
simplicity and to avoid warnings when creating pads for unhandled
codec IDs (#351795).
2006-08-22 15:52:16 +00:00
Jan Schmidt
f71c079eea Fix dist by including gst-libs/
Original commit message from CVS:
* Makefile.am:
* configure.ac:
* gst/asfdemux/gstasfdemux.c:
Fix dist by including gst-libs/
2006-07-31 09:53:05 +00:00
Tim-Philipp Müller
e8b7c2a3e9 Make custom error messages translatable.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (plugin_init):
* po/POTFILES.in:
Make custom error messages translatable.
* gst/asfdemux/gstasf.c: (plugin_init):
Remove setlocale() call, doesn't seem to be needed or recommended for
plugins, at least not according to gstreamer/docs/random/i18n.
2006-07-29 11:20:30 +00:00
Tim-Philipp Müller
7a4e25d6e2 gst/asfdemux/: Error out when the stream is encrypted (rather than feeding garbage to the decoders). Fixes #349025.
Original commit message from CVS:
* gst/asfdemux/Makefile.am:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_object):
Error out when the stream is encrypted (rather than feeding
garbage to the decoders). Fixes #349025.
2006-07-28 15:15:15 +00:00
Tim-Philipp Müller
0a62eac428 gst/asfdemux/gstasfdemux.c: Find language codes for audio streams if they are available.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_get_ext_stream_props_for_stream),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_change_state):
Find language codes for audio streams if they are available.
2006-07-15 13:33:38 +00:00
Tim-Philipp Müller
1a414437a6 gst/asfdemux/: Parse extended stream properties objects and stream objects hidden inside them (but delay creation of ...
Original commit message from CVS:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_get_obj_stream),
(gst_asf_demux_process_stream),
(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:
Parse extended stream properties objects and stream objects
hidden inside them (but delay creation of the appropriate
pads until after all the 'normal' stream objects have been
dealt with) (#343763). Also parse language list object.
2006-07-14 13:02:53 +00:00
Grzegorz Lukasik
4c6764332a gst/asfdemux/gstasfdemux.c: Fix typo. Closes #347029.
Original commit message from CVS:
Patch by: Grzegorz Lukasik <hauserx at gmail dot com>
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_segment):
Fix typo. Closes #347029.
2006-07-09 14:07:31 +00:00
Tim-Philipp Müller
05342dd632 gst/asfdemux/gstasfdemux.c: Skip chunks for unknown streams properly. Fixes broken sound and/or video for files that ...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_chunk):
Skip chunks for unknown streams properly. Fixes broken sound
and/or video for files that have additional streams that
we don't recognise yet (e.g. if they are embedded in extended
stream properties). Partly fixes #343763.
2006-07-08 20:29:56 +00:00
Tim-Philipp Müller
0a27252bb5 gst/asfdemux/: Add some more GUIDs and make debug log more readable and easier to follow when parsing the headers.
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_identify_guid),
(gst_asf_demux_process_header), (gst_asf_demux_push_obj),
(gst_asf_demux_pop_obj), (gst_asf_demux_process_object),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Add some more GUIDs and make debug log more readable
and easier to follow when parsing the headers.
2006-07-07 19:26:40 +00:00
Tim-Philipp Müller
3142e1a289 gst/asfdemux/gstasfdemux.*: Handle unknown codec IDs/fourccs properly (#345879); send tag events after newsegment eve...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_push_buffer):
* gst/asfdemux/gstasfdemux.h:
Handle unknown codec IDs/fourccs properly (#345879); send tag
events after newsegment event; fix use of GST_FOURCC_FORMAT
macro.
2006-06-28 11:20:03 +00:00
Edward Hervey
1594d8f6e9 gst/asfdemux/.cvsignore: More ignore
Original commit message from CVS:
* gst/asfdemux/.cvsignore:
More ignore
2006-06-12 13:27:18 +00:00
Stefan Kost
fadba7919f Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
Original commit message from CVS:
* ext/a52dec/gsta52dec.h:
* ext/amrnb/amrnbdec.h:
* ext/amrnb/amrnbenc.h:
* ext/amrnb/amrnbparse.h:
* ext/mpeg2dec/gstmpeg2dec.h:
* ext/sidplay/gstsiddec.h:
* gst/ac3parse/gstac3parse.h:
* gst/asfdemux/gstasfdemux.h:
* gst/asfdemux/gstasfmux.h:
* gst/dvdlpcmdec/gstdvdlpcmdec.h:
* gst/iec958/ac3iec.h:
* gst/mpegaudioparse/gstmpegaudioparse.h:
* gst/mpegstream/gstdvddemux.h:
* gst/mpegstream/gstmpegclock.h:
* gst/mpegstream/gstmpegdemux.h:
* gst/mpegstream/gstmpegparse.h:
Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
2006-06-01 21:11:41 +00:00
Tim-Philipp Müller
ddab78c1ab gst/asfdemux/gstasf.c: Call gst_riff_init() so the riff debug category gets set up before it is being used.
Original commit message from CVS:
* gst/asfdemux/gstasf.c: (plugin_init):
Call gst_riff_init() so the riff debug category gets set up
before it is being used.
2006-05-22 08:24:09 +00:00