Commit graph

446 commits

Author SHA1 Message Date
Sebastian Dröge
452b3a29fc asfdemux: Use correct enum type 2012-05-13 15:26:48 +02:00
Vincent Penquerc'h
cd8a5fb939 asfdemux: implement pull mode seek snap flags when an index is present
Also ensure we get a proper EOS when seeking past the end of the
file, or (when the snap after flag is set) between the last keyframe
and the end of the file.
2012-05-10 10:16:14 +01:00
Tim-Philipp Müller
3064bf4a86 asfdemux: fix performance issue, especially with high-bitrate streams
Two things were suboptimal from a performance point of view:

a) consider a large media object such as a video keyframe, which
   may be split up into multiple fragments. We would assemble
   the media object as follows:
     buf = join (join (join (frag1, frag2), frag3), frag4)
   which causes many unnecessary memcpy()s, and malloc/free,
   which could easily add up to a multiple of the actual object
   size. To avoid this, we allocate a buffer of the size needed
   from the start and copy fragments into that directly.

b) for every fragment to join, we would create a sub-buffer
   before joining it (which would discard the sub-buffer again),
   leading to unnecessary miniobject create/free churn.

Conflicts:

	gst/asfdemux/asfpacket.c
	gst/asfdemux/asfpacket.h
2012-04-16 09:02:46 +02:00
Tim-Philipp Müller
65436c8715 asfdemux: avoid unnecessary stream lookup
We have already retrieved the stream for that stream number and
made sure it's not NULL, so no need to do it again here; neither
the number nor the streams changed since the last time.
2012-04-16 08:54:31 +02:00
Tim-Philipp Müller
08d20e4da8 Use new gst_element_class_set_static_metadata() 2012-04-10 00:47:44 +01:00
Sebastian Dröge
29a893b494 gst: Update for GST_PLUGIN_DEFINE() API changes 2012-04-05 17:40:12 +02:00
Sebastian Dröge
9e5a55a70f gst: Update versioning 2012-04-04 14:38:53 +02:00
Wim Taymans
ede01ed7ac update for buffer api change 2012-03-30 18:15:39 +02:00
Wim Taymans
ffa672bd34 update for buffer changes 2012-03-28 12:53:13 +02:00
Wim Taymans
84c98370e5 update for new memory api 2012-02-22 02:07:49 +01:00
Wim Taymans
f731208bcd GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING 2012-02-08 16:38:09 +01:00
Wim Taymans
56a07a14b5 port to new memory API 2012-01-25 11:57:07 +01:00
Wim Taymans
a95015dcfd port to new gthread API 2012-01-19 11:34:41 +01:00
Mark Nauwelaerts
712188f26b asfdemux: set caps on src pad before adding it 2012-01-13 15:59:06 +01:00
Mark Nauwelaerts
96030c3b09 asfdemux: perform writable buffer map to copy into it 2012-01-13 15:59:05 +01:00
Mark Nauwelaerts
0bc76c0d03 asfpacket: fix 0.11 ported payload extraction
... to cater for not necessarily offset == size - cur_pos,
as size may have been adjusted due to padding.

Fixes #667567.
2012-01-13 15:59:01 +01:00
Tim-Philipp Müller
86313742d4 GST_TYPE_DATE -> G_TYPE_DATE 2012-01-13 00:05:50 +00:00
Sebastian Dröge
31063f0098 Merge branch 'master' into 0.11
Conflicts:
	ext/a52dec/gsta52dec.c
	ext/a52dec/gsta52dec.h
	ext/lame/gstlame.c
	ext/lame/gstlame.h
	ext/lame/gstlamemp3enc.c
	ext/mad/gstmad.c
	ext/mad/gstmad.h
	gst/mpegaudioparse/gstmpegaudioparse.c
	gst/mpegstream/gstdvddemux.c
	gst/realmedia/rdtdepay.c
	po/es.po
	po/lv.po
	po/sr.po
2012-01-10 15:17:11 +01:00
Sebastian Dröge
58787102e9 asfdemux: Only change writable caps and make sure to set updated caps on the srcpad 2012-01-09 15:46:10 +01:00
Sebastian Dröge
e3f1b21660 asfdemux: Update for libgstriff API changes
Still needs to handle audio channel reordering.
2012-01-05 10:37:04 +01:00
Wim Taymans
f9d64ff495 GST_FLOW_UNEXPECTED -> GST_FLOW_EOS 2012-01-03 15:27:42 +01:00
Tim-Philipp Müller
da9f20eceb Work around deprecated thread API in glib master
Add private replacements for deprecated functions such as
g_mutex_new(), g_mutex_free(), g_cond_new() etc., mostly
to avoid the deprecation warnings. We can't change most of
these in 0.10 because they're part of our API and ABI.

Suppress deprecation warnings in selected files, mostly for
g_static_rec_mutex_*. StaticRecMutex is part of our API/ABI,
not much we can do here in 0.10.
2011-12-12 11:33:31 +00:00
Edward Hervey
fb335d6fc1 rtpasfdepay: Initialize GstRTPBuffer before usage 2011-12-05 18:43:49 +01:00
Vincent Penquerc'h
213ce049ad various: fix pad template ref leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:10:01 +00:00
Matej Knopp
4b57b9288b Fix print format compiler warnings on OS X / 64bit
https://bugzilla.gnome.org/show_bug.cgi?id=662617
2011-11-23 23:23:29 +00:00
Wim Taymans
03bc286c64 update for activation changes 2011-11-21 13:36:10 +01:00
Wim Taymans
8eca58a50e update for new scheduling query 2011-11-18 18:00:28 +01:00
Wim Taymans
df3e30ed7e add parent to activate functions 2011-11-18 13:59:29 +01:00
Wim Taymans
2679b9432a add parent to pad functions 2011-11-17 15:25:58 +01:00
Wim Taymans
ee240c1ac0 add parent to query function 2011-11-16 17:28:56 +01:00
Wim Taymans
d338e41a85 _query_peer_*() -> _peer_query_*() 2011-11-15 17:55:36 +01:00
Wim Taymans
115e7cbd7f update for base class rename 2011-11-11 12:33:51 +01:00
Wim Taymans
ea1537a4a8 update for base class rename 2011-11-11 12:25:25 +01:00
Wim Taymans
6a7345c98d remove query types 2011-11-09 11:58:03 +01:00
Wim Taymans
85c1707fcf more template fixes 2011-11-04 16:42:31 +01:00
Wim Taymans
e59ba7ca05 tags: update for tag API removal 2011-11-02 12:09:45 +01:00
Wim Taymans
c944e225c8 structure: fix for api update 2011-11-02 09:09:26 +01:00
Tim-Philipp Müller
d919b7b0f4 Merge remote-tracking branch 'origin/master' into 0.11 2011-10-31 14:34:57 +00:00
Tim-Philipp Müller
1905e95cea ext, gst: update for taglist API changes 2011-10-30 11:51:58 +00:00
Edward Hervey
daecb74456 asfdemux: Don't leak pending payload buffers
Fixes #662964
2011-10-29 11:57:40 +02:00
Tim-Philipp Müller
211fd04773 asfdepay: fix compiler warnings after gst_caps_new_simple() change 2011-10-28 09:18:04 +01:00
Edward Hervey
82a8cc6807 asfdemux: Don't unmap a buffer that doesn't exist 2011-10-11 18:03:01 +02:00
Wim Taymans
854f4d846b Merge branch 'master' into 0.11
Conflicts:
	ext/mad/gstmad.c
2011-09-26 19:07:23 +02:00
Mark Nauwelaerts
eee31aecb3 asfpacket: skip empty payload packets
... which also avoids assertion failures and possible segfaults later on
when possibly trying to join 2 empty buffers.
2011-09-08 17:02:27 +02:00
Wim Taymans
d4f1303f57 asf: don't use fourcc 2011-08-25 13:04:01 +02:00
Wim Taymans
8ab84f0f8a Merge branch 'master' into 0.11
Conflicts:
	common
	gst/asfdemux/gstrtpasfdepay.c
2011-08-03 18:58:09 +02:00
Edward Hervey
0a593a1e98 asfdemux: Fix for changes in GstQuery API 2011-08-02 12:40:22 +02:00
Edward Hervey
8281683027 asfdemux: Fix print statement 2011-08-02 12:40:01 +02:00
Thiago Santos
6649f6cfa0 rtspwms: Porting to 0.11 2011-06-20 00:36:59 -03:00
Thiago Santos
77106101fa rtpasfdepay: Port to 0.11 2011-06-20 00:36:59 -03:00
Thiago Santos
2dc2be5e7b asfdemux: Porting to 0.11 2011-06-20 00:36:59 -03:00
Mark Nauwelaerts
3ba6d1588f rtpasfdepay: fix fragmented packet handling and packet padding
Also remove a bogus assert.
2011-06-06 12:55:02 +02:00
Wim Taymans
13c252b2a8 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
2011-06-02 18:46:11 +02:00
Mark Nauwelaerts
58e445d91f rtpasfdepay: simplify and refactor packet parsing
Specifically, refactor buffer padding and consider marker bit for fragment
assembling.
2011-05-16 12:53:27 +02:00
Mark Nauwelaerts
4f2627e737 rtpasfdepay: avoid re-sending header
... e.g. following a seek, which otherwise confuses downstream demuxer
expecting only a flow of data packets at this time.
2011-05-16 12:53:24 +02:00
Mark Nauwelaerts
81f62a987a rtpasfdepay: remove unused field 2011-05-16 12:53:20 +02:00
Wim Taymans
98729bc82c Merge branch 'master' into 0.11
Conflicts:
	android/amrnb.mk
	android/amrwbdec.mk
	android/asf.mk
	android/mpegaudioparse.mk
	configure.ac
2011-04-19 19:23:56 +02:00
Tim-Philipp Müller
81173fcbad asfdemux: fix unused-but-set-variable warnings with gcc 4.6 2011-04-14 15:03:33 +01:00
Thibault Saunier
1e6a607e01 android: make it ready for androgenizer
To build gstreamer for android we are now using androgenizer which
generates the needed Android.mk files.

Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git
2011-04-11 07:31:13 +02:00
Wim Taymans
62efb84c19 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
2011-02-26 15:02:58 +01:00
Edward Hervey
67f754a9ea asfpacket: Avoid using broken duration extension
Quite a few (broken?) files have a packet duration of 1ms, which is
most definitely wrong for either audio or video packets.

We therefore avoid using that value and instead use other metrics to
determine the buffer duration (like using the extended stream properties
average frame duration if present and valid).
2011-01-30 16:17:19 +01:00
Edward Hervey
6eb48af87c asfdemux: Handle new type of DRM'd asf files.
These are produced by the new MS PlayReady system.

https://bugzilla.gnome.org/show_bug.cgi?id=639226
2011-01-11 17:51:31 +01:00
Sebastian Dröge
704b371944 asfdemux: Don't use GST_FLOW_IS_FATAL()
And don't post error messages for UNEXPECTED and post an error
message if pulling data failed because of NOT_LINKED.
2010-09-04 14:57:51 +02:00
Edward Hervey
776a09149e asfdemux: Don't error out on non-critical flow returns
Only error out when downstream returns:
* NOT_SUPPORTED
* ERROR
* NOT_NEGOTIATED
* NOT_LINKED

If we got _UNEXPECTED, we push an EOS downstream (since maybe only one
of the streams had gone EOS) and then stop the task silently.

In the case of WRONG_STATE we just need to stop silently

https://bugzilla.gnome.org/show_bug.cgi?id=600412
2010-08-27 17:59:12 +02:00
Thiago Santos
81dfce4095 asfdemux: Fix seeking after last commits
Don't handle wrong-state returns as errors to allow seeking to work
again.
2010-06-28 09:34:30 -03:00
Thiago Santos
36e12c92c1 asfdemux: Push all pending data on EOS
When on push mode and receiving an EOS event, asfdemux
should push all pending data because we might be dealing
with a broken file that has a preroll value higher
than its actual length.
2010-06-24 19:46:39 -03:00
Thiago Santos
ec3b13a250 asfdemux: Fix sending eos event for chained asfs
Properly push EOS event when finishing a chained asf file
in pull mode

Fixes #599718
2010-06-24 19:29:17 -03:00
Edward Hervey
5ac4ea3f1b asfdemux: Allow at least 500ms of preroll.
Some files have insanely low preroll values which break the
all_streams_prerolled() logic.

Fixes #622407
2010-06-23 11:06:54 +02:00
Wim Taymans
aa2a7bdda2 asfdepay: we require a dynamic payload type
Add an extra caps property that restricts the depayloader to only accept dynamic
payload types.
2010-04-15 16:31:23 +02:00
Edward Hervey
f34dd3626a asfdemux: Make a table static to avoid having to always allocate it. 2010-04-14 09:30:54 +02:00
Tim-Philipp Müller
c8e931574e build: fix up Makefile.am
Mostly just add $(GST_BASE_CFLAGS) where they're missing and fix
the order a bit here and there (see docs/random/moving-plugins).
2010-03-19 00:12:38 +00:00
Benjamin Otte
9850bd814f gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-18 15:53:14 +01:00
Edward Hervey
48a1935cb0 asfdemux: Don't set durations of 0 on outgoing buffers.
Some (broken) streams don't have the extended stream properties in
the header, resulting in applying a duration of zero on outgoing
buffers.

Fixes #611473
2010-03-01 16:52:08 +01:00
Edward Hervey
79b154e4f7 asfdemux: Make sure we always set proper payload duration.
Some (broken) streams will have a delta of 0, resulting in outgoing
buffers having durations of 0.

Fixes #611473
2010-03-01 16:51:56 +01:00
Edward Hervey
417e3e0346 asfdemux: Make sure we don't end up with negative timestamps.
Some files have payload with timestamps smaller than the preroll duration.
Instead of blindly substracting the preroll value (and ending up with
insanely high timestamps on the outgoing buffers), we make sure we
never go below 0.

Fixes #610432
2010-02-19 18:11:13 +01:00
Robert Swain
ad45fd1827 asfdemux: Improve seek behaviour for audio-only with no index
Instead of seeking to seek_time - 5s in the hope of hitting a keyframe
for video, we can just seek to seek_time instead.
2010-02-16 13:02:47 +01:00
Thiago Santos
8f60eb26f3 asfdemux: Do not subtract padding twice
Only subtract implicit padding if an explicit one isn't
provided. Avoids subtracting it twice and causing
parsing errors.

Fixes #607698
2010-01-22 15:49:58 -03:00
Stefan Kost
da70785dcd assert: g_assert_not_reached() cannot replace return statement
Fix build with assert being turned off.
2010-01-22 16:55:14 +02:00
Edward Hervey
8829c5141a asfdemux: Don't forget to update flow variable
Forgot to update the return value in the loop.
2010-01-18 18:01:55 +01:00
Edward Hervey
bb20a20d86 asfdemux: Check flow return on every push
We previously only aggregated flow returns after the while(push) loop,
which meant that in some cases we would end-up not properly aggregating
the flow returns.

This is based on the same flow aggregation algorithm as oggdemux.
2010-01-18 17:51:57 +01:00
Michael Smith
84d80fffcd asfdemux: Use GST_STR_NULL in a couple of places.
Fixes crashing on some of the log statements on win32.
2010-01-07 14:37:31 -08:00
Thiago Santos
db73c4337d asfdemux: Post bitrate tag
If stream bitrate object is available, post the bitrate
tags.

Fixes #599297
2010-01-07 13:54:21 -03:00
Benjamin Gaignard
26290a698c asfdemux: Don't call strlen() on NULL pointers
Fixes bug #602280.
2009-11-18 09:58:39 +01:00
Thiago Santos
b4007d3c76 asfdemux: Remove old pads when new ones are added
The old pads were being removed before adding the new ones,
we should add the new ones first.

Fixes #599718
2009-11-09 15:02:05 -03:00
Thiago Santos
a155733bff asfdemux: Handle chained asfs on pull mode
Adds chained asfs handling to pull mode. It now checks if
there is a new asf header after the last packet (when it
is possible to know how many packets are) or it tries
checking if a processed packet that fails is an header
object.

Fixes #599718
2009-11-09 14:24:13 -03:00
Thiago Santos
dc65baacf6 asfdemux: properly do chained asfs on push mode
To properly do chained asfs work with playbin2, we need to
push eos on the old pads before removing them.

Fixes #599718
2009-11-09 14:23:04 -03:00
Thiago Santos
37e805ef24 asfdemux: add support for chained asfs (push mode)
Adds support for detecting and playing chained asfs
in push mode. asfdemux tries to detect a new asf start
by identifying the header object guid in a input buffer.
When it finds it, it resets its state, removing its pads
and creates new ones for the new file.
2009-11-06 18:59:30 -03:00
Tim-Philipp Müller
9e3e475f36 asfdemux: fix two small leaks 2009-11-05 18:33:09 +00:00
Tim-Philipp Müller
b84bf977b1 asfdemux: prefer WM/TrackNumber over WM/Track, it's more reliable
WM/Track has a 0 base but is often wrongly written as starting from 1,
so not as reliable as WM/TrackNumber which always starts from 1.
2009-11-05 18:19:58 +00:00
Tim-Philipp Müller
1c88985618 asfdemux: WM/Track starts counting from 0, adjust to start from 1 2009-11-05 18:11:55 +00:00
Tim-Philipp Müller
aa52dd1320 asfdemux: map WM/TrackNumber to GST_TAG_TRACK_NUMBER as well
There's both WM/Track and WM/TrackNumber.
2009-11-05 18:11:35 +00:00
Jan Schmidt
acd6f70515 asfdemux: Fix bogus variable used uninitialised warnings 2009-11-04 15:46:04 +00:00
Michael Smith
2349f09e6a asfdemux: fix c99-style comments. 2009-10-29 11:39:13 -07:00
Michael Smith
5ccedb2a38 asfdemux: accept fragments in a continued packet where the subsequent fragments
declare a size of 0. Fixes bug 600037.
2009-10-29 10:36:08 -07:00
Thiago Santos
59f6c82c32 asfdemux: careful to avoid crash on bogus data
When receiving bogus data, we have to avoid subtracting a value
larger than 'size' from 'size' variable, resulting in a wrap
that would make 'size' a really large bogus value.

Fixes #599333
2009-10-26 17:31:19 -03:00
Josep Torra
c4fe899f1a asfdemux: fix warning in macosx snow leopard 2009-10-11 16:06:25 +02:00
Stefan Kost
d125baa8c5 build: fprintf, sprintf, sscanf need stdio.h 2009-10-07 14:22:09 +03:00
David Schleef
0c15317848 asfdemux: Remove old non-built asfmux code
Remove so people don't confuse it with the new asfmux code
in -bad.
2009-08-24 14:00:23 -07:00
Thiago Santos
6adb49c501 rtpasfdepay: set padding size to the correct value
asf packets in rtp packets should come with their padding fields
set to 0 and the depayload must update them to the correct
value before pushing downstream
2009-07-31 00:25:43 -03:00
Edward Hervey
6f58ca470e asfdemux: Refactor multiple packet pull.
This also fixes a bug by which the first buffer (in a multi-packet mode)
passed to asf_demux_parse_packet() would have a GST_BUFFER_SIZE of the
full incoming buffer and not just of the single asf packet.

Fixes corrupted frames introduced by latest commit.
2009-06-29 11:13:02 +02:00
Wim Taymans
0fc6f338dc asfdemux: use the right accurate field
Remove accurate variable and its faulty use because the real variable is an
instance variable.
2009-06-29 10:58:49 +02:00
Edward Hervey
d71973cc4c asfdemux: Sprinkle branch prediction macros accross the code 2009-06-28 17:52:38 +02:00
Edward Hervey
d451dff520 asfdemux: Delay newsegment handling until we have a keyframe.
We now have a chance for packets to be collected before we send out the
newsegment. If we're not in accurate seeking (keyunit) it will set
the segment start/time to the keyframe's timestamp.
2009-06-28 17:52:38 +02:00
Edward Hervey
3b63c95450 asfdemux: Remove useless check. We already have checked for it above. 2009-06-28 17:52:38 +02:00
Edward Hervey
a3c832405e asfdemux: No longer queue GOPs now that seeking is fixed.
We now *always* seek to the keyframe just before our requested position.
When we encounter the first keyframe and we were not accurate (therefore doing
keyframe seeking), we update the segment start position to the keyframe timestamp.
2009-06-28 17:50:45 +02:00
Edward Hervey
e6c6eefefb asfdemux: Store the accurate seeking flag 2009-06-28 17:50:45 +02:00
Edward Hervey
725da8579b asfdemux: Use the average frame duration for buffers without a duration.
This will still cause some timestamp jitter, but giving a hint as to the duration
rather than nothing seems to be a better idea.
Also, this allows some scenarios (like remuxing with asfmux) to estimate the total
duration using the accumulated packet duration (which will be correct).
2009-06-28 17:33:51 +02:00
Edward Hervey
99d9b34385 asfdemux: Use index entry packet count to optimize seeking.
The simple index entries also contain the number of packets one needs
to retrieve at a given position to get a full keyframe. We therefore
use that information to retrieve all those packets in one buffer when
working in pull-mode.
2009-06-28 17:33:48 +02:00
Thiago Santos
6e2a117eb2 asfdemux: Do not try to free const pointer
In gst_asf_demux_chain_headers, when 'goto wrong_type' was called
asfdemux tried to free a const pointer that had been cast to a
normal pointer variable.
2009-06-26 21:07:59 -03:00
Edward Hervey
3c683ead7b asfdemux: Use presentation timestamp when searching in the index.
We need to take the preroll into account... else we end up too early.
2009-06-26 20:45:09 +02:00
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