Commit graph

269 commits

Author SHA1 Message Date
Wim Taymans
f1fdf5d3e4 theoradec: small cleanups 2009-12-09 16:55:52 +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
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
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
Tim-Philipp Müller
34e6718da9 theoradec: printf format fix 2009-11-05 23:34:10 +00:00
David Schleef
61d08884d3 theora: Convert theoraparse to libtheora 1.0 API 2009-10-23 17:49:48 -07: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
13ab7e7929 theora: fixes warnings on macosx snow leopard 2009-10-09 18:52:12 +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
Jan Schmidt
39c21352e9 theoraenc: Fix a string leak in _getcaps() 2009-09-12 02:24:49 +01: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
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
David Schleef
f1e142ac9d theora: Convert theoradec to libtheora 1.0 API 2009-08-06 13:45:56 -07: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
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
Michael Smith
94ca1b005e theoradec: for 4:2:2, use Y42B (planar) rather than a packed format. 2009-05-18 22:34:22 -07:00
Sebastian Dröge
bcd0aee3f5 theoraenc: Implement Preset interface 2009-05-15 16:27:40 +02:00
Christian Schaller
705e7750c5 Add ranks to the Oggmuxer, Vorbis encoder and Theora encoder 2009-05-12 12:17:55 +01: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
Olivier Crete
c628641880 theoraenc: implement upstream keyframe force
Implement handling of upstream keyframe forcing.
Update the design documents too.
Fixes #578656
2009-04-14 18:21:45 +02:00
Olivier Crete
d0c3682627 theoraenc: factor out keyframe forcing
See #578656
2009-04-14 18:21:45 +02:00
Edward Hervey
219fe22293 theoradec: return GST_CLOCK_TIME_NONE for negative framecounts.
This fixes most seeking issues when used with gnonlin.
Fixes #543591
2009-04-04 15:47:17 +02:00
Edward Hervey
b7fdb7c6d7 theoradec: Use GST_CLOCK_TIME_NONE for invalid positions. Fixes #543591
The problem was that previously we didn't check whether _theora_granule_frame
returned a negative framecount or not, resulting in bogus timestamps.
2009-03-23 11:38:53 +01:00
Wim Taymans
9def0d8c61 theoraparse: be smarter when queuing headers
Look at the first byte of the buffer data (if we can) to decide if the packet is
a header packet or not instead of counting packets.
2009-03-13 15:27:51 +01:00
Jan Schmidt
e7d4250fc3 theoradec: Avoid an unnecessary memory allocation in vorbiscomment handling. 2009-03-13 11:48:28 +00:00
Wim Taymans
fac1d4cc09 theoradec: parse and use codec_data in the caps
Parse the codec_data in the caps and use this as the headers.
Fixes #574169.
2009-03-06 19:02:58 +01:00
Sebastian Dröge
2ab2bbd82c theoraparse: Use the correct unref functions 2009-02-22 19:19:04 +01:00
Benjamin M. Schwartz
d8a33f094c theoraenc: Add property for speed level control
Add property "speed-level" to control the amount of motion searching
the encoder does.  This is only available in libtheora >= 1.0 and
will silently fail with earlier libraries.  Fixes: #572275.

Signed-off-by: David Schleef <ds@schleef.org>
2009-02-19 12:38:57 -08:00
Wim Taymans
64b20fd7b5 Use rounded values for image strides and sizes
Round up the height before calculating the expected size and
strides of the output image.
2009-01-23 11:27:16 +01:00
Wim Taymans
f93fcafe64 ext/theora/: Parse segment events.
Original commit message from CVS:
* ext/theora/gsttheoraenc.h:
* ext/theora/theoraenc.c: (gst_theora_enc_init),
(theora_buffer_from_packet), (theora_push_packet),
(theora_enc_sink_event), (theora_enc_is_discontinuous),
(theora_enc_chain):
Parse segment events.
Pass incomming buffer timestamps to outgoing buffers.
Use the running_time to construct the granulepos.
Fixes #562163.
2008-11-25 15:14:30 +00:00
Wim Taymans
68eb1421af ext/theora/: Copy seqnum.
Original commit message from CVS:
* ext/theora/gsttheoradec.h:
* ext/theora/theoradec.c: (gst_theora_dec_init),
(gst_theora_dec_reset), (theora_dec_src_event),
(theora_dec_sink_event), (theora_handle_type_packet):
Copy seqnum.
Keep events in a pending list, like vorbisdec, instead of trying
to construct a segment event ourselves.
* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_reset),
(vorbis_dec_src_event), (vorbis_dec_sink_event):
* ext/vorbis/vorbisdec.h:
Copy seqnum.
2008-11-04 18:17:24 +00:00
Stefan Kost
2cd4c7e2b9 Don't install static libs for plugins. Fixes #550851 for base.
Original commit message from CVS:
* ext/alsa/Makefile.am:
* ext/cdparanoia/Makefile.am:
* ext/gio/Makefile.am:
* ext/gnomevfs/Makefile.am:
* ext/libvisual/Makefile.am:
* ext/ogg/Makefile.am:
* ext/pango/Makefile.am:
* ext/theora/Makefile.am:
* ext/vorbis/Makefile.am:
* gst/adder/Makefile.am:
* gst/audioconvert/Makefile.am:
* gst/audiorate/Makefile.am:
* gst/audioresample/Makefile.am:
* gst/audiotestsrc/Makefile.am:
* gst/ffmpegcolorspace/Makefile.am:
* gst/gdp/Makefile.am:
* gst/playback/Makefile.am:
* gst/subparse/Makefile.am:
* gst/tcp/Makefile.am:
* gst/typefind/Makefile.am:
* gst/videorate/Makefile.am:
* gst/videoscale/Makefile.am:
* gst/videotestsrc/Makefile.am:
* gst/volume/Makefile.am:
* sys/v4l/Makefile.am:
* sys/ximage/Makefile.am:
* sys/xvimage/Makefile.am:
Don't install static libs for plugins. Fixes #550851 for base.
2008-10-16 15:07:00 +00:00
Edward Hervey
a0e3174c88 ext/theora/theoradec.c: Fix build on macosx.
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_dec_decode_buffer):
Fix build on macosx.
2008-10-14 11:13:59 +00:00
Robin Stocker
cf5c8e426d ext/theora/: Parse input caps and make the PAR override the encoded PAR when specified by a container. Fixes #555699.
Original commit message from CVS:
Based on patch by: Robin Stocker <robin at nibor dot org>
* ext/theora/gsttheoradec.h:
* ext/theora/theoradec.c: (gst_theora_dec_init),
(theora_dec_setcaps), (theora_handle_type_packet),
(theora_dec_decode_buffer), (theora_dec_change_state):
Parse input caps and make the PAR override the encoded PAR when
specified by a container. Fixes #555699.
2008-10-13 11:36:13 +00:00
ogg.k.ogg.k
6b3fb42a47 ext/theora/theoraparse.c: Set the BOS flag on the BOS packet. Fixes #553244.
Original commit message from CVS:
Patch by: ogg.k.ogg.k <ogg dot k dot ogg dot k at googlemail dot com>
* ext/theora/theoraparse.c: (theora_parse_set_streamheader):
Set the BOS flag on the BOS packet. Fixes #553244.
2008-09-25 10:46:00 +00:00
David Schleef
23ca2ae3b1 ext/theora/theoraenc.c: Remove the 2000 kbit limit to bitrate, since it has no basis in libtheora.
Original commit message from CVS:
* ext/theora/theoraenc.c: Remove the 2000 kbit limit to bitrate,
since it has no basis in libtheora.
2008-08-13 00:59:07 +00:00
Stefan Kost
2b33c755b6 Cleanup Plugin docs. Link to signals and properties. Fix sub-section titles. Drop mentining that all our example pipe...
Original commit message from CVS:
* docs/plugins/gst-plugins-base-plugins-docs.sgml:
* docs/plugins/gst-plugins-base-plugins-overrides.txt:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
* docs/plugins/gst-plugins-base-plugins.args:
* docs/plugins/gst-plugins-base-plugins.hierarchy:
* docs/plugins/gst-plugins-base-plugins.interfaces:
* docs/plugins/gst-plugins-base-plugins.prerequisites:
* docs/plugins/gst-plugins-base-plugins.signals:
* docs/plugins/inspect/plugin-adder.xml:
* docs/plugins/inspect/plugin-alsa.xml:
* docs/plugins/inspect/plugin-audioconvert.xml:
* docs/plugins/inspect/plugin-audiorate.xml:
* docs/plugins/inspect/plugin-audioresample.xml:
* docs/plugins/inspect/plugin-audiotestsrc.xml:
* docs/plugins/inspect/plugin-cdparanoia.xml:
* docs/plugins/inspect/plugin-decodebin.xml:
* docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
* docs/plugins/inspect/plugin-gdp.xml:
* docs/plugins/inspect/plugin-gnomevfs.xml:
* docs/plugins/inspect/plugin-libvisual.xml:
* docs/plugins/inspect/plugin-ogg.xml:
* docs/plugins/inspect/plugin-pango.xml:
* docs/plugins/inspect/plugin-playback.xml:
* docs/plugins/inspect/plugin-queue2.xml:
* docs/plugins/inspect/plugin-subparse.xml:
* docs/plugins/inspect/plugin-tcp.xml:
* docs/plugins/inspect/plugin-theora.xml:
* docs/plugins/inspect/plugin-typefindfunctions.xml:
* docs/plugins/inspect/plugin-uridecodebin.xml:
* docs/plugins/inspect/plugin-video4linux.xml:
* docs/plugins/inspect/plugin-videorate.xml:
* docs/plugins/inspect/plugin-videoscale.xml:
* docs/plugins/inspect/plugin-videotestsrc.xml:
* docs/plugins/inspect/plugin-volume.xml:
* docs/plugins/inspect/plugin-vorbis.xml:
* docs/plugins/inspect/plugin-ximagesink.xml:
* docs/plugins/inspect/plugin-xvimagesink.xml:
* ext/alsa/gstalsamixer.c:
* ext/alsa/gstalsasink.c:
* ext/alsa/gstalsasrc.c:
* ext/gio/gstgiosink.c:
* ext/gio/gstgiosrc.c:
* ext/gio/gstgiostreamsink.c:
* ext/gio/gstgiostreamsrc.c:
* ext/gnomevfs/gstgnomevfssink.c:
* ext/gnomevfs/gstgnomevfssrc.c:
* ext/ogg/gstoggdemux.c:
* ext/ogg/gstoggmux.c:
* ext/pango/gstclockoverlay.c:
* ext/pango/gsttextoverlay.c:
* ext/pango/gsttextrender.c:
* ext/pango/gsttimeoverlay.c:
* ext/theora/theoradec.c:
* ext/theora/theoraenc.c:
* ext/theora/theoraparse.c:
* ext/vorbis/vorbisdec.c:
* ext/vorbis/vorbisenc.c:
* ext/vorbis/vorbisparse.c:
* ext/vorbis/vorbistag.c:
* gst/adder/gstadder.c:
* gst/audioconvert/gstaudioconvert.c:
* gst/audioresample/gstaudioresample.c:
* gst/audiotestsrc/gstaudiotestsrc.c:
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
* gst/gdp/gstgdpdepay.c:
* gst/gdp/gstgdppay.c:
* gst/playback/gstdecodebin2.c:
* gst/playback/gstplaybin.c:
* gst/playback/gstplaybin2.c:
* gst/playback/gstqueue2.c:
* gst/playback/gsturidecodebin.c:
* gst/tcp/gstmultifdsink.c:
* gst/tcp/gsttcpserversink.c:
* gst/videorate/gstvideorate.c:
* gst/videoscale/gstvideoscale.c:
* gst/videotestsrc/gstvideotestsrc.c:
* gst/volume/gstvolume.c:
* sys/ximage/ximagesink.c:
* sys/xvimage/xvimagesink.c:
Cleanup Plugin docs. Link to signals and properties. Fix sub-section
titles. Drop mentining that all our example pipelines are "simple"
pipelines.
2008-07-10 21:06:06 +00:00
Wim Taymans
1a3053b241 Add theoraparse to the docs and fix some docs.
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-base-plugins-docs.sgml:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
* ext/theora/theoraparse.c:
Add theoraparse to the docs and fix some docs.
2008-05-28 16:10:20 +00:00
Michael Smith
0947ecf74c ext/theora/theoradec.c: Cool kids don't divide by zero.
Original commit message from CVS:
* ext/theora/theoradec.c:
Cool kids don't divide by zero.
Treat PAR of x:0 as 1:1.
Fixes #530719.
2008-04-30 17:06:45 +00:00
Wim Taymans
495f45b245 ext/theora/theoradec.c: Don't try to do anything fancy with the return code from pushing an event, it does not have e...
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_handle_type_packet),
(theora_dec_chain):
Don't try to do anything fancy with the return code from pushing an
event, it does not have enough information to turn it into a
GST_FLOW_ERROR.
2008-04-03 10:22:33 +00:00
Sebastian Dröge
49deb0c05d Use G_PARAM_STATIC_STRINGS everywhere for GParamSpecs that use static strings (i.e. all). This gives us less memory u...
Original commit message from CVS:
* configure.ac:
* ext/alsa/gstalsamixerelement.c:
(gst_alsa_mixer_element_class_init):
* ext/alsa/gstalsasink.c: (gst_alsasink_class_init):
* ext/alsa/gstalsasrc.c: (gst_alsasrc_class_init):
* ext/cdparanoia/gstcdparanoiasrc.c:
(gst_cd_paranoia_src_class_init):
* ext/gio/gstgiosink.c: (gst_gio_sink_class_init):
* ext/gio/gstgiosrc.c: (gst_gio_src_class_init):
* ext/gio/gstgiostreamsink.c: (gst_gio_stream_sink_class_init):
* ext/gio/gstgiostreamsrc.c: (gst_gio_stream_src_class_init):
* ext/gnomevfs/gstgnomevfssink.c: (gst_gnome_vfs_sink_class_init):
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_class_init):
* ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init):
* ext/pango/gsttextoverlay.c: (gst_text_overlay_class_init):
* ext/pango/gsttextrender.c: (gst_text_render_class_init):
* ext/theora/theoradec.c: (gst_theora_dec_class_init):
* ext/theora/theoraenc.c: (gst_theora_enc_class_init):
* ext/theora/theoraparse.c: (gst_theora_parse_class_init):
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_class_init):
* gst-libs/gst/audio/gstaudiofiltertemplate.c:
(gst_audio_filter_template_class_init):
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_class_init):
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_class_init):
* gst-libs/gst/cdda/gstcddabasesrc.c:
(gst_cdda_base_src_class_init):
* gst-libs/gst/interfaces/mixertrack.c:
(gst_mixer_track_class_init):
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_class_init):
* gst-libs/gst/rtp/gstbasertppayload.c:
(gst_basertppayload_class_init):
* gst/audioconvert/gstaudioconvert.c:
(gst_audio_convert_class_init):
* gst/audiorate/gstaudiorate.c: (gst_audio_rate_class_init):
* gst/audioresample/gstaudioresample.c:
(gst_audioresample_class_init):
* gst/audiotestsrc/gstaudiotestsrc.c:
(gst_audio_test_src_class_init):
* gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init):
* gst/playback/gstdecodebin2.c: (gst_decode_bin_class_init):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(preroll_unlinked):
* gst/playback/gstplaybin.c: (gst_play_bin_class_init):
* gst/playback/gstplaybin2.c: (gst_play_bin_class_init):
* gst/playback/gstplaysink.c: (gst_play_sink_class_init):
* gst/playback/gstqueue2.c: (gst_queue_class_init):
* gst/playback/gststreaminfo.c: (gst_stream_info_class_init):
* gst/playback/gststreamselector.c: (gst_selector_pad_class_init),
(gst_stream_selector_class_init):
* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_class_init):
* gst/subparse/gstsubparse.c: (gst_sub_parse_class_init):
* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init):
* gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_class_init):
* gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_class_init):
* gst/tcp/gsttcpserversink.c: (gst_tcp_server_sink_class_init):
* gst/tcp/gsttcpserversrc.c: (gst_tcp_server_src_class_init):
* gst/videorate/gstvideorate.c: (gst_video_rate_class_init):
* gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init):
* gst/videotestsrc/gstvideotestsrc.c:
(gst_video_test_src_class_init):
* gst/volume/gstvolume.c: (gst_volume_class_init):
* sys/v4l/gstv4lelement.c: (gst_v4lelement_class_init):
* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_class_init):
* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init):
* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init):
* sys/ximage/ximagesink.c: (gst_ximagesink_class_init):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_class_init):
Use G_PARAM_STATIC_STRINGS everywhere for GParamSpecs that use
static strings (i.e. all). This gives us less memory usage,
fewer allocations and thus less memory defragmentation. Depend
on core CVS for this. Fixes bug #523806.
2008-03-22 15:00:53 +00:00
Sebastian Dröge
13752e7fd8 ext/theora/theoraparse.c: Fix long description of the theora parser to be more verbose than just the type name.
Original commit message from CVS:
* ext/theora/theoraparse.c:
Fix long description of the theora parser to be more verbose than just
the type name.
2008-02-11 09:48:03 +00:00
Michael Smith
339a360a96 ext/theora/theoradec.c: Increment granulepos for new-bitstream versions appropriately.
Original commit message from CVS:
* ext/theora/theoradec.c: (_theora_granule_frame),
(_inc_granulepos):
Increment granulepos for new-bitstream versions appropriately.
Fixes #514623.
2008-02-06 13:35:58 +00:00
Jan Schmidt
7ff360cea9 ext/theora/: Take a 2nd stab at handling libtheora granulepos changes in the decoder and parser by inspecting the bit...
Original commit message from CVS:
* ext/theora/gsttheoradec.h:
* ext/theora/gsttheoraparse.h:
* ext/theora/theoradec.c:
* ext/theora/theoraparse.c:
Take a 2nd stab at handling libtheora granulepos changes in the decoder
and parser by inspecting the bitstream version of the incoming data.
2008-01-14 17:00:03 +00:00
Michael Smith
57fab036b1 ext/theora/theoradec.c: Adapt for post-alpha meaning of granulepos, when we have a newer version of libtheora.
Original commit message from CVS:
* ext/theora/theoradec.c: (gst_theora_dec_class_init),
(_theora_granule_frame), (_theora_granule_start_time),
(theora_dec_sink_convert), (theora_dec_decode_buffer):
Adapt for post-alpha meaning of granulepos, when we
have a newer version of libtheora.
* ext/theora/theoraenc.c: (gst_theora_enc_class_init),
(theora_enc_get_ogg_packet_end_time), (theora_enc_sink_event),
(theora_enc_is_discontinuous), (theora_enc_chain):
Likewise.
* tests/check/Makefile.am:
Link libtheora into theoraenc test so we can check which version of
libtheora we're testing against.
* tests/check/pipelines/theoraenc.c: (check_libtheora),
(check_buffer_granulepos),
(check_buffer_granulepos_from_starttime), (GST_START_TEST),
(theoraenc_suite):
Adapt tests to check the values that are now defined for theora; make
the tests backwards-adapt the passed values if we're running against an
old libtheora.
Fixes #497964
2008-01-11 15:48:11 +00:00
Wim Taymans
80c1e3d27c Add draft design for forcing keyframes in encoders and implement in theoraenc.
Original commit message from CVS:
* docs/design/draft-keyframe-force.txt:
* ext/theora/theoraenc.c: (theora_enc_sink_event),
(theora_enc_chain):
Add draft design for forcing keyframes in encoders and implement in
theoraenc.
2007-06-05 15:59:00 +00:00
Michael Smith
b48b9fdc19 ext/theora/theoradec.c: Don't look inside 0-length packets (which indicate duplicated frames)
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_handle_data_packet):
Don't look inside 0-length packets (which indicate duplicated
frames)
2007-05-21 15:24:21 +00:00
Wim Taymans
9b188adc27 Small cleanups.
Original commit message from CVS:
* ext/cdparanoia/gstcdparanoiasrc.c:
(gst_cd_paranoia_src_read_sector):
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create):
Small cleanups.
* ext/theora/theoradec.c: (theora_dec_sink_event):
Fix typo.
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_set_gst_timestamp):
Add some FIXME
* gst/playback/gstdecodebin.c: (queue_underrun_cb):
And some debug info when a FIXME path is hit.
2007-05-21 10:25:44 +00:00
Michael Smith
9b7339170b ext/theora/theoradec.c: gst_pad_push_event() does not return a GstFlowReturn!
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_handle_type_packet):
gst_pad_push_event() does not return a GstFlowReturn!
2007-05-09 11:54:32 +00:00
Michael Smith
db624febb8 ext/theora/: Don't push events (newsegment, tags) before initialising the decoder.
Original commit message from CVS:
* ext/theora/gsttheoradec.h:
* ext/theora/theoradec.c: (gst_theora_dec_reset),
(theora_dec_sink_event), (theora_handle_comment_packet),
(theora_handle_type_packet), (theora_dec_change_state):
Don't push events (newsegment, tags) before initialising the
decoder.
This is neccesary for seeking to work correctly in gnonlin.
2007-05-07 11:43:31 +00:00
Julien Moutte
d299d1c063 ext/theora/theoradec.c: Calculate buffer duration correctly to generate a perfect stream (#433888).
Original commit message from CVS:
2007-04-27  Julien MOUTTE  <julien@moutte.net>

* ext/theora/theoradec.c: (_theora_granule_time),
(theora_dec_push_forward), (theora_handle_data_packet),
(theora_dec_decode_buffer): Calculate buffer duration correctly
to generate a perfect stream (#433888).
* gst/audioresample/gstaudioresample.c:
(audioresample_check_discont): Glib provides ABS.
2007-04-27 15:33:46 +00:00
Michael Smith
38db14cb22 ext/theora/: Track initialisation state; don't try to use encoder state if we're not initialised (it'll segfault).
Original commit message from CVS:
* ext/theora/gsttheoraenc.h:
* ext/theora/theoraenc.c: (theora_enc_sink_setcaps),
(theora_enc_sink_event), (theora_enc_change_state):
Track initialisation state; don't try to use encoder state if we're
not initialised (it'll segfault).
2007-04-19 16:58:53 +00:00
Thomas Vander Stichele
096abcf3d6 ext/theora/theoraenc.c (theora_buffer_from_packet, theora_enc_chain): Don't use pad_alloc_buffer_and_set_caps to crea...
Original commit message from CVS:
* ext/theora/theoraenc.c (theora_buffer_from_packet, theora_enc_chain):
Don't use pad_alloc_buffer_and_set_caps to create a small header
packet, or, worse, to create a big temporary video buffer using the
src pad.
2007-04-15 14:35:53 +00:00
Jan Schmidt
9b2d949a0f ext/theora/theoradec.c: Fix misleading comment.
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_dec_sink_event):
Fix misleading comment.
2007-04-13 11:42:34 +00:00
Michael Smith
7292973429 ext/theora/theoradec.c: Since the plugin doesn't support anything other than 4:2:0 right now, post an error and fail ...
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_handle_type_packet):
Since the plugin doesn't support anything other than 4:2:0 right
now, post an error and fail if we get something else. Won't matter
until libtheora supports the other pixel formats, but hopefully
that'll be soon...
2007-03-12 23:29:07 +00:00
Tim-Philipp Müller
a37616d4df ext/theora/theoraenc.c: Check return value of theora_encode_header(), or we might try to allocate a random number of ...
Original commit message from CVS:
* ext/theora/theoraenc.c: (theora_enc_chain):
Check return value of theora_encode_header(), or we might try to
allocate a random number of bytes. theora_encode_header() can fail
if libtheora has been compiled with encoding support disabled.
Fixes #398110.
2007-01-29 18:14:25 +00:00
Wim Taymans
62ef7da73b Small documentation updates/fixes
Original commit message from CVS:
* ext/theora/theoradec.c:
* ext/vorbis/vorbisdec.c:
* gst-libs/gst/audio/gstringbuffer.c:
(gst_ring_buffer_commit_full):
* gst-libs/gst/audio/gstringbuffer.h:
* gst-libs/gst/rtp/gstrtpbuffer.c:
* gst-libs/gst/tag/gstvorbistag.c:
Small documentation updates/fixes
2007-01-09 11:15:57 +00:00
Thomas Vander Stichele
95ada43982 configure.ac: split out GST_CFLAGS into GST_PLUGINS_BASE_CFLAGS and GST_CFLAGS so that GST_BASE_CFLAGS can go inbetwe...
Original commit message from CVS:
* configure.ac:
split out GST_CFLAGS into GST_PLUGINS_BASE_CFLAGS and GST_CFLAGS
so that GST_BASE_CFLAGS can go inbetween them, making sure
we use uninstalled gst-libs headers
* docs/libs/Makefile.am:
* ext/alsa/Makefile.am:
* ext/cdparanoia/Makefile.am:
* ext/gnomevfs/Makefile.am:
* ext/libvisual/Makefile.am:
* ext/ogg/Makefile.am:
* ext/theora/Makefile.am:
* ext/vorbis/Makefile.am:
* gst-libs/gst/audio/Makefile.am:
* gst-libs/gst/cdda/Makefile.am:
* gst-libs/gst/interfaces/Makefile.am:
* gst-libs/gst/riff/Makefile.am:
* gst-libs/gst/rtp/Makefile.am:
* gst-libs/gst/tag/Makefile.am:
* gst/adder/Makefile.am:
* gst/audioconvert/Makefile.am:
* gst/audiorate/Makefile.am:
* gst/audioresample/Makefile.am:
* gst/playback/Makefile.am:
* gst/tcp/Makefile.am:
* gst/videoscale/Makefile.am:
* gst/volume/Makefile.am:
* sys/ximage/Makefile.am:
* sys/xvimage/Makefile.am:
* tests/icles/Makefile.am:
adapt
2007-01-04 12:49:48 +00:00
Michael Smith
0230754d77 tests/check/pipelines/theoraenc.c: It would be very bad if, after a discont buffer, we thought every single following...
Original commit message from CVS:
* tests/check/pipelines/theoraenc.c: (check_buffer_granulepos),
(GST_START_TEST):
It would be very bad if, after a discont buffer, we thought every
single following buffer was also discont. So, add to the test to
ensure that this isn't the case.

* ext/theora/theoraenc.c: (theora_enc_is_discontinuous):
... it was the case. So fix it.
2006-11-30 12:50:42 +00:00
Wim Taymans
0a5978dfaf ext/theora/theoradec.c: Implement reverse playback.
Original commit message from CVS:
* ext/theora/theoradec.c: (gst_theora_dec_reset),
(theora_dec_push_forward), (theora_dec_push_reverse),
(theora_handle_data_packet), (theora_dec_decode_buffer),
(theora_dec_flush_decode), (theora_dec_chain_reverse),
(theora_dec_chain_forward), (theora_dec_chain):
Implement reverse playback.
* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_reset),
(vorbis_dec_decode_buffer), (vorbis_dec_flush_decode),
(vorbis_dec_chain_forward):
Clear buffers used for reverse playback in _reset.
No need to set the eos flag, we clip samples using the segment.
2006-11-26 16:39:41 +00:00
Michael Smith
32500268de ext/theora/: Mark discontinuities of > 3/4 of a frame, reinit encoder.
Original commit message from CVS:
* ext/theora/gsttheoraenc.h:
* ext/theora/theoraenc.c: (gst_theora_enc_init),
(theora_enc_reset), (theora_enc_clear), (theora_enc_sink_setcaps),
(theora_buffer_from_packet), (theora_enc_is_discontinuous),
(theora_enc_chain), (theora_enc_change_state):
Mark discontinuities of > 3/4 of a frame, reinit encoder.

* tests/check/pipelines/theoraenc.c: (check_buffer_granulepos),
(GST_START_TEST), (theoraenc_suite):
Enable discontinuity test, fix it.
2006-11-22 14:34:03 +00:00
Wim Taymans
38a28fda01 ext/theora/: Document and partially implement an algorithm for doing reverse playback of theora video.
Original commit message from CVS:
* ext/theora/gsttheoradec.h:
* ext/theora/theoradec.c: (gst_theora_dec_init),
(theora_dec_sink_event), (theora_dec_chain_forward),
(theora_dec_flush_decode), (theora_dec_chain_reverse),
(theora_dec_chain):
Document and partially implement an algorithm for doing reverse playback
of theora video.
2006-11-02 15:06:36 +00:00
Michael Smith
d24ba074b7 ext/theora/theoradec.c: Zero byte theora packets are valid and well-defined; don't warn on them.
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_dec_chain):
Zero byte theora packets are valid and well-defined; don't warn on
them.
2006-10-06 12:57:10 +00:00
Thomas Vander Stichele
280e2ca67b releasing 0.10.10
Original commit message from CVS:
releasing 0.10.10
2006-09-14 20:09:19 +00:00
Andy Wingo
b2f550b9c7 ext/theora/gsttheoraparse.h: ext/theora/theoraparse.c (gst_theora_parse_class_init) (theora_parse_dispose, theora_par...
Original commit message from CVS:
2006-08-05  Andy Wingo  <wingo@pobox.com>

* ext/theora/gsttheoraparse.h:
* ext/theora/theoraparse.c (gst_theora_parse_class_init)
(theora_parse_dispose, theora_parse_set_property)
(theora_parse_get_property, theora_parse_munge_granulepos)
(theora_parse_push_buffer, theora_parse_change_state): Add a
property 'synchronization-points' to fix badly synchronized oggs.
2006-08-05 17:08:05 +00:00
Wim Taymans
5f3f10861e ext/theora/theoradec.c: Better clipping.
Original commit message from CVS:
* ext/theora/theoradec.c: (clip_buffer):
Better clipping.
2006-07-21 11:03:28 +00:00
Andy Wingo
7e6940446a ext/theora/gsttheoraparse.h: ext/theora/theoraparse.c (theora_parse_drain_event_queue) (theora_parse_push_headers, th...
Original commit message from CVS:
2006-07-14  Andy Wingo  <wingo@pobox.com>

* ext/theora/gsttheoraparse.h:
* ext/theora/theoraparse.c (theora_parse_drain_event_queue)
(theora_parse_push_headers, theora_parse_clear_queue)
(theora_parse_drain_queue_prematurely, )
(theora_parse_sink_event, theora_parse_change_state): Queue events
until we initialized our state, like in vorbisparse.
2006-07-14 17:07:08 +00:00
Andy Wingo
a295acae0e theoraparse.c (theora_parse_push_buffer)
Original commit message from CVS:
2006-07-08  Andy Wingo  <wingo@pobox.com>

* theoraparse.c (theora_parse_push_buffer)
(theora_parse_drain_queue_prematurely, theora_parse_drain_queue):
Add some more debugging. Fix granulepos reconstruction in the face
of discontinuities.
2006-07-08 13:48:58 +00:00
Edward Hervey
9dbfbfde27 ext/theora/theoradec.c: Implement clipping for accurate seeking.
Original commit message from CVS:
* ext/theora/theoradec.c: (clip_buffer), (theora_dec_push):
Implement clipping for accurate seeking.
Closes #345225
2006-06-19 09:57:50 +00:00
Thomas Vander Stichele
31c54a6644 further clean up build
Original commit message from CVS:
further clean up build
2006-06-11 14:08:54 +00:00
Michael Smith
ae2f05ffa3 ext/theora/theoraparse.c: Mark DELTA_UNIT on non-keyframes.
Original commit message from CVS:
* ext/theora/theoraparse.c: (theora_parse_drain_queue_prematurely),
(theora_parse_drain_queue):
Mark DELTA_UNIT on non-keyframes.
2006-06-06 11:13:18 +00:00
Stefan Kost
131fb86b4b Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
Original commit message from CVS:
* ext/alsa/gstalsamixerelement.h:
* ext/alsa/gstalsamixeroptions.h:
* ext/alsa/gstalsamixertrack.h:
* ext/gnomevfs/gstgnomevfssink.h:
* ext/gnomevfs/gstgnomevfssrc.h:
* ext/theora/gsttheoradec.h:
* ext/theora/gsttheoraenc.h:
* ext/theora/gsttheoraparse.h:
* ext/vorbis/vorbisparse.h:
* gst-libs/gst/audio/gstaudioclock.h:
* gst-libs/gst/audio/gstaudiofilter.h:
* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
* gst/audioconvert/gstaudioconvert.h:
* gst/audioresample/gstaudioresample.h:
* gst/audiotestsrc/gstaudiotestsrc.h:
* gst/ffmpegcolorspace/gstffmpegcolorspace.h:
* gst/playback/gststreamselector.h:
* gst/tcp/gstmultifdsink.h:
* gst/tcp/gsttcpclientsink.h:
* gst/tcp/gsttcpclientsrc.h:
* gst/tcp/gsttcpserversink.h:
* gst/tcp/gsttcpserversrc.h:
* gst/videorate/gstvideorate.h:
* gst/videoscale/gstvideoscale.h:
* gst/videotestsrc/gstvideotestsrc.h:
* gst/volume/gstvolume.h:
* sys/v4l/gstv4ljpegsrc.h:
* sys/v4l/gstv4lmjpegsink.h:
* sys/v4l/gstv4lmjpegsrc.h:
* sys/v4l/gstv4lsrc.h:
* sys/ximage/ximagesink.h:
* sys/xvimage/xvimagesink.h:
* tests/old/testsuite/alsa/sinesrc.h:
Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
2006-06-01 19:19:51 +00:00
Stefan Kost
377e2be9f3 make more debug catagories static
Original commit message from CVS:
* ext/theora/theoradec.c:
* ext/theora/theoraenc.c:
* ext/theora/theoraparse.c: (gst_theora_parse_class_init):
* gst/audiorate/gstaudiorate.c:
make more debug catagories static
* tests/check/Makefile.am:
* tests/check/elements/adder.c: (message_received),
(test_event_message_received), (GST_START_TEST),
(test_play_twice_message_received), (adder_suite):
added test case for using element twice, extra bonus points for anyone
who can make these test run reliably
2006-05-23 20:38:56 +00:00
Tim-Philipp Müller
90840bc0e0 ext/theora/theoradec.c: Make work with time-stamped input buffers that do not have a granulepos in BUFFER_OFFSET_END ...
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_dec_chain):
Make work with time-stamped input buffers that do not
have a granulepos in BUFFER_OFFSET_END (like theora
buffers coming from matroskademux). Fixes #342448.
2006-05-23 15:18:40 +00:00
Wim Taymans
97e943f681 ext/theora/theoradec.c: Cleanups, add some G_LIKELY.
Original commit message from CVS:
* ext/theora/theoradec.c: (gst_theora_dec_reset),
(theora_dec_src_query), (theora_dec_src_event),
(theora_dec_sink_event), (theora_handle_comment_packet),
(theora_handle_data_packet), (theora_dec_change_state):
Cleanups, add some G_LIKELY.
Use segment helpers instead of our own wrong code.
Clear queued buffers on seek and READY.
* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_reset),
(vorbis_dec_convert), (vorbis_dec_src_query),
(vorbis_dec_src_event), (vorbis_dec_sink_event),
(vorbis_handle_comment_packet), (vorbis_dec_push),
(vorbis_handle_data_packet), (vorbis_dec_chain),
(vorbis_dec_change_state):
* ext/vorbis/vorbisdec.h:
Remove old useless packetno variable.
Do position query properly.
Add some G_LIKELY.
Do cleanup of queued buffers in new helper function
and use it.
2006-05-15 17:42:19 +00:00
Tim-Philipp Müller
d8965c30fb Const-ify GEnumValue and GFlagsValue arrays. Use
Original commit message from CVS:
* ext/pango/gsttextoverlay.c: (gst_text_overlay_valign_get_type),
(gst_text_overlay_halign_get_type),
(gst_text_overlay_wrap_mode_get_type):
* ext/theora/theoradec.c: (theora_handle_type_packet),
(theora_handle_data_packet):
* ext/theora/theoraenc.c: (gst_border_mode_get_type),
(theora_enc_sink_setcaps), (theora_enc_chain):
* gst-libs/gst/cdda/gstcddabasesrc.c:
(gst_cdda_base_src_mode_get_type):
* gst/audiotestsrc/gstaudiotestsrc.c:
(gst_audiostestsrc_wave_get_type):
* gst/playback/gststreaminfo.c: (gst_stream_type_get_type):
* gst/tcp/gstfdset.c: (gst_fdset_mode_get_type):
* gst/tcp/gstmultifdsink.c: (gst_recover_policy_get_type),
(gst_sync_method_get_type), (gst_unit_type_get_type),
(gst_client_status_get_type):
* gst/videoscale/gstvideoscale.c:
(gst_video_scale_method_get_type):
* gst/videotestsrc/gstvideotestsrc.c:
(gst_video_test_src_pattern_get_type):
* gst/videotestsrc/videotestsrc.c: (paint_setup_I420),
(paint_setup_YV12), (paint_setup_YUY2), (paint_setup_UYVY),
(paint_setup_YVYU), (paint_setup_IYU2), (paint_setup_Y41B),
(paint_setup_Y42B), (paint_setup_Y800), (paint_setup_YVU9),
(paint_setup_YUV9), (paint_setup_RGB888), (paint_setup_BGR888),
(paint_setup_RGB565), (paint_setup_xRGB1555):
Const-ify GEnumValue and GFlagsValue arrays. Use
GST_ROUND_UP_* macros instead of home-made ones.
2006-05-09 19:24:46 +00:00