Commit graph

420 commits

Author SHA1 Message Date
Nicolas Dufresne 6ba8d385e3 Revert "theoradec: Disable usage of crop meta"
This reverts commit da52868f46.
2015-03-24 15:47:20 -04:00
Nicolas Dufresne da52868f46 theoradec: Disable usage of crop meta
This is a temporary workaround that simply disables usage of crop
meta for now.

https://bugzilla.gnome.org/show_bug.cgi?id=741030
2015-03-24 14:36:12 -04:00
Jan Schmidt 9a541157cf theoradec: Fix decoding in the presence of GstVideoCropMeta
Store the video info of the internal frame decode width/height
separate to the exposed (cropped) frame info, so that it can be
used for mapping the downstream allocated video frame buffer correctly
when using GstVideoCropMeta.

Fixes playback of files with sizes that aren't a multiple of 16-pixels
width or height.

https://bugzilla.gnome.org/show_bug.cgi?id=741030
2015-03-12 22:38:37 +11:00
Jan Schmidt f852f3bc75 theora: If no header packets in stream, look for them in the caps
Makes theora work in cases where the header packets are only in the caps
(because theoradec was connected to oggdemux late and missed the
beginning of the stream)
2015-02-06 04:05:27 +11:00
Jan Schmidt 615118dea8 theora: Remove FIXME and return GST_CUSTOM_FLOW_DROP for header packet handling
This FIXME is easily fixed :)
2015-02-06 04:05:27 +11:00
Edward Hervey 8810ada4cd theoraenc: Remove unneeded check
running timestamps are guaranteed to be positive and valid since the
GstVideoEncoder base class will clip incoming buffers

CID #1139797
2014-06-09 10:53:03 +02:00
Tim-Philipp Müller bcb8068e27 docs: remove outdated and pointless 'Last reviewed' lines from docs
They are very confusing for people, and more often than not
also just not very accurate. Seeing 'last reviewed: 2005' in
your docs is not very confidence-inspiring. Let's just remove
those comments.
2014-04-26 23:28:57 +01:00
Vincent Penquerc'h e7c261ff31 theoraenc: fix comparison to unset timestamp
Also rejects negative timestamps that aren't GST_CLOCK_TIME_NONE.

Coverity 1139797
2014-04-10 11:06:00 +01:00
Sebastian Dröge 4a37d90e9d theoradec: Use new gst_video_decoder_set_needs_format() API 2013-12-05 11:39:07 +01:00
Sebastian Dröge 1d4cf74e0b theoraparse: Fix event handling
Send CAPS event before any SEGMENT events or any other events
that must come in order after the CAPS event.
2013-11-29 13:33:45 +01:00
Tim-Philipp Müller b1ff48c1a1 docs: remove old 0.10 Since markers
They're just confusing.
2013-11-16 16:10:07 +00:00
Thibault Saunier 508245dfa6 theoraenc: Do nothing when flushing the encoder when no caps were set
In case we receive a flush event before having our caps set, we will
end up trying to create a theora encoder even though we are not ready.
Avoid that situation making sure we are initialized before accepting to
be flushed.

https://bugzilla.gnome.org/show_bug.cgi?id=709858
2013-10-14 17:49:59 -03:00
Sebastian Dröge 5bd27953b4 theora: Use new video codec base classes' flush vfunc 2013-08-15 13:26:39 +02:00
Sebastian Dröge 239b623a9c theoraenc: Clean up handling of reset/flushing/start/stop 2013-07-25 13:31:07 +02:00
Sebastian Dröge 775aa4100b theoradec: Clean up handling of reset/flushing/start/stop 2013-07-25 13:29:22 +02:00
Sebastian Dröge e39fa41d74 theoradec: Require caps to be set before data flow happens 2013-05-27 13:04:25 +02:00
Sebastian Dröge 4f52ad38e4 theoradec: Set DECODE_ONLY flag on all header packets 2013-05-09 10:40:19 +02:00
Sebastian Dröge ef6a2a6c14 theoraenc: Don't call gst_buffer_fill() for empty Theora packets
gst_buffer_fill() does not like a NULL source data pointer.
2013-05-07 10:16:48 +02:00
Sebastian Dröge f3b6548f09 theoraenc: Fix error handling when reading or writing multipass cache data fails 2013-05-07 10:13:18 +02:00
Sebastian Dröge 948a4a3632 gst: Add better support for static plugins 2013-04-15 15:52:58 +02:00
Wim Taymans f15bc6835b theoradec: handle empty adapter
Should not be empty but might be when we actually pass and decode the 0 packets
later.
2013-03-31 18:31:36 +02:00
Vincent Penquerc'h da673880eb theoraenc: do not reset the encoder when we need a keyframe
Instead, remember we need a keyframe, and we will force the encoder
to emit one next time we submit a new frame.
Since libtheora does not have an API to request a keyframe, we reset
the max keyframe interval to 1 temporarily.

This has the advantage that the rate control keeps its history,
and that the encoder won't choose different quant tables or
somesuch, thus requiring new streamheaders (although this is
probably only a theoretical possibility). Should also be a
bit faster than resetting the encoder.

https://bugzilla.gnome.org/show_bug.cgi?id=663350
2013-03-31 15:45:26 +01:00
Tim-Philipp Müller 13b8b35373 theora: small GValue optimisations
No need to copy buffers we put into the streamheader any more
now that we don't put caps on buffers any more, so there's no
danger of a refcount cycle.
2013-03-03 17:42:22 +00:00
Sebastian Dröge d9b25afe71 ext: Fix some compilation errors caused by circular header includes 2012-12-12 17:22:31 +00:00
Tim-Philipp Müller 5f59b4f7ee Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 23:05:09 +00:00
Sebastian Dröge 3c1041d5eb Revert "gst: Add better support for static plugins"
This reverts commit d2d79e3bc2,
which was accidentially pushed.
2012-10-24 13:26:26 +02:00
Sebastian Dröge d2d79e3bc2 gst: Add better support for static plugins 2012-10-24 12:10:44 +02:00
Tim-Philipp Müller 224fb90469 theora, app: use gst_element_class_set_static_metadata()
Avoids string copies.
2012-10-17 16:54:14 +01:00
Mark Nauwelaerts f7c247b6a3 replace gst_element_class_set_details_simple with gst_element_class_set_metadata 2012-09-14 17:02:59 +02:00
Mark Nauwelaerts b80f5e53c4 theoradec: reset freed input and output states
Conflicts:

	ext/theora/gsttheoradec.c
2012-08-28 14:31:06 +02:00
Sebastian Dröge 5989d75e10 theoradec: Use new video decoder tag API 2012-08-09 16:09:46 +02:00
Olivier Crête e24196ae28 theoradec: Drop ignored headers
Instead of finishing an empty frame, call drop_frame as we're
ignoring the header frame.
2012-08-07 13:58:58 -07:00
Sebastian Dröge 99d73c94e9 tag: Update for taglist/tag event API changes 2012-07-28 00:35:02 +02:00
Vivia Nikolaidou 6830a7f744 theoraenc: Call video_encoder_negotiate() once configured 2012-07-24 20:42:49 +02:00
Sebastian Dröge aa21a162d7 theora: Update for video base classes API changes 2012-07-23 10:19:16 +02:00
Sebastian Dröge ca928f3916 theoraenc: Use base class functions to allocate output buffers 2012-07-23 09:45:11 +02:00
Edward Hervey 0cc8445cfa theoradec: Call video_decoder_negotiate() once configured 2012-07-18 18:17:57 +02:00
Wim Taymans 53fc1f3fca update for query api changes 2012-07-06 11:50:44 +02:00
Wim Taymans 177fd005ab update for query api changes 2012-07-06 11:23:48 +02:00
Wim Taymans bc5ba349b7 update for allocation query changes 2012-07-06 11:05:09 +02:00
Tim-Philipp Müller b381af7d2d theoraenc: clean up some property descriptions
We now require a sufficiently-recent libtheora.
2012-06-28 23:07:16 +01:00
Jan Schmidt 30c9bb709b theoradec: Remove use of NEED_DATA
Remove the confusing internal-only use of
the GST_VIDEO_DECODER_FLOW_NEED_DATA return code.
2012-06-17 12:42:08 +10:00
Jan Schmidt 2fbb803d85 theoradec: Always inform base class when dropping frames
Partially fixes backwards playback. Informing the base class
of the dropped frame lets it manage the timestamping and events
better.
2012-06-13 03:17:27 +10:00
Vincent Penquerc'h 03ef88d7da theoradec: fix frame leaks 2012-06-07 13:36:35 +01:00
Vincent Penquerc'h d4b8778299 theoradec: fix video state leaks 2012-06-07 11:23:23 +01:00
Wim Taymans a2172bdb4b update for tag event change 2012-06-06 13:05:47 +02:00
Thiago Santos 81b914a61f theoraenc: do not use %zu, it is C99
Cast the variables instead and fallback to %u
2012-05-31 18:55:32 -03:00
Thiago Santos 772e3d514d theoraenc: fix printf format variable 2012-05-31 18:28:14 -03:00
Sreerenj Balachandran 663abda778 theoradec: remove usless checking of return val.
fixes https://bugzilla.gnome.org/show_bug.cgi?id=676525
2012-05-24 11:12:26 +02:00
Sreerenj Balachandran d9ec99e598 theoradec: remove the nonuse parameter from handle_type_packet() method 2012-05-23 10:16:25 +02:00