Sebastian Dröge
d6b6d0cdad
oggdemux: Add support for mapping specific granulepos to key granule mapping
2010-05-19 19:23:07 +02:00
Sebastian Dröge
5fc1309703
ogg: Implement Ogg VP8 mapping
2010-05-19 19:23:07 +02:00
Wim Taymans
02a78f528c
oggdemux: don't seek when no current chain
...
Avoid a crash when we try to seek when there is no current chain.
2010-05-06 13:10:54 +02:00
Wim Taymans
e33425e4d0
oggdemux: ignore the skeleton start time
...
Ignore the skeleton start time as it is usually wrong for live streams
and we have the needed logic to calculate it anyway.
2010-05-06 12:21:38 +02:00
Wim Taymans
27de725038
oggdemux: wait for headers before exposing chains
...
Wait until we have all the stream headers before we start exposing the streams
of a chain.
2010-05-06 12:06:09 +02:00
Wim Taymans
549bc3c80e
oggdemux: use index to estimate bitrate
...
When we have an index, use it to much more accurately estimate the total stream
bitrate.
2010-05-06 10:58:01 +02:00
Stefan Kost
2e3cfe4546
libvisual: trucate own caps, instead of copying and using the first only
...
We got the caps from an intersect, it is our own, hence we can truncate it.
2010-05-06 09:11:17 +03:00
Stefan Kost
4e6cb3e91f
vorbis: have a copy_sample func as a func pointer
...
Make some more variants for copy_sample funcs and use them via function pointer.
2010-05-06 08:22:36 +03:00
Tim-Philipp Müller
f22b115804
oggdemux: printf format fixes
2010-05-05 13:25:02 +01:00
Wim Taymans
7b3f9aa504
oggdemux: handle corrupt indexes
...
Make sure we handle and receover from corrupt indexes.
2010-05-04 17:38:50 +02:00
Wim Taymans
e84b3c838c
oggdemux: fix EOS check
2010-05-04 15:47:29 +02:00
Wim Taymans
50e556cc84
oggstream: avoild division by 0
2010-05-04 13:51:07 +02:00
Wim Taymans
12929944a7
oggdemux: cleanup unused defines
2010-05-04 13:50:46 +02:00
Wim Taymans
a57b461af8
oggdemux: use the index in push mode when we can
...
When seeking in push mode, try to use the index first before we use the bitrate
estimation.
2010-05-04 13:36:58 +02:00
Wim Taymans
03c3aa6377
oggdemux: use skeleton duration when possible
2010-05-04 13:06:24 +02:00
Wim Taymans
5c770a17db
oggstream: parse duration from 3.3 skeleton
2010-05-04 13:02:19 +02:00
Wim Taymans
ff4479f00a
oggdemux: more index parsing work
2010-05-04 12:11:18 +02:00
Wim Taymans
97319a6276
oggdemux: clean up fishead/fisbone parsing
...
Remove some redundant code for parsing fishead streams. Actually use the data we
parsed (mostly start_time).
2010-05-04 12:05:15 +02:00
Wim Taymans
f96caa17b3
oggdemux: implement seek in push mode
...
Refactor start time collection code.
When we receive a flush_stop, resync to the new start time and push out a new
segment event.
2010-05-04 11:26:14 +02:00
Wim Taymans
9be4e53001
oggdemux: make event handling better
...
Explicitly handle FLUSH events and resync on FLUSH_STOP.
Make send_event return a boolean.
Use more performant send_event function to forward events.
2010-05-04 11:26:14 +02:00
Wim Taymans
c4ec1c4c62
oggdemux: implement seeking in pushmode
...
Convert seek requests to bytes using the bitrate and forward them upstream. Does
not quite work because the flushing and resyncing is not implemented yet.
2010-05-04 11:26:14 +02:00
Wim Taymans
d9b7003926
oggdemux: refactor for seeking in pushmode
...
refactor the code a little to prepare for seeking in push mode
2010-05-04 11:26:14 +02:00
Wim Taymans
f9ca4f6097
oggdemux: use bitrate to estimate length in pushmode
...
Parse the bitrate from the various streams.
Use the bitrate and the upstream length in bytes to estimate the total stream
duration in push mode.
2010-04-30 17:43:06 +02:00
Tim-Philipp Müller
63931dc80b
Bump GLib requirement to 2.20
...
See http://gstreamer.freedesktop.org/wiki/ReleasePlanning/GLibRequirement
2010-04-30 14:08:50 +01:00
Mark Nauwelaerts
e23d6bbda7
oggdemux: only EOS when all streams are EOS
2010-04-30 12:51:54 +02:00
Mark Nauwelaerts
e8ae2adef1
oggdemux: fix debug message
2010-04-30 12:51:51 +02:00
Stefan Kost
efe59faa93
docs: fix typo in link name
2010-04-16 15:53:27 +03:00
Tim-Philipp Müller
62b1764552
playback, ogg: dist new gstplayback.h and gstogg.h
2010-04-09 09:26:08 +01:00
Edward Hervey
e528e73268
ext: Invert rank of gio and gnomevfs elements
2010-04-08 12:21:50 +02:00
Tim-Philipp Müller
930f72c6b0
alsa: don't pass non-constant strings as printf format strings
...
Fixes 'format not a string literal and no format arguments' compiler
warning when compiling with -DGST_DISABLE_PRINTF_EXTENSION.
2010-04-08 01:26:55 +01:00
Sebastian Dröge
44e474f76d
alsa: Ignore errors when unpreparing or closing the device
...
Errors could happen here when the device was removed already
or when something is broken anyway. If errors happen here and
they're propagated, the element can't shutdown cleanly.
Fixes bug #614545 .
2010-04-04 21:18:04 +02:00
Sebastian Dröge
1e8f3f7689
alsamixer: Detect errors from device polling, stop the task and post an error message
...
Partially fixes bug #614545 .
2010-04-04 21:00:52 +02:00
Edward Hervey
daa5b34d5f
gstgnomevfssink: Return the proper GstFlowReturn.
...
We were always returning GST_FLOW_OK previously even if we encountered errors.
2010-04-01 13:48:42 +02:00
David Schleef
681721466d
theoraenc: 0-length packets are delta units
2010-03-29 20:54:46 -07:00
Tim-Philipp Müller
e1f38a685b
build: build plugin and example directories in parallel if make -jN is used
...
We know our plugins and examples are independent of each other, so may
just as well build them in parallel. Makes the output a bit messy, but
that shouldn't be a problem and can easily be avoided with make -j1.
2010-03-29 00:26:59 +01:00
Sebastian Dröge
482dd1e56a
oggdemux: Provide packet duration function for old FLAC mapping too
...
Fixes bug #613809 .
2010-03-26 15:57:39 +01:00
Tim-Philipp Müller
197fe6d0d1
gio: add cast to avoid compiler warning with old GLib versions
...
g_file_input_stream_query_info() had char * instead of const char *
as attribute argument before 2.20.
Fixes #613387 , spotted by tetsuyayasuda@gmail.com
2010-03-20 13:42:32 +00:00
Wim Taymans
9c8c93806d
theoradec: add QoS messages to the decoder
...
Post QoS messages when we drop a frame because of QoS.
2010-03-19 15:37:04 +01:00
Tim-Philipp Müller
58a92964c6
build: Makefile.am fixes
...
Mostly just add missing $(GST_BASE_CFLAGS), but also fix up order
of flags (see docs/random/moving-plugins).
2010-03-19 01:00:36 +00:00
Benjamin Otte
1471df894a
Add -Wformat-nonliteral -Wformat-security
...
And fix the resulting compile failures.
I'm sorry about the patch necessary to gstclockoverlay.h but after
talking to Tim we decided we can live with it.
2010-03-17 12:09:25 +01:00
Benjamin Otte
420d7b111d
More ENABLE_NLS fixes
2010-03-16 18:31:15 +01:00
Benjamin Otte
3bd4aa26ff
Add -Wwrite-strings to configure
...
Fixes for the code included
2010-03-16 17:41:51 +01:00
Benjamin Otte
5e21fa5e0e
gst_element_class_set_details => gst_element_class_set_details_simple
...
Also change my email from the old university one to the current one.
2010-03-16 17:41:50 +01:00
David Schleef
ed438e5539
theoradec: add chroma-site to caps
2010-03-15 01:34:09 -07:00
David Schleef
085d7e20bd
theoradec: add color-matrix to caps
2010-03-14 19:10:16 -07:00
David Schleef
460c649b5f
oggdemux: Don't drop zero-sized packets
...
Zero-sized packets have relevence to Theora.
2010-03-14 13:15:13 -07:00
Benjamin Otte
3a7d632a59
Add -Wredundant-decls to warning flags
...
... and fix all the warnings that flag throws.
2010-03-11 15:38:18 +01:00
Benjamin Otte
43b1683421
Add -Wmissing-declarations -Wmissing-prototypes to warning flags
...
Includes all the fixes necessary to make stuff compile again.
2010-03-11 13:50:31 +01:00
Benjamin Otte
86a6b39b2c
gio: Remove unused function
2010-03-11 13:34:45 +01:00
Tim-Philipp Müller
3dd39392c2
vorbisparse: make sure header buffer metadata is writable before modifying it
...
Fixes unit test failures with core git.
2010-03-11 11:19:04 +00:00
Mark Nauwelaerts
708956e281
vorbisdec: remove unused field
2010-03-10 11:24:31 +01:00
David Schleef
1701c706ec
oggmux: Don't flush after every frame for theora
2010-03-09 15:40:18 -08:00
Benjamin Otte
1ad8d6ee03
theora: Fix SIGFPE when using 0/1 framerate
...
libtheora crashes with a 0 framerate, so let's forbid it.
https://bugzilla.redhat.com/show_bug.cgi?id=571289
2010-03-08 22:28:27 +01:00
David Schleef
38e6f0c7ed
oggdemux: fix dirac header parsing
...
Fixes #611900 .
2010-03-08 17:07:57 +00:00
Wim Taymans
1f601e12dc
alsasrc: return right number of bytes that we wrote
2010-03-08 11:25:01 +01:00
Wim Taymans
6eef04c1cb
oggstream: mark skeleton streams correctly
...
Mark skeleton streams because we need to ignore them for calculating the
duration of the stream.
Fixes #611227
2010-03-01 12:17:40 +01:00
Wim Taymans
63593f5f1e
oggdemux: use the chain begin_time instead of our counter
...
We update the passed begintime argument to narrow our search region in the
binary search. This means that it does not always contain the chain begin time
after a couple of bisects. Use the real chain->begin_time to bring the
granuletime to the time in the chain instead.
Fixes #610005
2010-02-23 12:26:15 +01:00
David Schleef
5685e0a4b7
theoradec: Fix chroma copying for 4:2:2
...
Fix mixup of height/width, causing only half the chroma lines to
be copied when outputting buffers. Fixes : #610329 .
2010-02-17 21:30:29 -08:00
Mark Nauwelaerts
8e5e2dbe49
ivorbisdec: set rank to SECONDARY
2010-02-15 12:12:15 +01:00
Mark Nauwelaerts
32dff24552
vorbisdec: also support ivorbis tremor decoder
...
... which only needs a bit of refactoring and extracting to support
the minor difference in (i)vorbis interface.
Fixes #609063 .
2010-02-15 12:11:35 +01:00
Mark Nauwelaerts
5e06eaa517
vorbisdec: reduce some hard-coding
...
... such as assuming float all over, and base src caps on template caps.
2010-02-15 12:10:41 +01:00
Sebastian Dröge
59dc89b3ee
oggparse: Fix another format string compiler warning
2010-02-15 09:04:17 +01:00
Sebastian Dröge
e9f101ffc5
oggdemux: Fix format string compiler warnings
2010-02-15 08:56:25 +01:00
Tim-Philipp Müller
466894d2f4
ogg: theora PAR of 0:N, N:0 or 0:0 is allowed and maps to 1:1
...
See #609252 .
2010-02-15 00:14:03 +00:00
Benjamin M. Schwartz
a09d9fdece
theoradec: PARs of 0:x, x:0 and 0:0 are all allowed and map to 1:1
...
Fixes #609252 .
2010-02-08 11:21:35 +01:00
Vincent Penquerc'h
6b8175d96a
oggdemux: use the default granpos functions for kate streams
...
Set timestamps on kate packets. See bug #600929 .
2010-02-07 10:16:28 +01:00
Sebastian Dröge
4914aeda2f
oggdemux: Don't leak allocated buffers
...
This can happen if the combined flow return is not OK although the
allocation succeeded or if the packet in question is a BOS and we're
not going to push headers.
Fixes bug #608699 .
2010-02-02 10:33:07 +01:00
Vincent Penquerc'h
ed2e09133e
oggdemux: sparse streams aren't timed by end time, and their duration isn't implicit
...
Fixes timestamps and durations on Kate subtitle streams.
See http://www.xiph.org/ogg/doc/ogg-multiplex.html section 'start-time and
end-time positioning' for some more details, and bug #600929 .
2010-01-25 23:50:09 +00:00
Vincent Penquerc'h
25873a050f
oggdemux: properly set up the media type for kate streams
...
See #600929 .
2010-01-25 23:49:53 +00:00
Wim Taymans
e4b68a3658
oggdemux: use right type for the serialno
...
Use a consistent type for the serialno to avoid problems when comparing between
signed and unsigned variants.
Fixes #607926
2010-01-25 15:14:56 +01:00
Wim Taymans
95511c8821
oggdemux: don't push headers twice
...
Don't push the stream headers twice but only in the activation of a chain.
Fixes #607929
2010-01-25 14:00:52 +01:00
Wim Taymans
62f8c3c672
oggdemux: rename a variable
...
Rename the 'seekable' variable to 'pullmode'. We might be able to seek in push
mode too eventually.
2010-01-25 12:31:24 +01:00
Tim-Philipp Müller
e1c319949d
oggdemux: fix crash when freeing headers
...
Use _ogg_packet_free() instead of gst_mini_object_unref in one more
place now that the header list contains ogg packets and not buffers.
file: Stephen_Fry-Happy_Birthday_GNU-nq_600px_425kbit.ogv
2010-01-24 13:32:20 +00:00
Sebastian Dröge
1652005f26
oggdemux: Strip trailing \0 for subtitle OGM streams
...
Fixes bug #607870 .
2010-01-24 08:57:13 +01:00
Sebastian Dröge
a66ce94adc
oggdemux: Correctly set DELTA_UNIT flag for OGM streams
2010-01-23 22:10:09 +01:00
Sebastian Dröge
b38dcf5277
oggdemux: Don't strip all 0-bytes from the end of OGM packets
...
This fixes broken packets pushed downstream by oggdemux for
MPEG4 streams for example.
2010-01-23 22:10:09 +01:00
Sebastian Dröge
592bc87dc9
oggdemux: Extract tags from OGM text streams and don't push them downstream
2010-01-23 22:10:08 +01:00
Sebastian Dröge
541da50c53
oggdemux: Store header/queued packets as ogg_packet and use normal peer chaining functions to pass them downstream
2010-01-23 22:10:08 +01:00
Sebastian Dröge
d78cffb2e8
oggdemux: ...and set caps on queued packet buffers too
2010-01-23 13:20:46 +01:00
Sebastian Dröge
b63a582bf9
oggdemux: Set caps on header buffers
2010-01-23 13:19:44 +01:00
Wim Taymans
4b9666aedb
oggdemux: keep track of added pads
...
Keep track of the pads we added and removed.
Remove some unused fields.
Don't add pads for which we don't have caps.
2010-01-21 17:39:52 +01:00
Wim Taymans
06e2d2791b
oggstream: don't call NULL setup functions
...
If we find a known mapper but it doesn't have a setup function, simply skip it
instead of crashing.
2010-01-21 17:39:51 +01:00
Wim Taymans
4ed58b5882
oggstream: avoid division by 0 on bad annodex streams
2010-01-21 17:39:51 +01:00
Thiago Santos
4b771bff7a
oggdemux: No need to subtract begin time
...
Last stop is already based on the chain start and there is no need
to subtract the chain start as it may lead to a negative overflow.
This was causing seeking issues when the target chain was not
the first one (that has chain start = 0)
Fixes #606382
2010-01-19 08:39:14 -03:00
Thiago Santos
125f7dfdb0
oggdemux: granulepos is relative to its chain
...
When performing seeks, the granulepos should be offset by
its chain start time to avoid using wrong values to
update segment's last_stop. A sample file is indicated on
bug #606382
2010-01-18 15:39:55 -03:00
Sebastian Dröge
82f3adaa9b
theora: Rename source files to have the same name as the headers
2010-01-14 10:10:23 +01:00
Sebastian Dröge
1de4169c1c
vorbis: Rename source files to have the same name as the headers
2010-01-14 10:07:22 +01:00
Sebastian Dröge
d4e9225ed4
vorbis: Move channel layout definitions into a single separate file
...
...instead of having two copies.
2010-01-14 10:05:35 +01:00
Sebastian Dröge
68c6ddc2fc
vorbis: Add official 6.1 and 7.1 channel mappings
...
These are in the Vorbis spec since 2010-01-13. Fixes bug #606926 .
2010-01-14 08:20:38 +01:00
Edward Hervey
7d2c90423a
oggdemux: Fix unitialized variable.
...
If the package isn't handled, gracefully return GST_FLOW_OK.
2010-01-12 16:35:50 +01:00
Wim Taymans
0201326db1
oggdemux: push headers when activating chains
...
Keep a list of headers for each stream of a chain. When a chain is activated,
push the headers before pushing the data so that decoders can sync.
Fix seeking in chains, take the chain start time into account when comparing
timestamps.
See #606382
2010-01-08 16:57:40 +01:00
Mark Nauwelaerts
3f4820d6c2
oggdemux: decide flac header packet by content rather than count
2010-01-06 14:03:44 +01:00
Mark Nauwelaerts
66545eb7a2
oggdemux: reset header packet count at bos page
2010-01-06 14:03:41 +01:00
Olivier Crête
15fb8f9bf7
textoverlay: Ignore zero framerate
...
https://bugzilla.gnome.org/show_bug.cgi?id=606163
2010-01-06 07:49:27 +01:00
Mark Nauwelaerts
8fb183c7c9
oggdemux: enhance flac packet duration calculation
2010-01-05 16:44:58 +01:00
David Schleef
b3c15a340a
theoraenc: Add encoder controls for libtheora 1.1
...
Added drop-frames, cap-overflow, cap-underflow, and rate-buffer.
2009-12-20 17:34:46 -08:00
Wim Taymans
e897373a0a
ogg: ogm video has constant packet duration
2009-12-11 12:20:13 +01:00
David Schleef
118b62a764
oggdemux: implement old fLaC mapping
2009-12-10 22:48:23 -08:00
Wim Taymans
d18118418e
oggdemux: remove redundant fields
2009-12-10 16:09:09 +01:00
Wim Taymans
43bdb13ec2
vorbisdec: adapt to new oggdemux
...
Remove all granulepos hacks and simply use the timestamps from the new oggdemux
like any other decoder.
2009-12-10 13:22:00 +01:00
Wim Taymans
79b25e634c
vorbisdec: fix peer query
2009-12-09 19:04:18 +01:00
Wim Taymans
1a7c8c7919
theoradec: fix query
2009-12-09 17:24:01 +01:00
Wim Taymans
f1fdf5d3e4
theoradec: small cleanups
2009-12-09 16:55:52 +01:00
Wim Taymans
08c16c0db7
vorbisdec: use gst_pad_peer_query()
2009-12-09 16:38:43 +01:00
Sebastian Dröge
01ca87e785
textoverlay: Only flush downstream on seeks for flushing seeks
2009-12-09 09:47:30 +01:00
Sebastian Dröge
d5205bb0fa
textoverlay: Proxy buffer allocation on the video sinkpad to the srcpad
2009-12-09 09:36:26 +01:00
Wim Taymans
1818d795ee
theora: remove granulepos hacks
...
Remove the granulepos hacking now that oggdemux outputs timestamps like any
other demuxer.
2009-12-08 17:37:56 +01:00
Wim Taymans
1ad0e4342e
oggdemux: improve keyframe seeking
...
Improve keyframe seeking.
Fix reverse playback.
2009-12-07 18:49:43 +01:00
Wim Taymans
c53cd385e3
oggdemux: implement keyframe seeking
...
Implement keyframe seeking in oggdemux by doing the double seek trick. First
seek to the required position, then read pages for all streams to grab the
granulepos (to know the timing of the keyframe) of each stream, then seek back
to the first keyframe.
2009-12-07 15:42:05 +01:00
Wim Taymans
56d3856620
oggdemux: fix timestamps after seek
...
After a seek, discard all packets before the packet with the granulepos on it so
that the output buffers contain valid timestamps.
Reorder some code so that we check the timestamps before allocating and pushing
an output buffer.
Do more checks on valid packets in ogm mode.
2009-12-04 16:35:09 +01:00
Wim Taymans
eb4fc976e5
oggdemux: add comment
2009-12-04 15:39:59 +01:00
Wim Taymans
9e222a385c
oggdemux: don't do math with invalid granulepos
...
When the current granulepos is unknown and set to -1, don't try to add durations
to it.
2009-12-04 14:01:11 +01:00
Wim Taymans
96e1c4dbe6
oggdemux: guard against wrong granulepos
...
Clamp the initial granulepos to 0 instead of going negative for some badly muxed
ogg files.
2009-12-04 13:14:57 +01:00
Wim Taymans
05f4605180
theoradec: don't fail on bogus granulepos
...
Do some additional checks on the granulpos timestamp before using it for
calculating the duration because oggdemux generates wrong granulepos now.
Fixes seeking somewhat again.
2009-12-04 12:26:47 +01:00
David Schleef
8bbe0d126a
oggdemux: reimplement OGM support
...
OGM demuxing no longer requires helper elements. It's done internally
in oggdemux. Vorbis comments are still not handled because I don't
have anything to test with.
2009-12-03 20:05:29 -08:00
David Schleef
4378851102
oggdemux: fix for I-frame-only theora
2009-12-03 17:02:11 -08:00
Tim-Philipp Müller
fb07615baa
ogg: log when ogg mapper doesn't accept the setup header packet
2009-12-03 23:43:29 +00:00
Tim-Philipp Müller
8195c26a08
ogg: extract width, height and PAR from theora header and add to caps
2009-12-03 23:43:29 +00:00
Tim-Philipp Müller
295b6c0326
ogg: extract number of channels from FLAC, speex and vorbis headers
...
Because we can.
2009-12-03 23:43:09 +00:00
Tim-Philipp Müller
2752ae841e
ogg: more print fixes
...
gstoggstream.c:419: error: format ‘%lld’ expects type ‘long long int’, but argument 8 has type ‘gint64’
gstoggdemux.c:2253: error: format ‘%lld’ expects type ‘long long int’, but argument 8 has type ‘GstClockTime’
gstoggdemux.c:2333: error: format ‘%lld’ expects type ‘long long int’, but argument 8 has type ‘GstClockTime’
2009-12-03 21:08:42 +00:00
Thiago Santos
098e416ebc
ogg: Fixing some printf format strings
...
Fixes some printf format strings to make it build on mac.
2009-12-03 16:57:48 -03:00
David Schleef
d2c9d7fc1c
oggdemux: handle theora streams with 0 keyoffset
2009-11-26 14:16:28 -08:00
David Schleef
a8e99f80df
oggdemux: Handle unknown streams
2009-11-26 14:16:28 -08:00
Sebastian Dröge
8393257732
Revert "textoverlay: First draw outline text and then the real text"
...
This reverts commit 60aa09d28c
.
First drawing the real text and then the outline produces ugly
text in lower resolutions. The outline line width needs to be somehow
changed relative to the resolution. Fixes bug #602924 .
2009-11-26 14:31:55 +01:00
David Schleef
9339cec787
oggdemux: Reset last_granule during seeking
...
Fix case where we would reconstruct the wrong granulepos for
outgoing streams immediately after a seek.
2009-11-25 00:46:55 -08:00
David Schleef
8c202593c6
oggdemux: Fix timestamp generation for theora
...
Timestamp generation was broken by the last commit for formats
with a non-zero granule shift. Also keep track of the last keyframe
so that we can regenerate granulepos for theora.
2009-11-24 22:08:09 -08:00
David Schleef
78aad52cbf
oggdemux: Fix vorbis parsing
...
Add a granule to granulepos conversion function. Fix the duration
function for vorbis. Handle timestamps on header packets differently
and be more careful about calculating OFFSET and OFFSET_END. After
this change, timestamps for vorbis don't exactly match up with the
timestamps that vorbisparse outputs, but it's unclear if vorbisparse
is actually correct and it would add a lot more code to make oggdemux
match vorbisparse. Fixes #602790 .
2009-11-24 21:22:03 -08:00
David Schleef
ab0d802781
ogg: Fix generation of timestamps and durations
...
After changing some internal functions, I forgot to update
the code that puts the values on the buffers.
2009-11-21 22:05:34 +01:00
David Schleef
72edd1467b
ogg: Add ogg stream parsing
...
Adds code that parses headers of various formats encapsulated in
Ogg in order to calculate timestamps and durations of each buffer.
Removes the creation of helper decoder elements to do this calculation
via conversion queries.
Fixes : #344013 , #568014 .
2009-11-21 19:40:42 +01:00
David Schleef
3019ebb107
oggmux: don't overwrite object properties
2009-11-21 19:40:42 +01:00
Stefan Kost
f8abb8cf15
debug: also cast packet.packetno to gint64 in debug log
...
We do this already for granulepos to handle ogg_int64_t mismatches.
2009-11-21 17:54:49 +02:00
Olivier Crête
05aa195981
theoradec: Keep timestamp from incoming buffer if it is valid
...
Fixes bug #601627 .
2009-11-12 13:18:02 +01:00
David Schleef
dcf556893f
theora: Fix alignment of frames when converting
...
Fix logic inversion in calculating the offset in the theora
frame when copying to a GStreamer frame.
2009-11-09 11:18:27 -08:00
Sebastian Dröge
45cefdefa6
textoverlay: Synchronize video/text based on the running time
...
Instead of simply using the buffer timestamps.
2009-11-06 12:11:21 +01:00
Sebastian Dröge
8ed8d5e414
textoverlay: Clip text buffers to the text segment and reset segments properly
2009-11-06 12:11:21 +01:00
Sebastian Dröge
d941a9f6a6
textoverlay: Put the video segment into the instance struct instead of allocating it separately
2009-11-06 12:11:20 +01:00
Sebastian Dröge
8692174b50
textoverlay: Check if text timestamp/duration is valid before clipping
2009-11-06 12:11:20 +01:00
Tim-Philipp Müller
34e6718da9
theoradec: printf format fix
2009-11-05 23:34:10 +00:00
Sebastian Dröge
60aa09d28c
textoverlay: First draw outline text and then the real text
...
Improves the output a bit because no parts of the outline are
overwritten again.
2009-11-03 08:26:37 +01:00
Tim-Philipp Müller
6f4c1ac583
Remove GST_DEBUG_FUNCPTR where they're pointless
...
There's not much point in using GST_DEBUG_FUNCPTR with GObject
virtual functions such as get_property, set_propery, finalize and
dispose, since they'll never be used by anyone anyway. Saves a
few bytes and possibly a sixteenth of a polar bear.
2009-10-28 00:59:35 +00:00
David Schleef
61d08884d3
theora: Convert theoraparse to libtheora 1.0 API
2009-10-23 17:49:48 -07:00
Sebastian Dröge
eb9acba08f
textoverlay: Optimize a bit more
...
...and add a FIXME for bug #598695 and explain
what we should do once Pango supports user fonts.
2009-10-22 10:17:31 +02:00
Sebastian Dröge
21ad7547a0
textoverlay: Do shading as first operation
2009-10-22 09:31:34 +02:00
Sebastian Dröge
eccd28d7b0
textoverlay: Only use a single cairo surface for drawing
...
... and comment/optimize what is going on here a bit better.
2009-10-22 09:08:48 +02:00
Tim-Philipp Müller
550b6fa0c1
pango: bump pango requirement to stable version and remove ifdefs
...
Bump pango requirement from an ancient development version to an
ancient stable version.
2009-10-18 13:42:01 +01:00
Benjamin Otte
f9132ee673
theora: Make theoradec use gstvideo for image conversion
...
Vastly simplifies code.
https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:12:25 +02:00
Benjamin Otte
a3e92d3078
theora: Don't always round to even width/height
...
Previously, the code always rounded to even sizes. Now it only ensures
that pic_x and pic_y are multiples of 2 if the output format requires
it.
Also inlcudes fixes to take pic_x/y into account properly when copying
the buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:12:25 +02:00
David Schleef
3cb9484993
theora: Convert theoradec to libtheora 1.0 API
...
https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:12:18 +02:00
Benjamin Otte
7e15bb6631
theora: Port encoder to new Theora API
...
Includes ripping out the old buffer copy code to fill up to frame size.
This is not necesary with the new encoder.
https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:08:16 +02:00
Benjamin Otte
910f67e816
theora: Disable sharpness property
...
It's ignored by libtheora
https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:08:16 +02:00
Benjamin Otte
fed37612f6
theora: Disable noise-sensitivity property
...
It is ignored by libtheora
https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:08:16 +02:00
Benjamin Otte
fad889e39e
theora: Disable keyframe-mindistance property
...
It's ignored by the current Theora library
https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:08:15 +02:00
Benjamin Otte
8b4923cba0
theora: Disable keyframe_threshold property
...
It's ignored by the current theora encoder
https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:08:15 +02:00
Benjamin Otte
581d57724e
theora: Get rid of "quick" property
...
The proeprty is not used by libtheora at all
https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:08:15 +02:00
Benjamin Otte
4159cdfe9c
theora: remove support for outdated granulepos hack
...
This is in preparation to switching to switching to the new Theora API
https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:06:31 +02:00
Benjamin Otte
56203876e4
theora: Ignore border property
...
Always make the video use black as padding color.
The output will be identical to previous versions.
https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:06:31 +02:00
Benjamin Otte
cec6b6ce29
theora: Ignore the center property, always set video to top left
...
This is not a necessary property, the output will be identical no matter
what.
https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:06:31 +02:00
Wim Taymans
e6e552b16f
theoradec: avoid confusing error
2009-10-12 15:47:28 +02:00
Josep Torra
ade53fb42f
vorbis: fixes warings in macosx snow leopard
2009-10-09 22:00:45 +02:00
Josep Torra
13ab7e7929
theora: fixes warnings on macosx snow leopard
2009-10-09 18:52:12 +02:00
Josep Torra
26fcc7843a
ogg: fixes warnings on macosx snow leopard
2009-10-09 16:57:14 +02:00
Josep Torra
8579028dc0
oggdemux: fix a warning in macosx
2009-10-09 16:57:13 +02:00
Josep Torra
a34c29b524
audioconvert: change the format instead of cast as ensonic asked
2009-10-09 15:32:45 +02:00
Josep Torra
c272d8d9fb
gnomevfssrc: fixes warnings in macosx
...
warning: format '%llu' expects type 'long long unsigned int', but argument 8 has type 'GnomeVFSFileOffset'
warning: format '%lld' expects type 'long long int', but argument 9 has type 'guint64'
2009-10-09 14:28:42 +02:00
Edward Hervey
2021791b75
theoraenc: Make the default quality property 48.
...
This guarantees that people who use theoraenc without modifying any
properties will end up with a reasonably good quality output.
48 is also the default of the encoder_example application shipped with
libtheora.
2009-10-07 16:56:28 +02:00
Stefan Kost
ccf5d6551a
build: sprintf, sscanf need stdio.h
2009-10-07 11:56:35 +03:00
Sebastian Dröge
7c6c74e4a3
pango: Unpremultiply Cairo's ARGB to match GStreamers ARGB
2009-10-01 11:41:16 +02:00
David Schleef
f126617dbd
oggdemux: Fix duration calculation for truncated files
...
If the last page of a stream has a granulepos of -1, that is,
it doesn't complete a packet, we need to continue to search
for the last granulepos.
2009-09-13 10:58:12 -07:00
Jan Schmidt
39c21352e9
theoraenc: Fix a string leak in _getcaps()
2009-09-12 02:24:49 +01:00
Sebastian Dröge
ce51263142
oggdemux: Handle kate and cmml as sparse streams too
2009-09-10 10:16:56 +02:00
Tim-Philipp Müller
3a38a0958e
oggdemux: Better handling of sparse streams by sending segment updates
...
Fixes bug #397419 .
2009-09-10 10:16:56 +02:00
Sebastian Dröge
2aa0899a84
theoraenc: Print a debug message with supported formats
2009-09-09 16:45:55 +02:00
Benjamin Otte
d9c9852764
theora: Check supported input formats in getcaps function
...
We want to fail early when an older libtheora release is used that does
not support Y444 or Y42B formats, so use a getcaps function that does
this.
2009-09-09 16:45:55 +02:00
Benjamin Otte
aa46e56170
theora: Implement support in theoraenc for Y444 and Y42B
...
Fixes bug #594165 .
2009-09-09 16:45:54 +02:00
Benjamin Otte
96388221cf
theora: Refactor the buffer copy code
2009-09-09 16:45:54 +02:00
Benjamin Otte
bac05fbf6f
theora: Split yuv_buffer creation into its own function
2009-09-09 16:45:54 +02:00
Benjamin Otte
c1ead16f71
theora: Split out buffer resize in its own function
2009-09-09 16:45:54 +02:00
Benjamin Otte
9d4f72f2fa
theora: Add assertions that functions don't fail
...
Some functions in libtheora can return an error, but that error cannot
ever happen inside theoraenc. In those cases assert that it doesn't.
2009-09-09 16:45:53 +02:00
David Schleef
0e9bc5125a
Remove Ronald Bultje from Authors field
...
Replaced with "GStreamer maintainers
<gstreamer-devel@lists.sourceforge.net>" or just removed,
depending on the number of other authors.
2009-08-24 11:37:01 -07:00
Tim-Philipp Müller
099989ff0f
oggmux: don't drop the streamheader field from the output caps
...
Revert previous 'fix' for bug #588717 and fix it properly, whilst
maintaining the streamheader field on the output caps. Also make
sure we don't leak header buffers we couldn't push when downstream
is unlinked. Add unit test for the presence of the streamheader
field on the output caps and for the issue from bug #588717 .
2009-08-20 13:14:19 +01:00
Edward Hervey
76044dce6d
ext: Remove dead assignments and resulting unused variables.
2009-08-08 15:54:41 +02:00
Tim-Philipp Müller
6a5af299b0
Revert "theora: Convert theoradec to libtheora 1.0 API"
...
This reverts commit f1e142ac9d
.
Temporarily revert until we have a workaround for debian/ubuntu
packaging failure (see http://bugs.debian.org/528710 ).
2009-08-07 08:53:44 +01:00
Tim-Philipp Müller
16cad126f0
oggmux: fix warning when we're not linked downstream and error out properly
...
Fix caps warning when there's no element linked downstream, and pass
not-linked flow return value correctly up the chain, so we error out
correctly. Fixes #588717 .
2009-08-07 00:58:36 +01:00
David Schleef
f1e142ac9d
theora: Convert theoradec to libtheora 1.0 API
2009-08-06 13:45:56 -07:00
Sebastian Dröge
6776cb445e
textrender: Fix blitting of text over the output buffer and cairo painting
2009-08-06 20:47:33 +02:00
Sebastian Dröge
cc61c9e27e
textrender: Fix endianness problems (i.e. make it work again on big endian architectures)
2009-08-06 14:55:07 +02:00
Wim Taymans
caf3d8d480
textoverlay: make buffer writable
...
Make the input buffer writable before changing its contents.
2009-08-06 12:01:10 +02:00
Sebastian Dröge
8212924489
pango: Send queries from the srcpad directly to the video sinkpad
2009-08-06 06:43:39 +02:00
Sebastian Dröge
8c874a7ff3
pango: Add support for xRGB and BGRx formats
2009-08-06 06:43:38 +02:00
Sebastian Dröge
67954aeba3
pango: Fix endianness issues from the pangocairo switch
...
cairo's ARGB is in native endianness, i.e. ARGB on big endian architectures
and BGRA on little endian architectures.
2009-08-06 06:43:37 +02:00
Sebastian Dröge
18a5264c87
pango: Re-add shading support which was dropped by a previous patch
2009-08-06 06:43:37 +02:00
Sebastian Dröge
20b84cda60
pango: Check if pangocairo supports vertical rendering and fix properties
2009-08-06 06:43:37 +02:00
Sebastian Dröge
d3baacc32a
textrender: Use PROP_X instead of ARG_X consistently
2009-08-06 06:43:37 +02:00
Sebastian Dröge
8aa87c9153
pango: Some minor cleanup
2009-08-06 06:43:36 +02:00
Young-Ho Cha
7608c31516
pango: Use pango-cairo instead of pango-ft2
...
pango-cairo will always use the native font rendering backend
of the platform and provides better results.
Fixes bug #340887 .
2009-08-06 06:43:36 +02:00
Balachandran C
01e0fdd86c
alsasrc: set alsasrc->handle back to NULL when closing device
...
Fixes crashes in gst_alsa_find_device_name() when probing or
reading the device-name property (e.g. when doing a dot-file
dump). Fixes #589797 .
2009-07-27 14:18:27 +01:00
Edward Hervey
47d40c2553
vorbisdec: Check for empty tag strings. Fixes #588724
2009-07-16 14:15:19 +02:00
Vincent Penquerc'h
0a5d5206f3
oggmux: add Kate caps to the list of accepted types
...
See #525743 .
2009-07-13 22:59:11 +01:00
Sebastian Dröge
f9494bc38b
gio: Also post a "not-mounted" message from giosink
2009-07-10 19:16:35 +02:00
Sebastian Dröge
d5154874cb
gio: Add documentation for the new "not-mounted" and "file-exists" messages
2009-07-10 11:24:05 +02:00
Sebastian Dröge
b9c79380aa
gio: Make sure that we have the correct stream position when starting
2009-07-09 13:45:13 +02:00
Sebastian Dröge
f93b9df83d
gio: Make sure to flush the output stream if it shouldn't be closed
...
Otherwise there might still be unwritten data after the element
has stopped.
2009-07-08 17:24:19 +02:00
Sebastian Dröge
1c0123cf58
gio: Don't close the GIO streams for the giostream{src,sink} elements
...
This makes it possible to do something useful with the streams
after the element has stopped. Fixes bug #587896 .
2009-07-08 17:19:29 +02:00
Sebastian Dröge
3116198fc3
gio: Improve the error message if a stream is already closed before usage
2009-07-08 17:02:54 +02:00
Sebastian Dröge
6025412707
gio: Post a custom file-exists message on the bus if the file already exists
...
An application can handle this message, remove the file in question
and restart the pipeline again without showing an error.
This fixes bug #529300 .
2009-07-08 16:55:41 +02:00
Sebastian Dröge
7228ba6acd
gio: Use OPEN_READ instead of NOT_FOUND if a location is not mounted
2009-07-08 16:54:56 +02:00
Sebastian Dröge
a8896413a0
gio: Use OPEN_WRITE instead of OPEN_READ as error category in giosink
2009-07-08 16:50:56 +02:00
Sebastian Dröge
ce08823dc5
gio: Post a custom "not-mounted" message on the bus
...
This allows applications to mount the GFile if possible and restart
the pipeline instead of simply giving an error.
2009-07-08 15:52:35 +02:00
Sebastian Dröge
7e72ceb3f2
gio: Add vfunc for requesting the stream for the sinks too
2009-07-07 20:23:23 +02:00
Sebastian Dröge
7483a4834c
gio: Some more random cleanup
2009-07-07 20:21:36 +02:00
Sebastian Dröge
b81f957bfc
gio: Update my mail address and copyright
2009-07-07 20:20:58 +02:00
Sebastian Dröge
160b70e841
gio: General clean up and simplification
...
The GInputStreams are now requested by a vfunc from
the subclasses instead of relying that the subclass
sets it until it's needed.
This might also fix bug #587896 .
2009-07-07 20:18:00 +02:00
Hans-Peter Nilsson
04e23f2d6a
pango: Call tzset() before localtime_r()
...
POSIX and your local friendly ctime(3) manual entry says that localtime_r isn't
required to set the state variables that define the current timezone. Indeed,
glibc (at least 2.9) doesn't do this for subsequent calls. The effect is that
if the system timezone is changed for a running program between two calls to
gst_clock_overlay_render_time, it won't be noticed. For glibc, changing the
timezone equals /etc/localtime being modified.
Fixes bug #587676 .
2009-07-05 18:01:38 +02:00
David Schleef
8937c89551
build: remove spurious schroedinger reference
2009-07-01 17:33:14 -07:00
David Schleef
530cb7268b
basevideo: send basevideo back to remedial school
...
Move basevideo classes and schroedinger plugin to -bad.
2009-07-01 10:27:30 -07:00
Tim-Philipp Müller
b20b375180
cdparanoia: run-time license is LGPL now that we require cdparanoia 0.10.2
...
cdparanoia has an LGPL v2.1 license since 0.10.1 and we now require 0.10.2.
Finally fixes #531035 .
2009-06-19 22:21:03 +01:00
Tim-Philipp Müller
4e1086f93b
cdparanoia: try to guess a good cache size if it's set to -1
...
Try to guess from the paranoia-mode setting whether playback or
ripping is wanted, and use a smaller cache size if we're likely
to be doing playback, to avoid a long startup delay. Since this
was the value used in older cdparanoia versions, it should be
fine in any case. See #586331 .
2009-06-19 22:21:03 +01:00
Jonathan Matthew
9daee1f4a9
cdparanoia: expose cache size setting
...
This setting was added in cdparanoia 10.2. The default value is good
for audio extraction, but lower values (previous versions of cdparanoia
used 150) are better for realtime playback.
Fixes #586331 .
2009-06-19 22:21:03 +01:00
Tim-Philipp Müller
12134979a2
oggdemux: post/send tags with the container-format tag
...
For this to work properly, theoradec and vorbisdec need to put
tag events received from upstream into the pending_events list
so they get pushed out after any newsegment event, not before.
2009-06-14 22:13:41 +01:00
Wim Taymans
acdb88ec6f
oggdemux: do reverse seeks more accurate
...
For reverse seeking with the accurate flag set, try to be more precise by
seeking a little bit after the requested position.
2009-06-12 13:44:26 +02:00
Tim-Philipp Müller
9ca2bf36de
subparse, ogmparse: post tags with GST_TAG_SUBTITLE_CODEC
...
Make subtitle parsers post a taglist with codec tags, so the application
knows what kind of subtitle a subtitle stream is. Fixes #576552 .
2009-06-11 22:32:28 +01:00
LRN
30103e736d
Added libgstbase to schro's LIBADD
...
Fixes #585079
2009-06-07 22:01:50 +02:00
Tim-Philipp Müller
20fb58be19
vorbisdec: don't put invalid bitrate values into the taglist
...
Bitrates are stored as 32-bit signed integers in the vorbis
identification headers, but seem to be read incorrectly,
namely as unsigned 32-bit integers, into the vorbis structure
members which are of type long, which makes our check for
values <= 0 fail with files that put -1 in there for unset
values.
2009-06-03 20:42:39 +01:00
Alessandro Decina
bb1561644f
theoraparse: fix assertions in make_granulepos when using the new theora granulepos mapping. Fixes #583903 .
2009-05-26 23:32:48 +02:00
Wim Taymans
f0bb7874a7
oggdemux: fix boundary case for seeking.
...
When we have exactly 0 bytes left to search, make sure we stop instead of going
into an infinite loop.
2009-05-26 13:14:07 +02:00
David Schleef
27cb39b028
schro: Fix usage of adapter_masked_scan_uint32
...
Because *somebody* changed the API without telling me.
2009-05-22 21:27:58 -07:00
David Schleef
62002aead9
schro: Change package name to GST_PACKAGE_NAME
2009-05-22 21:25:06 -07:00
Wim Taymans
d1c73bd00f
vorbisdec: detect and report errors better
...
Check the return values of a couple more libvorbis functions and post an error
when something is wrong instead of continuing and crashing.
2009-05-22 17:41:50 +02:00
Wim Taymans
ed36eafaba
oggdemux: don't loop when at EOS
...
When we try to read the last page, don't try to read past the upper boundary, as
this might cause endless loops.
See #582942
2009-05-19 12:45:59 +02:00
Michael Smith
94ca1b005e
theoradec: for 4:2:2, use Y42B (planar) rather than a packed format.
2009-05-18 22:34:22 -07:00
David Schleef
0f1c5c1b68
schro: Move schro plugin from Schroedinger
...
Previous history is in Schroedinger. Depends on, and is an example
of using, GstBaseVideo* base classes.
Code was reindented, and an #ifdef HAVE_ENCODER removed.
2009-05-15 16:18:59 -07:00
Sebastian Dröge
c3b28a9bff
vorbisenc: Implement Preset interface
2009-05-15 16:27:41 +02:00
Sebastian Dröge
bcd0aee3f5
theoraenc: Implement Preset interface
2009-05-15 16:27:40 +02:00
Sebastian Dröge
2ea16837e7
oggmux: Implement Preset interface
2009-05-15 16:27:40 +02:00
Wim Taymans
117686abc5
visual: remove next_ts variable
...
We can remove the next_ts variable as we don't use it anymore.
2009-05-13 19:27:54 +02:00
Wim Taymans
6eb549ab92
visual: use new adapter timestamp code
...
Use the new adapter timestamp tracking code to make things easier and produce
vastly better output timestamps.
2009-05-13 19:24:15 +02:00
Christian Schaller
705e7750c5
Add ranks to the Oggmuxer, Vorbis encoder and Theora encoder
2009-05-12 12:17:55 +01:00
Wim Taymans
6cee823237
oggmux: small debug statement in DISCONT
2009-05-12 10:46:35 +02:00
Wim Taymans
7e43c10754
oggdemux: fix abuse of ogg API, handle broken oggs
...
When we feed the ogg sync layer, we need to feed it contiguous data even if the
sync layer did not consume all of it yet. This makes sure that it always finds
the next page even for more corrupted files. Use a different read_offset for
this purpose. since we now keep track of the sync layer, we don't have to reset
after finding a start of a page.
Add some more debug info for the error paths.
Only reset the sync layer when we perform a seek operation.
Avoid failure when the next chain has no bos pages but instead simply ignore it.
when we receive unknown page serial numbers mid stream, don't fail but post a
warning and hope that we get back on track later.
Fixes #579642
2009-05-12 10:44:17 +02:00
Sebastian Dröge
1d4ba53259
textrender: Correctly initialize the background for ARGB too
2009-05-12 09:03:24 +02:00
Sebastian Dröge
204c327b23
textrender: Use libgstvideo functions to create caps
...
Also check if downstream wants ARGB always when we get
new caps.
2009-05-12 09:03:23 +02:00
Sebastian Dröge
4f5502a896
textrender: Don't always use ARGB if downstream supports it but take it's preference
2009-05-12 09:03:23 +02:00
Kapil Agrawal
2ddf7c8e13
textrender: Add support for ARGB and alignment properties
...
Fixes bug #581571 .
2009-05-12 09:03:23 +02:00
Sebastian Dröge
ce95857718
textrender: Add ; after GST_BOILERPLATE to fix indention
2009-05-12 09:03:23 +02:00
Michael Smith
21c52af2b3
theoradec: fix buffer overrun on 422 decode.
2009-05-10 18:08:13 -07:00
Michael Smith
c94a36bff4
theoradec: 444 support.
2009-05-10 18:08:13 -07:00
Michael Smith
62b571b93b
theoradec: handle 422 images (as YUY2).
2009-05-10 18:08:13 -07:00
Michael Smith
a91b7f0857
theoradec: rearrange code in preparation for 422 and 444 support.
2009-05-10 18:08:12 -07:00
Zaheer Merali
1650272b84
vorbisenc, theoraenc: Ensure gp is computed consistently + clip to segment
...
With vorbisenc, compute the granulepos with running time and clip incoming
buffers to segment.
With theoraenc, drop out of segment buffers.
2009-05-06 13:19:34 +01:00
Jan Schmidt
d14c80b22e
vorbisenc: Ensure output buffers fall within the segment
...
Add the start position of the first segment to the running time
used to generate buffer timestamps in vorbisenc. This avoids generating
buffers which fall outside the initial segment. The element segment
handling requires more extensive fixing, but this at least prevents
regressions. Fixes : #580020
2009-04-29 16:48:45 +01:00