Commit graph

2703 commits

Author SHA1 Message Date
Wim Taymans
308f6301a8 update for pad probe api changes 2011-11-08 11:08:21 +01:00
Stefan Sauer
e9629e37b7 video: log important details and fix format strings
If we complain about wrong parameters passed, also log the actual value.
2011-11-08 09:32:00 +01:00
Tim-Philipp Müller
d7fc45f42e docs: fix up some Since: markers 2011-11-07 23:05:44 +00:00
Wim Taymans
616e9b706e fix for new pad probe types
Restore the previous behaviour by only blocking downstream items and not
upstream events.
2011-11-07 17:10:48 +01:00
Wim Taymans
7ac25e9b26 Merge branch 'master' into 0.11
Conflicts:
	common
	configure.ac
	gst-libs/gst/audio/gstbaseaudiosink.c
	gst/playback/gstdecodebin2.c
	gst/playback/gstplaysinkaudioconvert.c
	gst/playback/gstplaysinkaudioconvert.h
	gst/playback/gstplaysinkvideoconvert.c
	gst/playback/gstplaysinkvideoconvert.h
2011-11-07 12:23:15 +01:00
Felipe Contreras
3df415d4c7 baseaudiosink: make discont-wait configurable
Now we can configure how much time to wait before deciding that a
discont has happened.

Also, adds getter and setter to allow derived implementations to set
this value upon construction.

Suggestions and several improvements by Havard Graff.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2011-11-07 11:58:46 +01:00
Felipe Contreras
0a111bf26e baseaudiosink: delay the resyncing of timestamp vs ringbuffertime
A common problem for audio-playback is that the timestamps might not
be completely linear. This is specially common when doing streaming over
a network, where you can have jittery and/or bursty packettransmission,
which again will often be reflected on the buffertimestamps.

Now, the current implementation have a threshold that says how far the
buffertimestamp is allowed o drift from the ideal aligned time in the
ringbuffer. This was an instant reaction, and ment that if one buffer
arrived with a timestamp that would breach the drift-tolerance, a resync
would take place, and the result would be an audible gap for the
listener.

The annoying thing would be that in the case of a "timestamp-outlier",
you would first resync one way, say +100ms, and then, if the next
timestamp was "back on track", you would end up resyncing the other way
(-100ms) So in fact, when you had only one buffer with slightly off
timestamping, you would end up with *two* audible gaps. This is the
problem this patch addresses.

The way to "fix" this problem with the previous implementation, would
have been to increase the "drift-tolerance" to a value that was greater
than the largest timestamp-outlier one would normally expect.  The big
problem with this approach, however, is that it will allow normal
operations with a huge offset timestamp vs running-time, which is
detrimental to lip-sync. If the drift-tolerance is set to 200ms, it
basically means that lip-sync can easily end up being off by that much.

This patch will basically start a timer when the first breach of
drift-tolerance is detected. If any following timestamp for the next n
nanoseconds gets "back on track" within the threshold, it has basically
eliminated the effect of an outlier, and the timer is stopped.  If,
however, all timestamps within this time-limit are breaching the
threshold, we are probably facing a more permanent offset in the
timestamps, and a resync is allowed to happen.

So basically this patch offers something as rare as both higher
accuracy, it terms of allowing smaller drift-tolerances, as well as much
smoother, less glitchy playback!

Commit message and improvments by Havard Graff.

Fixes bug #640859.
2011-11-07 11:33:32 +01:00
Felipe Contreras
3f1395afae baseaudiosink: rename some variables 2011-11-07 11:18:34 +01:00
Felipe Contreras
fbde258be6 baseaudiosink: use gst_util_uint64_scale_int when appropriate
It's probably safer this way.
2011-11-07 11:11:08 +01:00
Felipe Contreras
369cf3f14a baseaudiosink: split drift-tolerance into alignment-threshold
So that drift-tolerance is used for clock slaving resync, and
alignment-threshold is for timestamp drift.
2011-11-07 11:10:05 +01:00
Felipe Contreras
58b9818853 baseaudiosink: trivial comment fixes
Some found by Havard Graff.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2011-11-07 10:57:56 +01:00
Wim Taymans
2f8292b495 ringbuffer: store bpf in the right variable 2011-11-04 13:21:24 +01:00
Edward Hervey
771cbbb17c rtpbuffer: Fix compilation issues with gcc 4.6.1 2011-11-04 10:36:15 +01:00
Reynaldo H. Verdejo Pinochet
7559fb29a4 Add missing default include paths to androgenizer call
Fixes building tag/ with Android's NDK
2011-11-03 21:35:38 -03:00
Wim Taymans
f4bee46072 net: remove net library, it's now in core 2011-11-03 16:48:51 +01:00
Wim Taymans
a5fa136c0b update for tag API removal 2011-11-02 12:11:16 +01:00
Edward Hervey
dfc9d1658d video: Add convenience macros for accessing GstVideoInfo flags 2011-11-02 11:24:33 +01:00
Wim Taymans
4e6563d91c netbuffer: _netaddress_ -> _net_address_ 2011-11-02 09:04:28 +01:00
Wim Taymans
e2015eeb5f netaddress: updata api 2011-11-02 09:04:27 +01:00
Wim Taymans
e067e67923 rename meta* -> *meta 2011-11-02 09:04:27 +01:00
Wim Taymans
5bdfd6d899 structure: fix for api update 2011-11-02 09:04:27 +01:00
Wim Taymans
df4999aeb1 bufferlist: update for new API 2011-11-02 09:04:27 +01:00
Tim-Philipp Müller
b52c5819fb Update for pad API changes
GstProbeType, GstProbeReturn and GstActivateMode -> GstPad*
2011-11-01 00:34:28 +00:00
Tim-Philipp Müller
220ccdf275 audioencoder: save audio info parsed in setcaps in encoder context
Otherwise we'll just error out when the first buffer gets pushed.
This is a porting artefact, in 0.10 the infos were allocated on the
heap, now we're doing everything with stack-allocated structs.
2011-10-31 14:22:39 +00:00
Tim-Philipp Müller
5ee51e47a1 ext, gst, gst-libs, tests: update for tag list API changes 2011-10-31 14:22:39 +00:00
René Stadler
7eb0985282 audio: remove old C file generated from template
Not sure how this one got pulled into a merge. In 0.10, it was moved away to
gst-template a long time ago. gstaudiofilterexample.c got generated from
gstaudiofiltertemplate.c.
2011-10-31 15:19:54 +01:00
Wim Taymans
95281cc306 Merge branch 'master' into 0.11 2011-10-28 16:24:44 +02:00
Wim Taymans
7247eb5f2c fix compile for SEEK_TYPE_CUR removal 2011-10-28 16:11:36 +02:00
Mersad Jelacic
d430eb65c5 audiosink: avoid deadlocking audioringbuffer thread
... when it goes into wait for ringbuffer starting just after such
having been signalled.

Fixes #661738.
2011-10-28 14:07:40 +02:00
Wim Taymans
b70275fa10 audiofilter: use BPF for unit_size 2011-10-28 11:37:31 +02:00
René Stadler
9beff28579 audiofilter: fix get_unit_size 2011-10-28 11:24:00 +02:00
René Stadler
5d2154ff4b audiofilter: init audio info sooner 2011-10-28 11:24:00 +02:00
René Stadler
372cf41a6d audio, video: init audio/video format info to UNKNOWN format
This is to prevent e.g. GST_AUDIO_INFO_FORMAT() from crashing on a NULL pointer
dereference when used with an unset info.
2011-10-28 11:24:00 +02:00
Wim Taymans
01854cca80 basertppay: rename caps fields
Make the caps fields for timestamp and seqnum match the element
properties.

See #628773
2011-10-27 18:54:50 +02:00
Wim Taymans
9555229e79 basedepay: remove old fields 2011-10-27 18:50:32 +02:00
Wim Taymans
06311362e9 fix compilation 2011-10-27 17:26:58 +02:00
Wim Taymans
016d036137 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	gst-libs/gst/audio/gstbaseaudiosink.c
	gst/audioconvert/channelmixtest.c
	gst/playback/gstplaybasebin.c
	gst/playback/gstsubtitleoverlay.c
	tests/examples/Makefile.am
	tests/examples/audio/Makefile.am
2011-10-27 15:44:58 +02:00
Wim Taymans
b21bb37657 overlay: fix compilation 2011-10-27 15:29:36 +02:00
Stefan Sauer
53d7d2e966 interfaces: clean up the use of iface and class/klass 2011-10-21 14:46:48 +02:00
Mark Nauwelaerts
981070eb44 audiodecoder: having gather queue contents implies some draining is in order
... which ensures e.g. processing and sending last fragment of reverse playback
downstream at EOS.
2011-10-19 16:51:09 +02:00
Tim-Philipp Müller
4e59e63ff7 baseaudiosink: fix unused variable compiler warning if debugging in core is disabled
https://bugzilla.gnome.org/show_bug.cgi?id=660150
2011-10-19 00:32:13 +01:00
Edward Hervey
12a8fff8ac audio: Add some default channel positions 2011-10-17 12:00:55 +02:00
Edward Hervey
b4858253dc audio: Properly handle signedness in gst_audio_format_build_integer() 2011-10-17 12:00:16 +02:00
Edward Hervey
45c4a19472 audio: Indent and doc fixes 2011-10-17 11:45:39 +02:00
Edward Hervey
8268a7a20e discoverer: Only call gst_video_info_from_caps on raw video 2011-10-11 17:42:35 +02:00
Wim Taymans
f1088ed647 update for UNEXPECTED -> EOS flowreturn 2011-10-10 11:39:52 +02:00
Thiago Santos
123671bc05 libs: video: Add protection against null strings
Check and assert if input for gst_video_format_from_string is null.
Return GST_VIDEO_FORMAT_UNKNOWN as a fallback
2011-10-09 17:05:15 -03:00
Tim-Philipp Müller
ab949eebbd audiodecoder: update to 0.11 API after merge 2011-10-09 16:15:54 +01:00
Tim-Philipp Müller
303dbaf84b Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	tests/check/pipelines/vorbisdec.c
	tests/check/pipelines/vorbisenc.c
2011-10-09 16:08:36 +01:00
Alessandro Decina
bc6f00becb audioencoder: fix compile warning 2011-10-09 16:48:18 +02:00
Mark Nauwelaerts
871b1584c9 audioencoder: only resync to upstream upon discont in perfect ts mode
... as documented, where discont is marked here if tolerance has been
exceeded.
2011-10-08 20:20:10 +02:00
Mark Nauwelaerts
a7ce550d04 audiodecoder: fix timestamp tolerance handling 2011-10-08 20:20:06 +02:00
Mark Nauwelaerts
d8312994aa audiodecoder: handle empty input by discarding 2011-10-08 20:20:03 +02:00
Wim Taymans
73b894107a Merge branch 'master' into 0.11
Conflicts:
	ext/vorbis/gstvorbisdec.c
	ext/vorbis/gstvorbisenc.c
	ext/vorbis/gstvorbisenc.h
	gst/audiotestsrc/gstaudiotestsrc.c
2011-10-08 10:19:06 +02:00
Mark Nauwelaerts
37c629fcc6 audioencoder: make upstream queries MT-safe 2011-10-07 14:52:50 +02:00
Mark Nauwelaerts
77069f01b1 audiodecoder: make upstream queries and events MT-safe 2011-10-07 14:52:48 +02:00
Edward Hervey
b8219faa90 audio: Make sure 'channels' and 'channel-positions' are coherent
If channel-positions are present, check they match the reported
'channels' value.
2011-10-05 11:57:54 +02:00
Edward Hervey
70d967da7c audio: Fix overread in channel positions
The array we're writing to is limited to 64 ... but the amount of
input positions might be lower than 64. Therefore use MIN and not
MAX to know how many values to read from the array.
2011-10-05 11:51:07 +02:00
Wim Taymans
a00927ad03 Merge branch 'master' into 0.11 2011-10-04 17:58:49 +02:00
Vincent Penquerc'h
93900d47ed encoding-profile: add a function to create a profile from a discoverer info
Only A/V streams are added at the moment, there does not seem to be
a similar way to add other streams (eg, subtitles).

https://bugzilla.gnome.org/show_bug.cgi?id=642878
2011-10-03 11:51:23 +02:00
Wim Taymans
8778cff7f0 video: add h264 transfer functions 2011-10-03 10:02:43 +02:00
Tim-Philipp Müller
6ec5fc8d95 audio: don't use GST_PTR_FORMAT for segments
Avoids crashes with debugging output enabled.
2011-09-30 10:56:02 +01:00
Wim Taymans
67f1a097bf video: add another color matrix for mpeg2 2011-09-30 11:04:19 +02:00
Wim Taymans
9592796d8a video: fix docs 2011-09-30 11:04:19 +02:00
Wim Taymans
1395378575 audiodecoder: fix refcounting error 2011-09-28 16:08:14 +02:00
Wim Taymans
ca6ebee870 ringbuffer: store info so we can debug it 2011-09-28 16:07:53 +02:00
Wim Taymans
f97a9bdc68 Merge branch 'master' into 0.11 2011-09-28 15:46:40 +02:00
Mark Nauwelaerts
8633eb391d audiodecoder: really push pending events 2011-09-28 15:42:46 +02:00
Wim Taymans
19626cf27a audiodecoder: add method to set output caps
Add a method to configure the output caps. Subclasses can't use
gst_pad_set_caps() anymore because then we won't see the caps.
Unbreak the padtemplate registration, the GTypeClass that is configured in the
object during _init is not the right one, we need to use the klass passed as the
argument to the init function..
2011-09-28 15:35:56 +02:00
Tim-Philipp Müller
e4e2e3c7b0 audioencoder: remove more tags from upstream tag events such as bitrate tags
We want to remove all codec specific tags.
2011-09-28 14:32:20 +01:00
Wim Taymans
19346c2c3b Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/audio/gstaudioencoder.c
	gst/playback/gstplaybin2.c
	gst/videotestsrc/videotestsrc.c
2011-09-28 11:35:46 +02:00
Mark Nauwelaerts
01d27ee084 audioencoder: only got_data if we really got some
... which avoids going loopy with casual subclass.
2011-09-27 16:58:44 +02:00
Mark Nauwelaerts
24d71cf7a6 audioencoder: really push pending events 2011-09-27 16:58:41 +02:00
Mark Nauwelaerts
803b65613b audioencoder: send tag event after pending events
... which probably includes a pending newsegment event.
2011-09-27 16:21:55 +02:00
Mark Nauwelaerts
89f6720545 audioencoder: protect pending_events with proper lock 2011-09-27 16:21:45 +02:00
Mark Nauwelaerts
9a9541ff35 audioencoder: clean up some documentation 2011-09-27 16:21:41 +02:00
Wim Taymans
4bf9022e0c docs: improve docs 2011-09-27 11:19:24 +02:00
Wim Taymans
c290b8044a audioenc: fix compilation 2011-09-26 21:11:14 +02:00
Wim Taymans
f71511edd2 Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/audio/gstaudiodecoder.c
	gst-libs/gst/audio/gstaudioencoder.c
	gst/encoding/gstencodebin.c
2011-09-26 19:22:05 +02:00
Sebastian Dröge
e4c895dfaf audioencoder: Improve set_frame_sample_{min,max} documentation 2011-09-26 16:35:55 +02:00
Sebastian Dröge
b767be2f68 audiodecoder: Fix thread safety issues if both pads have different streaming threads 2011-09-26 16:22:00 +02:00
Sebastian Dröge
d0bf465248 audiodecoder: Delay sending of serialized events to finish_frame() 2011-09-26 16:19:42 +02:00
Sebastian Dröge
f3f416004f Revert "audioencoder: Use GST_BOILERPLATE instead of custom GObject boilerplate code"
This reverts commit 11e375486e.

GST_BOILERPLATE() can't define an abstract type and
G_DEFINE_ABSTRACT_TYPE() does not pass the class struct to
the instance_init function and there's no way to get the
class struct of the current type in instance_init().
2011-09-26 16:02:51 +02:00
Sebastian Dröge
4fa9749106 audioencoder: Add support for requesting a minimum and maximum number of samples per frame
This extends the special case of a fixed number of samples per frame
that was supported before already.
2011-09-26 15:59:22 +02:00
Sebastian Dröge
16c3d6b3d5 audioencoder: Fix thread safety issues if both pads have different streaming threads 2011-09-26 15:45:40 +02:00
Sebastian Dröge
61ffd7cb42 audioencoder: Delay sending of serialized events to finish_frame()
This makes sure that the caps are already set before any serialized
events are sent downstream.
2011-09-26 15:42:14 +02:00
Sebastian Dröge
11e375486e audioencoder: Use GST_BOILERPLATE instead of custom GObject boilerplate code 2011-09-26 15:34:54 +02:00
Mark Nauwelaerts
abafb030ac audioencoder: add some tag handling convenience help 2011-09-26 15:15:03 +02:00
Mark Nauwelaerts
a99b313c26 audioencoder: provide CODEC/AUDIO_CODEC handling 2011-09-26 15:10:08 +02:00
Mark Nauwelaerts
aae0312e10 audioencoder: filter AUDIO_CODEC/CODEC tags from passing tag events 2011-09-26 15:10:06 +02:00
Tim-Philipp Müller
754b22d7ee libs: remove unused floatcast header-only library
There's no code whatsoever that uses these macros. If anyone
ever feels the need to resurrect them, we should add them to
gstutils.h in core or libgstaudio or so.
2011-09-23 21:18:47 +01:00
Edward Hervey
17bfba09f1 Merge branch 'master' into 0.11
Conflicts:
	ext/ogg/gstoggdemux.c
	ext/pango/gsttextoverlay.c
	gst-libs/gst/audio/gstaudioencoder.c
	gst-libs/gst/audio/gstbaseaudiosrc.c
	gst/playback/gstsubtitleoverlay.c
	gst/videorate/gstvideorate.c
2011-09-23 18:27:11 +02:00
Edward Hervey
3f45eb1cfc gst-libs: Temporarily remove dependency of gstaudio on gstpbutils
Also re-order the SUBDIRS in the higher-level Makefile so it cleanly
installs.

https://bugzilla.gnome.org/show_bug.cgi?id=657675
2011-09-23 16:17:45 +02:00
Mark Nauwelaerts
001b4a0072 audioencoder: proxy some more optional downstream caps fields to upstream 2011-09-22 15:47:06 +02:00
Mark Nauwelaerts
2a362a95f7 audioencoder: changed is verily the opposite of equal 2011-09-22 15:47:06 +02:00
Mark Nauwelaerts
b420dd54ea audioencoder: prevent crashing when comparing to a freshly inited GstAudioInfo 2011-09-22 15:46:56 +02:00
Mark Nauwelaerts
7fa7de9221 audio: some more accessor macros for GstAudioInfo 2011-09-22 15:45:05 +02:00
Mark Nauwelaerts
b44978befe audiodecoder: fix documentation typo 2011-09-22 15:45:01 +02:00
Age Bosma
043ee22e25 discoverer: Don't use gtk-doc /* < ... > */ style comments for signals
The /*< ... >*/ style is only used for public|protected|private,
signal comments use /* signals */. This prevents the some code
parsers/binding generators to be confused by the comment.
2011-09-19 14:36:00 +02:00
Mark Nauwelaerts
e574f58e71 rtspdefs: add RTCP-Interval header 2011-09-19 11:32:23 +02:00
Tim-Philipp Müller
454c554b11 docs: minor addition to GST_TAG_ID3V2_HEADER_SIZE docs 2011-09-12 19:55:40 +01:00
Tim-Philipp Müller
55182ed841 baseaudiosrc: don't try to fixate "width" field for alaw/mulaw
Fixes warning when trying to fixate e.g. pulsesrc ! audio/x-alaw ! fakesink.
2011-09-10 18:30:55 +01:00
Tim-Philipp Müller
0f38f86182 colorbalance: add some guards to interface methods
https://bugzilla.gnome.org/show_bug.cgi?id=658584
2011-09-09 13:09:43 +01:00
Tim-Philipp Müller
4529c6dc32 Merge remote-tracking branch 'origin/master' into 0.11
Merge in doc updates for audio enums from 0.10, and get rid
of the #if #else in the enum list, since that confuses gtk-doc.

Conflicts:
	gst-libs/gst/audio/audio.c
	gst-libs/gst/audio/audio.h
2011-09-06 16:42:42 +01:00
Wim Taymans
dc28bd1b63 audio: rename IS_LE/BE to _IS_LITTLE_ENDIAN/BIG_ENDIAN 2011-09-06 16:27:27 +01:00
Wim Taymans
f04b8fd8af audio/video add descriptions
Add a description to the audio and video format info in case we want to use this
later.
2011-09-06 16:46:48 +02:00
Tim-Philipp Müller
36a75bdb71 audio: update internal silent sample defines as well to match 0.11 2011-09-06 15:46:45 +01:00
Wim Taymans
c0d31dd555 rename IS_LE/BE to _IS_LITTLE_ENDIAN/BIG_ENDIAN 2011-09-06 16:46:02 +02:00
Tim-Philipp Müller
91d1112360 audio: update audio format enums to match changes in 0.11
And add new audio format info stuff to docs.
2011-09-06 15:36:51 +01:00
Wim Taymans
7012e88090 Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/audio/audio.h
	gst-libs/gst/audio/gstaudiodecoder.c
	gst-libs/gst/audio/gstaudiodecoder.h
	gst-libs/gst/audio/gstaudioencoder.c
	gst-libs/gst/audio/gstbaseaudioencoder.h
	gst/playback/Makefile.am
	gst/playback/gstplaybin.c
	gst/playback/gstplaysink.c
	gst/playback/gstplaysinkvideoconvert.c
	gst/playback/gstsubtitleoverlay.c
	gst/videorate/gstvideorate.c
	gst/videoscale/gstvideoscale.c
	win32/common/libgstaudio.def
2011-09-06 15:24:32 +02:00
Wim Taymans
33196cdd2c audio: change audio format syntax a little
Remove the _ in front of the endianness prefix.
Remove the _3 postfix for the 24 bits formats.
Add a _32 postfix after the formats that occupy extra space beyond their
natural size.
The result is that the GST_AUDIO_NE() macro can simply append the endianness
after all formats and that we only specify a different sample width when it is
different from the natural size of the sample. This makes things more consistent
and follows the pulseaudio conventions instead of the alsa ones.
2011-09-06 12:06:39 +02:00
Tim-Philipp Müller
9a8a989a22 docs: more docs clean-ups 2011-09-06 10:07:33 +01:00
Tim-Philipp Müller
5e61db25b5 audio: fix GST_AUDIO_FORMAT_INFO_IS_*() macros to return a boolean 2011-09-05 23:28:20 +01:00
Tim-Philipp Müller
ba05716485 docs: some docs love 2011-09-05 23:28:20 +01:00
Tim-Philipp Müller
7563e0c9cf docs: add GstAudioDecoder and GstAudioEncoder to documentation 2011-09-05 23:28:20 +01:00
Tim-Philipp Müller
86e6343759 audio: rename GstBaseAudioDecoder/Encoder to GstAudioDecoder/Encoder
API: gst_gst_audio_decoder_finish_frame()
API: gst_gst_audio_decoder_get_audio_info()
API: gst_gst_audio_decoder_get_byte_time()
API: gst_gst_audio_decoder_get_delay()
API: gst_gst_audio_decoder_get_latency()
API: gst_gst_audio_decoder_get_max_errors()
API: gst_gst_audio_decoder_get_min_latenc()y
API: gst_gst_audio_decoder_get_parse_state()
API: gst_gst_audio_decoder_get_plc()
API: gst_gst_audio_decoder_get_plc_aware()
API: gst_gst_audio_decoder_get_tolerance()
API: gst_gst_audio_decoder_get_type()
API: gst_gst_audio_decoder_set_byte_time()
API: gst_gst_audio_decoder_set_latency()
API: gst_gst_audio_decoder_set_max_errors()
API: gst_gst_audio_decoder_set_min_latency()
API: gst_gst_audio_decoder_set_plc()
API: gst_gst_audio_decoder_set_plc_aware()
API: gst_gst_audio_decoder_set_tolerance()

API: gst_gst_audio_encoder_finish_frame()
API: gst_gst_audio_encoder_get_audio_info()
API: gst_gst_audio_encoder_get_frame_max()
API: gst_gst_audio_encoder_get_frame_samples()
API: gst_gst_audio_encoder_get_hard_resync()
API: gst_gst_audio_encoder_get_latency()
API: gst_gst_audio_encoder_get_lookahead()
API: gst_gst_audio_encoder_get_mark_granule()
API: gst_gst_audio_encoder_get_perfect_timestamp()
API: gst_gst_audio_encoder_get_tolerance()
API: gst_gst_audio_encoder_get_type()
API: gst_gst_audio_encoder_proxy_getcaps()
API: gst_gst_audio_encoder_set_frame_max()
API: gst_gst_audio_encoder_set_frame_samples()
API: gst_gst_audio_encoder_set_hard_resync()
API: gst_gst_audio_encoder_set_latency()
API: gst_gst_audio_encoder_set_lookahead()
API: gst_gst_audio_encoder_set_mark_granule()
API: gst_gst_audio_encoder_set_perfect_timestamp()
API: gst_gst_audio_encoder_set_tolerance()

https://bugzilla.gnome.org/show_bug.cgi?id=642690
2011-09-05 23:28:13 +01:00
Wim Taymans
2f2aa4ac32 video: improve docs a little 2011-08-31 13:32:21 +02:00
Wim Taymans
de4aeab544 video: add some more macros 2011-08-30 14:04:54 +02:00
Wim Taymans
e694528155 base: port to 0.11 2011-08-29 13:28:08 +02:00
Wim Taymans
057aecc34e audio: fix after merge 2011-08-29 11:42:35 +02:00
Wim Taymans
dc2b00adb8 pbutils: port to new API 2011-08-29 11:38:01 +02:00
Wim Taymans
e1287b97ab Merge branch 'master' into 0.11
Conflicts:
	ext/ogg/gstoggmux.c
	gst-libs/gst/audio/audio.c
	gst-libs/gst/audio/audio.h
	gst-libs/gst/audio/multichannel.h
	gst-libs/gst/pbutils/Makefile.am
	gst-libs/gst/pbutils/gstdiscoverer.c
	gst/playback/gstplaysinkaudioconvert.c
	gst/playback/gstplaysinkvideoconvert.c
	win32/common/libgstaudio.def
2011-08-29 11:37:36 +02:00
Tim-Philipp Müller
67a12c9c72 pbutils: don't depend on libgstvideo just to parse some caps
Let's extract those ints and fractions ourselves and not depend
on libgstvideo.
2011-08-27 14:57:41 +01:00
Tim-Philipp Müller
517153e85a audio: add GstBaseAudioDecoder and GstBaseAudioEncoder to build
However, libgstaudio now depends on libgstvideo (via pbutils).

https://bugzilla.gnome.org/show_bug.cgi?id=642690

API: gst_audio_info_clear()
API: gst_audio_info_convert()
API: gst_audio_info_copy()
API: gst_audio_info_free()
API: gst_audio_info_from_caps()
API: gst_audio_info_init()
API: gst_audio_info_to_caps()
API: gst_base_audio_decoder_finish_frame()
API: gst_base_audio_decoder_get_audio_info()
API: gst_base_audio_decoder_get_byte_time()
API: gst_base_audio_decoder_get_delay()
API: gst_base_audio_decoder_get_latency()
API: gst_base_audio_decoder_get_max_errors()
API: gst_base_audio_decoder_get_min_latency()
API: gst_base_audio_decoder_get_parse_state()
API: gst_base_audio_decoder_get_plc()
API: gst_base_audio_decoder_get_plc_aware()
API: gst_base_audio_decoder_get_tolerance()
API: gst_base_audio_decoder_get_type()
API: gst_base_audio_decoder_set_byte_time()
API: gst_base_audio_decoder_set_latency()
API: gst_base_audio_decoder_set_max_errors()
API: gst_base_audio_decoder_set_min_latency()
API: gst_base_audio_decoder_set_plc()
API: gst_base_audio_decoder_set_plc_aware()
API: gst_base_audio_decoder_set_tolerance()
API: gst_base_audio_encoder_finish_frame()
API: gst_base_audio_encoder_get_audio_info()
API: gst_base_audio_encoder_get_frame_max()
API: gst_base_audio_encoder_get_frame_samples()
API: gst_base_audio_encoder_get_hard_resync()
API: gst_base_audio_encoder_get_latency()
API: gst_base_audio_encoder_get_lookahead()
API: gst_base_audio_encoder_get_mark_granule()
API: gst_base_audio_encoder_get_perfect_timestamp()
API: gst_base_audio_encoder_get_tolerance()
API: gst_base_audio_encoder_get_type()
API: gst_base_audio_encoder_proxy_getcaps()
API: gst_base_audio_encoder_set_frame_max()
API: gst_base_audio_encoder_set_frame_samples()
API: gst_base_audio_encoder_set_hard_resync()
API: gst_base_audio_encoder_set_latency()
API: gst_base_audio_encoder_set_lookahead()
API: gst_base_audio_encoder_set_mark_granule()
API: gst_base_audio_encoder_set_perfect_timestamp()
API: gst_base_audio_encoder_set_tolerance()
2011-08-27 14:47:50 +01:00
Tim-Philipp Müller
58f515f06a docs: add since markers to baseaudio{decoder,encoder} documentation 2011-08-27 14:47:50 +01:00
Tim-Philipp Müller
90e3d25891 baseaudiodecoder, baseaudioencoder: fix some compiler warnings
Leaving the GST_USE_UNSTABLE_API guards in until some of the
ported decoders have been updated and it's clear that I didn't
mess up anywhere porting things to the new audio API.
2011-08-27 14:47:49 +01:00
Tim-Philipp Müller
52ecb383d7 baseaudioutils: remove, merged into or superseded by audio.c 2011-08-27 14:47:49 +01:00
Tim-Philipp Müller
7f0c7e5f82 baseaudioencoder: port to new GstAudioInfo API 2011-08-27 14:47:49 +01:00
Tim-Philipp Müller
c89b49bfaf baseaudiodecoder: port to GstAudioInfo API 2011-08-27 14:47:49 +01:00
Tim-Philipp Müller
946ddb6462 audio: add gst_audio_info_{init,clear} and gst_audio_info_{copy,free} 2011-08-27 14:47:49 +01:00
Tim-Philipp Müller
63a3d360dc audio: add GstAudioFormat, GstAudioFormatInfo and GstAudioInfo
Same as in 0.11, but with caps parsing/serialising for 0.10 style
caps. Add setting default channel positions.
2011-08-27 14:47:01 +01:00
Mark Nauwelaerts
bf4a28f420 baseaudioencoder: remove leftover experimental code 2011-08-27 14:47:00 +01:00
Mark Nauwelaerts
35b172004c audioutils: modify _parse, add GType support functions 2011-08-27 14:47:00 +01:00
Mark Nauwelaerts
a4d5e33224 baseaudiodecoder: move properties to private storage and add
_get/_set
2011-08-27 14:47:00 +01:00
Mark Nauwelaerts
7939d37936 baseaudiodecoder: rename property 2011-08-27 14:47:00 +01:00
Mark Nauwelaerts
d71e427c49 baseaudiodecoder: replace context helper structure by various
_get/_set
2011-08-27 14:47:00 +01:00
Mark Nauwelaerts
a39a66dd4b baseaudioencoder: move properties to private storage and add
_get/_set
2011-08-27 14:47:00 +01:00
Mark Nauwelaerts
41a0d6f8f0 baseaudioencoder: rename some properties 2011-08-27 14:47:00 +01:00
Mark Nauwelaerts
6302c9d31d baseaudioencoder: replace context helper structure by various
_get/_set
2011-08-27 14:47:00 +01:00
Mark Nauwelaerts
d1ab04f029 baseaudio: rename GstAudioState to GstAudioFormatInfo 2011-08-27 14:47:00 +01:00
Mark Nauwelaerts
ecf57f2b73 baseaudioencoder: TEMP; avoid some imperfect ts jitter ?
... even when not in perfect mode ?
2011-08-27 14:47:00 +01:00
Mark Nauwelaerts
5a40343102 baseaudioencoder: debug format fixes 2011-08-27 14:47:00 +01:00
Mark Nauwelaerts
cedbedbbca baseaudiodecoder: debug format fix 2011-08-27 14:47:00 +01:00
Mark Nauwelaerts
8b6109cdbe baseaudiodecoder: fixup documentation 2011-08-27 14:47:00 +01:00
Mark Nauwelaerts
5003868dc7 baseaudiodecoder: fix FLUSH_STOP actions 2011-08-27 14:46:59 +01:00
Mark Nauwelaerts
660aa2e2c0 baseaudiodecoder: preserve upstream seek event seqnum 2011-08-27 14:46:59 +01:00
Mark Nauwelaerts
d1f5c34fe7 baseaudioencoder: use buffer running time for granule calculation 2011-08-27 14:46:59 +01:00
Mark Nauwelaerts
6c04035eec baseaudiodecoder: minor fix in ts resync 2011-08-27 14:46:59 +01:00
Mark Nauwelaerts
d46006b198 baseaudiodecoder: improve glitch resilience
Provide a replacement for GST_ELEMENT_ERROR to avoid aborting at the first
atom out of place, while on the other hand not failing indefinitely.
2011-08-27 14:46:59 +01:00
Mark Nauwelaerts
79b41f59f6 baseaudiodecoder: add limited legacy seeking support 2011-08-27 14:46:59 +01:00
Mark Nauwelaerts
0c33df6540 baseaudiodecoder: cater for audio-codec tag 2011-08-27 14:46:59 +01:00
Mark Nauwelaerts
1dbbe7c89d baseaudiodecoder: initial version 2011-08-27 14:46:59 +01:00
Mark Nauwelaerts
87409f2587 baseaudioencoder: misc fixes 2011-08-27 14:46:59 +01:00
Mark Nauwelaerts
8c61685554 baseaudio: add audioutils for caps and query handling helper utils 2011-08-27 14:46:59 +01:00
Mark Nauwelaerts
cb04eaaa8f baseaudioencoder: mark unstable API 2011-08-27 14:46:59 +01:00
Mark Nauwelaerts
b47c08ba17 baseaudioencoder: fix clearing context 2011-08-27 14:46:59 +01:00
Mark Nauwelaerts
e3cae1619c baseaudioencoder: simplify latency variable handling 2011-08-27 14:46:59 +01:00
Mark Nauwelaerts
9ce2edc918 baseaudioencoder: minor fixes and code simplifications
Also modify and elaborate a bit on pre_push (though currently unused to no harm).
2011-08-27 14:46:59 +01:00
Mark Nauwelaerts
d0e9fbf3db baseaudioencoder: additional documentation on granule semantics and
configuration
2011-08-27 14:46:59 +01:00
Mark Nauwelaerts
9f7849eac9 baseaudioencoder: elaborate property names 2011-08-27 14:46:58 +01:00
Mark Nauwelaerts
bf61f04577 baseaudioencoder: rename state field xint to is_int 2011-08-27 14:46:58 +01:00
Mark Nauwelaerts
3d2f496b3a baseaudioencoder: gtk-doc syntax fixes 2011-08-27 14:46:58 +01:00
Mark Nauwelaerts
51acb02342 baseaudioencoder: minor fix and cleanup 2011-08-27 14:46:58 +01:00
Mark Nauwelaerts
90d99f23c6 baseaudiocodec: ... and also rename to baseaudiodecoder 2011-08-27 14:46:58 +01:00
Mark Nauwelaerts
dfd7616f60 gst-libs/gst/audio: Remove baseaudiodecoder
Adds little beyond baseaudiocodec (seeking, bit of query), and what it adds
is mainly out-of-scope (e.g. decoder seeking, should be done by upstream
demuxer/parser) and/or based on non-prime example (mad).
2011-08-27 14:46:58 +01:00
Iago Toral
492ab47fd2 baseaudiodecoder: Return TRUE if we run into special conversion cases. 2011-08-27 14:46:50 +01:00
Iago Toral
2ed1331f43 audio: initial version of GstBaseAudioCodec
Moved most of the code to GstBaseAudioCodec, GstBaseAudioDecode is
now really small, maybe we do not really need it (or its encoder
counterpart). Added more API for subclasses and documentation.
2011-08-27 14:45:47 +01:00
Iago Toral
9740eb35b8 Added src_queries to decoder class. Added handle_discont to decoder
class. Reworked reset. Various other minor fixes.
2011-08-27 14:45:47 +01:00
Iago Toral
d05c805b16 Added a draft implementation of gstbaseaudiodecoder 2011-08-27 14:45:47 +01:00
Mark Nauwelaerts
fc6b421227 Added audio directory for audio codec base classes 2011-08-27 14:45:47 +01:00
Mark Nauwelaerts
ef92c7438d audioencoders: add streamheader helper utility 2011-08-27 14:45:47 +01:00
Mark Nauwelaerts
80241fde8d audioencoders: baseaudioencoder and ported encoders 2011-08-27 14:45:47 +01:00
Vincent Penquerc'h
921b92ce06 discoverer: retrieve audio track language from tags too
https://bugzilla.gnome.org/show_bug.cgi?id=657257
2011-08-26 10:05:51 +02:00
Vincent Penquerc'h
e51cbc136b discoverer: consider subtitles as raw
Otherwise, discoverer will generated an "inner" codec
where there can be a tranformation (eg, kate -> DVD SPU,
and various ->text/x-pango-markup).

https://bugzilla.gnome.org/show_bug.cgi?id=639055
2011-08-26 10:05:51 +02:00
Vincent Penquerc'h
143a620701 discoverer: add application/x-kate to subtitles caps
https://bugzilla.gnome.org/show_bug.cgi?id=639055
2011-08-26 10:05:50 +02:00
Vincent Penquerc'h
8438bc038a discoverer: get language from other tags if we did not get it already
https://bugzilla.gnome.org/show_bug.cgi?id=639055
2011-08-26 10:05:50 +02:00
Vincent Penquerc'h
4b5bfb1fd4 discoverer: add subtitles API
https://bugzilla.gnome.org/show_bug.cgi?id=639055
2011-08-26 10:05:50 +02:00
Edward Hervey
d0eb0ed058 video: Fix typo in interlaced flag (TTF => TFF) 2011-08-25 17:41:11 +02:00
Wim Taymans
b79ddf66d2 video: clean up the custom flags
Clean up the flags, make an enum of them. We can now do this because there are
no subclasses of buffer anymore.
2011-08-25 16:42:08 +02:00
Wim Taymans
7e97391195 convert: use new caps 2011-08-25 16:30:49 +02:00
Olivier Crête
791eeeb1a6 basertppayload: Make perfect timestamps reproducible across element restart
Without the perfect timestamp machinery, the RTP timestamp can be
computed directly from the running time of a buffer, but the perfect
timestamp patch broke that assumption. This patch restores it by
having the first perfect timestamp be the running time of that buffer
and counting from there.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=654434
2011-08-25 14:16:48 +02:00
Wim Taymans
6854f2bbf1 multichannel: add some more channels 2011-08-24 18:39:47 +02:00
Wim Taymans
24ea19935f audio/video: add format of the pack functions
Replace the unpack_size with an unpack_format, which is more descriptive of the
kind of data the unpack function will create.
2011-08-24 16:40:43 +02:00
Wim Taymans
0a1874461a audio: rename UNPOSITIONED to DEFAULT_POSITIONS
Rename the UNPOSITIONED flag to the DEFAULT_POSITIONS flag because that is
really what the resulting GstAudioInfo will contain as the chanel mappings.
2011-08-24 14:13:33 +02:00
Wim Taymans
1bb83435fd video: Add an id to the video frame
Rename @view_id to @id.
Add an id to the video metadata. Add a method to get the metadata from a buffer
with the given id.
Make a method to map a frame with a certain id. This only maps the frame with
the given id on the video metadata. The generic frame id can be used when a
buffer carries multiple video frames such as in multiview mode but maybe also
when dealing with interlaced video that stores the fields in separate buffers.
2011-08-24 13:52:20 +02:00
Wim Taymans
e78b66f5a3 video: fix chroma-site enums 2011-08-23 20:34:24 +02:00
Wim Taymans
14ad322e8b video: avoid gst-indent breaking the code 2011-08-23 19:23:03 +02:00
Wim Taymans
76c4bef932 video: fix docs 2011-08-23 19:04:34 +02:00
Wim Taymans
9ad89374a3 video: add colorimetry info
Make enums for the chroma siting for easier use in the videoinfo.
Make enums for the color range, color matrix, transfer function and the
color primaries. Add these values to the video info structure in a Colorimetry
structure. These values define the exact colors and are needed to perform
correct colorspace conversion. Use a couple of predefined colorimetry specs
because in practice only a few combinations are in use.
Add view_id to the video frames to identify the view this frame represents in
multiview video.
Remove old gst_video_parse_caps_framerate, use the videoinfo for this.
Port elements to new colorimetry info.
Remove deprecated colorspace property from videotestsrc.
2011-08-23 18:57:35 +02:00
Wim Taymans
c6758ecfa9 audio: move function to convert 2011-08-22 16:11:27 +02:00
Wim Taymans
00a30b5cfd video: parse number of views
Parse the number of views in multiview video buffers.
2011-08-22 15:57:30 +02:00
Wim Taymans
3fab57b5cf Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/interfaces/videooverlay.c
	gst-libs/gst/rtp/gstrtpbuffer.c
	po/af.po
	po/az.po
	po/bg.po
	po/ca.po
	po/cs.po
	po/da.po
	po/de.po
	po/el.po
	po/en_GB.po
	po/es.po
	po/eu.po
	po/fi.po
	po/fr.po
	po/gl.po
	po/hu.po
	po/id.po
	po/it.po
	po/ja.po
	po/lt.po
	po/lv.po
	po/nb.po
	po/nl.po
	po/or.po
	po/pl.po
	po/pt_BR.po
	po/ro.po
	po/ru.po
	po/sk.po
	po/sl.po
	po/sq.po
	po/sr.po
	po/sv.po
	po/tr.po
	po/uk.po
	po/vi.po
	po/zh_CN.po
2011-08-22 13:06:27 +02:00
Wim Taymans
c81c62d03a fourcc: remove fourcc
Remove fourcc in caps.
Fix pbutils descriptions.
Add more video macros
Fix some unit test
2011-08-22 12:22:02 +02:00
Stefan Kost
54c15acd11 docs: fix xref for the property 2011-08-20 19:46:31 +02:00
Stefan Kost
01bbdd6bdf docs: handle warnings emitted by gtk-doc
This is useful and in most cases someone had put arbitrary markup into the docs,
misspelled xref'ed symbols, forgot to add stuff to the docs etc..
2011-08-20 19:16:42 +02:00
Stefan Kost
1662384779 docs: add new taglicense docs and clean them up
Avoid ugly docbook tags unless needed.
2011-08-20 14:14:54 +02:00
Tim-Philipp Müller
6b4064510a tag: fix distcheck issue
Dist licenses dict.
2011-08-20 12:36:20 +01:00
Wim Taymans
0213407fbc audio: rename INT -> INTEGER
Spell INTEGER fully instead of using the int abreviation.
Remove some old functions.
2011-08-20 10:49:17 +02:00
Wim Taymans
5e90085ca2 riff: port to new audio caps 2011-08-19 16:01:08 +02:00
Wim Taymans
7db6fa37b4 audio: add function to build audio format 2011-08-19 16:00:33 +02:00
Wim Taymans
17dd31b0f4 audio: add more macros 2011-08-19 14:03:23 +02:00
Sebastian Dröge
85a3e7c98c audiofilter: Pass a const pointer to the audio format info to ::setup()
It is not meant to be changed by the subclass.
2011-08-19 10:06:39 +02:00
Wim Taymans
dae848818d audio: rework audio caps.
Rework the audio caps similar to the video caps. Remove
width/depth/endianness/signed fields and replace with a simple string
format and media type audio/x-raw.
Create a GstAudioInfo and some helper methods to parse caps.
Remove duplicate code from the ringbuffer and replace with audio info.
Use AudioInfo in the base audio filter class.
Port elements to new API.
2011-08-18 19:15:03 +02:00
Wim Taymans
d1a83d7a41 baseaudiosrc: chain up to parent in fixate 2011-08-17 17:24:35 +02:00
Wim Taymans
ba1ca45eda video: add some more macros 2011-08-17 17:18:02 +02:00
Wim Taymans
d3b93e839a tagdemux: port to 0.11 2011-08-17 10:57:52 +02:00
Wim Taymans
33467d9629 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	ext/pango/gsttextoverlay.c
	ext/theora/gsttheoradec.c
	gst/adder/gstadder.c
	gst/adder/gstadder.h
	gst/audioresample/gstaudioresample.c
	gst/encoding/gstencodebin.c
	gst/playback/gstdecodebin.c
	gst/playback/gstdecodebin2.c
	tests/check/elements/decodebin2.c
	tests/check/elements/playbin-compressed.c
	win32/common/libgsttag.def
2011-08-16 18:01:14 +02:00
Wim Taymans
d6740006d4 audio: remove deprecated methods 2011-08-16 16:59:15 +02:00
Tim-Philipp Müller
6d875c5ccd tag: id3: avoid some more relocations in genre table 2011-08-16 12:27:25 +01:00
Alessandro Decina
22cc529409 rtspconnection: add OSX specific hack to detect when a connection is refused
Unlike linux, OSX wakes up select with POLLOUT (instead of POLLERR) when
connect() is done async and the connection is refused. Therefore always check
for the socket error state using getsockopt (..., SO_ERROR, ...) after a
connection attempt.
2011-08-15 23:46:53 +02:00
Wim Taymans
e904c529e3 fix for _negotiated_caps() change 2011-08-15 12:18:15 +02:00
Tim-Philipp Müller
685eb3b954 tag: id3v2: add specs to git for reference 2011-08-15 00:10:35 +01:00
Tim-Philipp Müller
169c5033f0 tag: id3v2: avoid some relocations, make table static 2011-08-15 00:10:34 +01:00
Tim-Philipp Müller
f25c715104 tag: id3v2: add debug category for ID3 tag parsing 2011-08-15 00:10:34 +01:00
Mark Nauwelaerts
08e6b5c54e tag: id3v2: add id3v2 tag parsing helpers
https://bugzilla.gnome.org/show_bug.cgi?id=654388
2011-08-15 00:10:34 +01:00
Stefan Kost
4f042aeb1a tag: id3v2: return ID3TAGS_BROKEN_TAG for unsupported versions
This prevents us for trying to work with a NULL taglist.
2011-08-15 00:10:34 +01:00
Erich Schubert
afe6ee7f3c tag: id3v2: fix parsing of ID3v2.4 genre frames with multiple genres
We'd only extract the first genre (multiple times) instead of all
genres.

https://bugzilla.gnome.org/show_bug.cgi?id=638535
2011-08-15 00:10:34 +01:00
Edward Hervey
d2cec9e102 tag: id3v2: Sanitize id3 frame names
This is similar to what is done in qtdemux. Avoids providing invalid
structure/tags names
2011-08-15 00:10:34 +01:00
Tim-Philipp Müller
366ed8edb4 tag: id3v2: fix parsing of unsynced frames with data length indicator
Fixes bug #614158.
2011-08-15 00:10:34 +01:00
Benjamin Otte
50a6cb5450 Add -Wwrite-strings to the configure flags
... and fix all warnings
2011-08-15 00:10:34 +01:00
Tim-Philipp Müller
e4752b52b8 tag: id3v2: prefer two letter ISO 639-1 code for extended comment 2011-08-15 00:10:34 +01:00
Josep Torra
ad10b0185a tag: id3v2: fixes warnings building on macosx
Another round on the formating of that debug line.
2011-08-15 00:10:33 +01:00
Stefan Kost
aa6ff34c57 tag: id3v2: cast pointer math results to glong 2011-08-15 00:10:33 +01:00
Stefan Kost
dd3826a3a6 tag: id3v2: don't cast, but use the right format specified instead
This correct some of the previous macos fixes.
2011-08-15 00:10:33 +01:00
Josep Torra
67fabdb461 tag: id3v2: fix printf warnings on macosx 2011-08-15 00:10:33 +01:00
Stefan Kost
ed05fcfb2c tag: id3v2: fprintf, sprintf, sscanf need stdio.h 2011-08-15 00:10:33 +01:00
Alessandro Decina
4a885b094f tag: id3v2: Fix compile warnings with gcc 4.0.1. 2011-08-15 00:10:33 +01:00
LoneStar
687055c852 tag: id3v2: Try GST_*_TAG_ENCODING and locale encoding if tags are not UTF8
Fixes bug #499242.
2011-08-15 00:10:32 +01:00
Tim-Philipp Müller
09b26dbf5c tag: id3v2: sizes in ID3 v2.3 are unlikely to be sync-safe integers
In ID3 v2.3 compressed frames will have a 4-byte data length indicator
after the frame header to indicate the size of the decompressed data.
This integer is unlikely to be a sync-safe integer for v2.3 tags,
only in v2.4 it's sync-safe.
2011-08-15 00:10:32 +01:00
Tim-Philipp Müller
891ed455e7 tag: id3v2: fix typo in debug message 2011-08-15 00:10:32 +01:00
Tim-Philipp Müller
c2c21806ba tag: id3v2: fix parsing of unsync'ed ID3 v2.4 tags and frames
Reversing the unsynchronisation seems to work slightly differently
for ID3 v2.3 tags and v2.4 tags: v2.3 tags don't have syncsafe frame
sizes in the frame header, so the unsynchronisation is applied to
the whole frame data including all the frame headers. v2.4 frames
have sync-safe sizes, however, so the unsynchronisation only needs
to be applied to the actual frame data, and it seems that's what's
being done as well. So we need to undo the unsynchronisation on a
per-frame basis for v2.4 tags for things to work properly.

Fixes extraction of coverart/images from APIC frames in ID3 v2.4
tags (#588148).

Add unit test for this as well.
2011-08-15 00:10:32 +01:00
Tim-Philipp Müller
941d5080fa tag: id3v2: parse unsynchronised tags properly
We didn't handle unsynchronization at all up to now, which might have
caused frames to not be extracted - esp. frames after an APIC picture
frame. Fixes #577468.
2011-08-15 00:10:32 +01:00
Tim-Philipp Müller
bd738166a7 tag: id3v2: pass the right size value for size of all frames to the parser
Frame data size is tag size adjusted for size of the tag header and
footer, not tag size including header and footer.
2011-08-15 00:10:32 +01:00
Tim-Philipp Müller
a91620dbdf tag: id3v2: Use new utility functions in libgsttag to process coverart (#512333).
Original commit message from CVS:
* ext/flac/gstflacdec.c: (gst_flac_extract_picture_buffer):
* gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
Use new utility functions in libgsttag to process coverart (#512333).
2011-08-15 00:10:32 +01:00
Jan Schmidt
904051e9d4 tag: id3v2: Generate the image-type values correctly. Leave them out of the caps when outputting a "preview image" tag, since it ...
Original commit message from CVS:
* ext/flac/gstflacdec.c: (gst_flac_extract_picture_buffer):
* gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
Generate the image-type values correctly. Leave them out of the caps
when outputting a "preview image" tag, since it only makes sense
to have one of those - the type is irrelevant.
* sys/sunaudio/gstsunaudiomixerctrl.c:
(gst_sunaudiomixer_ctrl_open):
If we can, mark the mixer multiple open when we use it, in case
(for some reason) the process wants to open it again elsewhere.
2011-08-15 00:10:32 +01:00
Tommi Myöhänen
6d7fcfbcde tag: id3v2: Make sure the ISO 639-X language code in ID3v2 COMM frames so we don't end up with non-UT...
Original commit message from CVS:
Based on patch by: Tommi Myöhänen <ext-tommi.myohanen nokia com>
* gst-libs/gst/tag/id3v2frames.c: (parse_comment_frame):
Make sure the ISO 639-X language code in ID3v2 COMM frames
is actually valid UTF-8 (or rather: ASCII), so we don't end
up with non-UTF8 strings in tags if there's garbage in the
language field. Also make sure the language code is always
lower case. Fixes: #508291.
2011-08-15 00:10:31 +01:00
Tim-Philipp Müller
d4b43861a2 tag: id3v2: Parse WOAF frames and put the result into GST_TAG_CONTACT, which is where it would end up...
Original commit message from CVS:
* tag: id3v2: (parse_url_link_frame):
Parse WOAF frames and put the result into GST_TAG_CONTACT,
which is where it would end up if the same information was
put in a vorbis comment (don't think it's worth adding a
new URI tag for this). Fixes #488112.
2011-08-15 00:10:31 +01:00
Tim-Philipp Müller
1dd5350109 tag: id3v2: We don't want the same string multiple times in a tag list for the same tag ever, for any tag, not jus...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2.c:
* gst-libs/gst/tag/id3v2.h:
* gst-libs/gst/tag/id3v2frames.c: (id3v2_tag_to_taglist):
We don't want the same string multiple times in a tag list for the
same tag ever, for any tag, not just for GST_TAG_GENRE, so make sure
this doesn't happen and remove special-case code for GST_TAG_GENRE.
2011-08-15 00:10:31 +01:00
Jason Kivlighn
66c4980024 tag: id3v2: Extract license/copyright URIs from ID3v2 WCOP frames (Fixes #447000).
Original commit message from CVS:
Based on patch by: Jason Kivlighn  <jkivlighn gmail com>
* gst-libs/gst/tag/id3v2frames.c:
Extract license/copyright URIs from ID3v2 WCOP frames
(Fixes #447000).
* tests/check/elements/id3demux.c:
* tests/files/Makefile.am:
* tests/files/id3-447000-wcop.tag:
Add simple unit test.
2011-08-15 00:10:31 +01:00
Tim-Philipp Müller
2ff93c3826 tag: id3v2: Port ID3 tag demuxer over to the new GstTagDemux in -base (now would be a good time to test re-importi...
Original commit message from CVS:
* gst-libs/gst/tag/gstid3demux.c:
* gst-libs/gst/tag/gstid3demux.h:
* gst-libs/gst/tag/id3v2.c:
* gst-libs/gst/tag/id3v2.h:
* gst-libs/gst/tag/id3v2frames.c:
Port ID3 tag demuxer over to the new GstTagDemux in -base
(now would be a good time to test re-importing your music
collection).
2011-08-15 00:10:31 +01:00
Tim-Philipp Müller
0277ee0b79 tag: id3v2: Fix parsing of ID3 v2.2.0 PIC frames. Only in version >= 2.3.0 is the image format a vari...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
Fix parsing of ID3 v2.2.0 PIC frames. Only in version >= 2.3.0 is
the image format a variable-length NUL-terminated string; in
versions before that the image format is a fixed-length string of
3 characters (see #348644 for a sample tag).
Also make supplied mime type lower-case and fix up 'jpg' to 'jpeg'.
2011-08-15 00:10:31 +01:00
Tim-Philipp Müller
c76c78670d tag: id3v2: Do not convert obsolete TDA/TDAT frames to TDRC frames, otherwise the four-digit number will be interp...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2.c: (id3demux_id3v2_frames_to_tag_list):
* gst-libs/gst/tag/id3v2.h:
* gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
(parse_obsolete_tdat_frame):
Do not convert obsolete TDA/TDAT frames to TDRC frames, otherwise
the four-digit number will be interpreted as a year, whereas it is
month and day in DDMM format. Instead, parse TDAT frames and fix up
the date in the GST_TAG_DATE tag later if we also extracted a year.
Fixes #407349.
2011-08-15 00:10:30 +01:00
René Stadler
763eea481e tag: id3v2: Make sure that g_free always gets called on the same pointer that was returned by g_mallo...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame):
Make sure that g_free always gets called on the same pointer that was
returned by g_malloc.  Fixes #376594.
Do not leak memory if decompressed size is wrong.
Remove unneeded check of return value of g_malloc.
Patch by: René Stadler <mail@renestadler.de>
2011-08-15 00:10:30 +01:00
Tim-Philipp Müller
07feb53dbd tag: id3v2: We require a -base more recent than 0.10.9, so it's safe to use
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
We require a -base more recent than 0.10.9, so it's safe to use
GST_TYPE_TAG_IMAGE_TYPE unconditionally now.
* ext/dv/gstdvdec.c: (gst_dvdec_sink_event):
* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_sink_event):
Use _newsegment_full() now that we depend on a recent enough core.
* gst/wavparse/gstwavparse.c:
Remove cruft that we don't need any longer now that we depend on
a recent enough -base.
2011-08-15 00:10:30 +01:00
Tim-Philipp Müller
bac37d9917 tag: id3v2: Printf format fixes.
Original commit message from CVS:
* ext/cairo/gsttimeoverlay.c:
(gst_cairo_time_overlay_update_font_height):
* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_transform_caps):
* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_parse_image_data):
* ext/jpeg/gstjpegenc.c: (gst_jpegenc_chain):
* ext/jpeg/gstsmokedec.c: (gst_smokedec_chain):
* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_chain):
* ext/libpng/gstpngdec.c: (user_endrow_callback):
* gst/auparse/gstauparse.c: (gst_au_parse_parse_header):
* gst/avi/gstavidemux.c: (gst_avi_demux_parse_superindex),
(gst_avi_demux_parse_subindex), (gst_avi_demux_parse_stream),
(gst_avi_demux_stream_data):
* gst/cutter/gstcutter.c: (gst_cutter_chain):
* gst/debug/efence.c: (gst_efence_buffer_alloc),
(gst_fenced_buffer_copy):
* gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame):
* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream):
* gst/matroska/matroska-mux.c: (gst_matroska_mux_start):
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send),
(gst_rtspsrc_handle_message):
* gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers):
* sys/ximage/ximageutil.c: (ximageutil_xcontext_get):
Printf format fixes.
2011-08-15 00:10:30 +01:00
Jan Schmidt
8bdde43777 tag: id3v2: If strings in text fields are marked ISO8859-1, but contain valid UTF-8 already, then han...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (parse_text_identification_frame),
(parse_insert_string_field):
If strings in text fields are marked ISO8859-1, but contain
valid UTF-8 already, then handle them as UTF-8 and ignore
the encoding. (#351794)
2011-08-15 00:10:30 +01:00
Tim-Philipp Müller
075ceac5e7 configure.ac: Require CVS of GStreamer core and -base (for
Original commit message from CVS:
* configure.ac:
Require CVS of GStreamer core and -base (for
GST_TAG_EXTENDED_COMMENT and gst_tag_parse_extended_comment()).
* ext/taglib/gstid3v2mux.cc:
Write extended comment tags properly (#348762).
* gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
(parse_comment_frame):
Extract COMM frames into extended comments, which makes it
easier to properly retain the description bit of the tag
and maintain this information when re-tagging (#348762).
2011-08-15 00:10:29 +01:00
Tim-Philipp Müller
2444a6459b tag: id3v2: Extract frames for ID3v2 versions prior to ID3v2.3.0 properly as well, and add the version to...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2.c:
(id3demux_add_id3v2_frame_blob_to_taglist):
Extract frames for ID3v2 versions prior to ID3v2.3.0 properly as
well, and add the version to the blob's buffer caps, since that
information will be needed for deserialisation later on (#348644).
2011-08-15 00:10:29 +01:00
Tim-Philipp Müller
3f1bc48d0b tag: id3v2: On second thought, it might be wiser and more efficient not to do tag registration from a streaming th...
Original commit message from CVS:
* gst-libs/gst/tag/gstid3demux.c: (plugin_init):
* gst-libs/gst/tag/id3v2.c:
(id3demux_add_id3v2_frame_blob_to_taglist):
* gst-libs/gst/tag/id3v2.h:
On second thought, it might be wiser and more efficient
not to do tag registration from a streaming thread.
2011-08-15 00:10:29 +01:00
Tim-Philipp Müller
ba3a9d3b9d tag: id3v2: Put ID3v2 frames we can't parse as binary blobs into private tags, so that they are not lost ...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2.c:
(id3demux_add_id3v2_frame_blob_to_taglist),
(id3demux_id3v2_frames_to_tag_list):
Put ID3v2 frames we can't parse as binary blobs into private
tags, so that they are not lost when retagging, at least once
id3v2mux has been taught to re-inject those frames again.
See bug #334375.
2011-08-15 00:10:29 +01:00