Commit graph

886 commits

Author SHA1 Message Date
Wim Taymans
62efb84c19 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
2011-02-26 15:02:58 +01:00
Stefan Kost
9424c553b9 index: use delta frame flags instead of 0 or none 2011-02-17 18:05:58 +02: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
Yang Xichuan
904d0b9b60 xingmux: Use FALSE instead of 0 as return value for a function returning gboolean
Fixes bug #639291.
2011-01-24 19:44:41 +01:00
Vincent Penquerc'h
7e6125fc8f mpegstream: increase allowable gap between streams
The new delay is three times as much as the old one, and just happens
to let me properly decode my "Princess Mononoke" DVD, on which dvdreadsrc
was chocking before at 5:11.
While there, merge the constants used in two places into a define.

https://bugzilla.gnome.org/show_bug.cgi?id=539708
2011-01-24 19:44:41 +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
Edward Hervey
65ac3e727b rmdemux: Initialize return variable.
In the unlikely event that height is 0 (which is invalid) we would end up
never setting the flow return.
2011-01-06 13:15:17 +01:00
Edward Hervey
c849e854a8 realmedia: Fix unitialized variables on macosx 2011-01-05 16:52:03 +01:00
Vincent Penquerc'h
878781c6a7 realmedia: do not use the pad buffer allocation functions in demuxers
Doing so can block, see https://bugzilla.gnome.org/show_bug.cgi?id=637822

https://bugzilla.gnome.org/show_bug.cgi?id=637932
2010-12-24 14:15:48 +01:00
Rob Clark
987c199370 rmdemux: set GST_BUFFER_FLAG_DELTA_UNIT properly
Signed-off-by: Rob Clark <rob@ti.com>
2010-12-13 14:51:53 -06:00
Edward Hervey
f4031d19a6 realmedia: Remove dead assignments 2010-11-25 19:51:50 +01:00
Tim-Philipp Müller
d128f5fab1 realmedia: fix LIBS order in Makefile 2010-10-28 17:04:24 +01:00
Edward Hervey
fe3e26bee4 realmedia: Get codec name from pbutils instead of harcoding them 2010-10-24 14:25:49 +02:00
Stefan Kost
26cd4ee3a0 various: canonicalize property names 2010-10-19 12:24:13 +03:00
Stefan Kost
91f9b986a1 various (gst): add a missing G_PARAM_STATIC_STRINGS flags 2010-10-19 09:51:23 +03:00
Tim-Philipp Müller
ccb624ec03 mpegparse: re-fix flow return handling
Fix wrong GST_FLOW_IS_SUCCESS substitution in commit e99cb46c:
-  } while (GST_FLOW_IS_SUCCESS (result));
+  } while (result != GST_FLOW_OK);
2010-09-15 20:19:26 +01:00
Sebastian Dröge
bd65afed85 xingmux: Don't ignore WRONG_STATE and NOT_LINKED when pushing data downstream 2010-09-04 14:57:51 +02:00
Sebastian Dröge
e99cb46c60 mpegstream: Don't use GST_FLOW_IS_SUCCESS() 2010-09-04 14:57:51 +02:00
Sebastian Dröge
f3fa6f6de0 rmdemux: Don't use GST_FLOW_IS_FATAL() and GST_FLOW_IS_SUCCESS() 2010-09-04 14:57:51 +02: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
Alessandro Decina
2ca354e3ab mp3parse: propagate flow errors upstream.
Remove a wrong GST_FLOW_IS_FATAL call. When pushing fails, mp3parse should
always return the error upstream.
2010-08-25 15:39:33 +02:00
Stefan Kost
73cc65fa88 synaesthesia: code cleanups.
Remove unused boilerplate for signals. Use _OBJECT variants of logging macros
more.
2010-08-10 14:37:39 +03:00
Stefan Kost
ed9fd645ad synaesthesia: use GST_BOILERPLATE macros 2010-08-10 14:29:05 +03: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
Tim-Philipp Müller
6f5dabb71f rmdemux: fix compiler warning when debugging system in core is disabled 2010-06-24 18:03:21 +01: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
Sebastian Dröge
602fb1319a configure: Update required GLib version to 2.20 2010-06-14 16:59:25 +02:00
Wim Taymans
2c469df530 rmdemux: pass bitrate on caps
Set the bitrate on the caps, some decoders like sipro need this to function
properly.

Fixes #620007
2010-06-05 14:13:02 +02:00
Wim Taymans
4044046ac1 rmdemux: add better sipr nibble swap routine 2010-05-14 16:02:47 +02:00
Wim Taymans
a68951f0bb rmdemux: descramble SIPR before pushing out
Collect and descramble the SIPR packets before pushing.
Descramble ATRAC audio.

Fixes #618098
2010-05-13 17:57:57 +02:00
Wim Taymans
0b73505c61 rm: add function to descramble sipr 2010-05-13 17:57:02 +02:00
Tim-Philipp Müller
d7dc396878 rtspreal: use GLib's base64 functions if available
Since gst_rtsp_base64_decode_ip() just got deprecated in -base git.
2010-04-30 19:53:15 +01:00
Stefan Kost
c22772a5bb ac3parse: remove unported 0.8 plugin
New ac3parse lives in gst-plugin-bad. Remove this to avoid confusion.
2010-04-27 13:15:47 +03:00
Stefan Kost
1f7589fa4e docs: adding a mp3decoder as well is useful 2010-04-27 12:25:37 +03:00
Stefan Kost
79e2132eef docs: fix sections docs for synaesthesia 2010-04-27 11:37:52 +03:00
Stefan Kost
22dcc68a62 docs: add docs for mp3parse 2010-04-27 11:02:50 +03: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
d198cb485d build: build plugins in parallel where possible, if make -jN is used 2010-03-30 01:18:50 +01:00
Edward Hervey
c4e14839e8 synaestesia: Fix old-style prototype 2010-03-24 19:35:03 +01:00
Руслан Ижбулатов
49c5383c71 Fix pointer type.
Fixes #613815
2010-03-24 19:01:34 +01:00
Sebastian Dröge
c88c88de0d build: Add all kinds of compiler warning flags and fix the resulting warnings 2010-03-24 11:27:40 +01: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
Tim-Philipp Müller
efc5181d13 rtspreal: don't construct config header with uninitialised bytes
Turns out 4 + 4 + 2 + (4 * 2) is actually 18 and not 22. This avoids
a presumably unintentional padding of uninitialised bytes at the end
of the CONT tags chunk, which should be harmless but causes warnings
in valgrind (see #608533 for a test URL).
2010-01-31 13:03:58 +00:00
Tim-Philipp Müller
cd6b16734e rtspreal: add finalize function so we can free streams and rulebook
Fix memory leak in Real RTSP component (#608533).
2010-01-30 19:15:15 +00:00
Tim-Philipp Müller
4cb5f32308 rtspreal: fix minor memory leak
Caps take their own reference when a buffer is added to them, so
unref buffer after adding it to caps (#608533).
2010-01-30 19:15:15 +00:00
Tim-Philipp Müller
29c509a7b8 rdtdepay: unref input buffer when done
Fixes memory leak, see #608533.
2010-01-30 19:15:15 +00: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
Arnaud Patard
9094dc1bc6 xingmux: Fix unaligned memory access
ARM/SPARC need 32bit alignment but xingmux accesses possibly
unaligned memory, which leads to SIGBUS.

Fixes bug #586464.
2010-01-11 14:06:03 +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
6dd3525806 rmdemux: Parse and post bitrate for streams
Parse the bitrate of the streams and post their tags.

Fixes #599299
2010-01-07 16:36:08 -03: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
Mark Nauwelaerts
8e5df1a902 mp3parse: minor validation check of (Xing, VBRI) metadata
... to detect e.g. a truncated file, rendering some of the metadata invalid.
2010-01-04 15:25:52 +01:00
Mark Nauwelaerts
b64f6065c2 mp3parse: use proper total_time and total_bytes in various cases
The correct basis for (Xing, VBRI) seek table calculations is the
byte size and duration provided by that metadata, rather than some
other (possibly even estimated) one.  This also prevents an infinite
conversion loop in (unlikely) case where a TOC is provided without
such corresponding (duration) metdata.
2010-01-04 15:25:50 +01:00
Thiago Santos
5e3f07b6a1 mp3parse: conserve stop time for non-accurate seek
Use the same strategy as accurate seeks to store
pending non-accurate seeks to avoid overwriting non-definite
stop times. When doing non-accurate seeks our position
reporting might drift off by some secs and the stream can
end up before it should.

Fixes #603695
2010-01-04 10:01:44 -03:00
Thiago Santos
ea7a9e550a mp3parse: return false when we can't seek
When upstream can't seek, we return false as well
2009-12-08 19:01:50 -03:00
Mark Nauwelaerts
9fe72b5da3 mp3parse: fix non-flushing seek
Specifically, in addition to clearing lots of variables/offsets
when receiving newsegment, also clear leftover data to match.
2009-11-26 15:58:57 +01: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
be7f763882 dvdsubdec: Fix printf format string warning 2009-11-04 15:50:17 +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
Wim Taymans
3784de031d rmutils: fix byteswapping
fix the byteswapping code that was wrong because of the side effects of the
READ/WRITE macros.

Fixes #599676
2009-10-27 12:33:24 +01: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
Edward Hervey
33b4528a0e mpegaudioparse: Don't use expensive glib ways to get an enum nick.
Fixes #598761

This removes a good 50% of processing time for parsing a buffer.

We do this by simply... getting the nicks that we already have handy
instead of going through the expensive glib system.
2009-10-24 20:37:13 +02:00
Josep Torra
8841ca0a3c mpegstream: fix warning in macosx snow leopard 2009-10-11 16:16:09 +02:00
Josep Torra
9c6b0cacb5 mpegaudioparse: fix warning in macosx snow leopard 2009-10-11 16:14:08 +02:00
Josep Torra
8d77fcd1fb dvdsubdec: fix warning on macosx snow leopard 2009-10-11 16:09:11 +02:00
Josep Torra
c4fe899f1a asfdemux: fix warning in macosx snow leopard 2009-10-11 16:06:25 +02:00
René Stadler
0b0b07eb49 mp3parse: don't fail SEEKING query when upstream query fails for TIME format 2009-10-08 20:10:11 +03:00
Stefan Kost
d125baa8c5 build: fprintf, sprintf, sscanf need stdio.h 2009-10-07 14:22:09 +03:00
Wim Taymans
f2613470fd dvdlpcm: whitespace fixes 2009-10-05 12:14:18 +02:00
Mark Nauwelaerts
820abb3ab8 mpegaudioparse: prevent infinite (re)syncing
Conflicts:

	gst/mpegaudioparse/gstmpegaudioparse.c
2009-09-25 18:11:48 +02:00
Michael Smith
8307e177ba mp3parse: Refactor checking for sync. Make resyncing more reliable.
Previously, we could get false sync relatively easily - it sometimes happened
on real files. This cleans the code up a fair bit, and makes it require more
confirmation that we've found valid sync before continuing.
2009-09-22 12:17:18 -07:00
Mark Nauwelaerts
57d01c2526 mpegaudioparse: ensure 2 valid headers in a row when resyncing 2009-09-17 16:22:36 +02:00
Tim-Philipp Müller
59f5b02444 dvddemux: remove bogus ifndef 2009-09-11 10:05:30 +01:00
Tim-Philipp Müller
94a404cb8d dvdsubparse: GstAdapter is not a GstObject and should be freed with g_object_unref 2009-08-31 13:44:31 +01: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
Mark Nauwelaerts
52f6764e4c mpegaudioparse: use metadata (xing, vbri) provided bytesize for conversions
Metadata provided seek tables are consistent with metadata's view of
total size, which typically matches real size, but need not do so
(e.g. a truncated file).  Fixes seeking and position reporting
in such truncated files (although duration based on metadata may then
still be incorrect).
2009-08-14 12:07:40 +02: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