Mark Nauwelaerts
039b608b24
avviddec: only use upstream framerate if really specified
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=704161
2013-12-02 20:21:34 +01:00
Mark Nauwelaerts
fa5865c0cd
avviddec: discard unused input frames
...
... to avoid these piling up in list of pending frames.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693772
2013-11-26 20:57:37 +01:00
Mark Nauwelaerts
2ec4008ea5
avviddec: really release frame at proper time
...
... by also removing it from the pending list of frames,
where it may still be in if it has never been submitted to _finish.
This could happen if is a decode-only frame, or in skipped decoding
situation, ...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693772
2013-11-26 20:55:43 +01:00
Sebastian Dröge
3c77754524
avviddec: Reset some more fields in ::stop()
2013-10-02 12:52:35 +02:00
Sebastian Dröge
5f5b6f465c
avviddec: Don't believe we're negotiated if negotiation failed
...
It can happen that negotiation fails during get_buffer(), but then
we don't retry later and never return NOT_NEGOTIATED upstream...
and instead run into assertions.
2013-10-02 12:52:11 +02:00
Sebastian Dröge
677eaa6692
avviddec: Initialize strides with the ones of avcodec_default_get_buffer() if we ever call it
...
https://bugzilla.gnome.org/show_bug.cgi?id=704769
2013-09-12 13:57:41 +02:00
Sebastian Dröge
1277540b8c
avviddec: Use the correct context for negotiation
...
During get_buffer() it can happen that the main context is not
updated yet and only the context passed here has the correct
width, height, etc.
2013-09-12 12:12:23 +02:00
Sebastian Dröge
faec0142e3
avviddec: Remember initially used stride and don't allow stride changes
...
libav does not allow stride changes currently, fall back to
non-direct rendering here:
https://bugzilla.gnome.org/show_bug.cgi?id=704769
https://bugzilla.libav.org/show_bug.cgi?id=556
2013-09-12 12:11:29 +02:00
Sebastian Dröge
6571196fb8
libav: avcodec_close() also resets fields like the AVCodec
...
We need to reload the defaults for the codec after closing it,
otherwise we can't access codec information like the supported
sample rates and can crash.
https://bugzilla.gnome.org/show_bug.cgi?id=707040
2013-08-29 16:53:28 +02:00
Sebastian Dröge
ae946bab1c
libav: Use new flush vfunc of video codec base classes and remove reset implementations
2013-08-15 15:51:52 +02:00
Olivier Crête
2556cb325a
avviddec: Initialise opaque from the start
...
https://bugzilla.gnome.org/show_bug.cgi?id=693581
2013-07-23 14:01:32 +02:00
Arnaud Vrac
4a2054c6aa
avviddec: increase bottom padding for output frames
...
libav can write slightly after the plane end in some SIMD optimized
functions. The extra padding value needs to be at least 16+stride_align
for each plane, so just increase the bottom padding value for the output
frame.
https://bugzilla.gnome.org/show_bug.cgi?id=694299
2013-07-18 16:24:18 +02:00
Thiago Santos
dce9d85695
avviddec: reset coded_width/_height before trying to open codec
...
If coded_width/_height is supplied, the codec might use it as the
width/height and if it is wrong can lead to segfaults or video
corruption.
This is specially harmful on renegotiation scenarios where the
resolution changed. There seems to be no specific function for reseting
the AV Context in libav, so just set it directly.
https://bugzilla.gnome.org/show_bug.cgi?id=702003
2013-06-11 09:00:49 -03:00
Tim-Philipp Müller
068be939cb
CODEC_ID_* -> AV_CODEC_ID_*
2013-05-06 23:56:22 +01:00
Sebastian Dröge
2d2c9b1aac
avviddec: Enable FRAME based threaded decoding if upstream is not live
...
If upstream is live we don't want FRAME based threaded decoding as
it adds latency.
2013-04-23 14:20:42 +02:00
Siva Chandran P
758d7bf7ea
avvidec: Make sure to store newly set caps after resetting the decoder
...
Otherwise we'll just set the to NULL while resetting the decoder and
don't have them available anymore later.
https://bugzilla.gnome.org/show_bug.cgi?id=697548
2013-04-09 20:44:23 +02:00
Sebastian Dröge
adfdfebc8c
av: Use correct printf format strings for gsize
2012-12-21 11:03:27 +01:00
Sebastian Dröge
022ab84288
av: Fix some memory leaks and misuse of libav API
2012-12-17 16:35:36 +01:00
Sebastian Dröge
21ac746f33
avdec: Improve src template caps
2012-12-12 15:42:09 +00:00
Wim Taymans
4c46f11d5f
libav: fix palette support again
2012-12-12 10:12:22 +01:00
Sebastian Dröge
06de84c747
avviddec: Fix memory leak if we already allocated an output buffer for the frame
2012-12-11 10:34:42 +00:00
Wim Taymans
76b8b8c67f
Revert "avviddec: Fix memory leaks and assertions in error cases if we can't allocate a frame"
...
This reverts commit 47647e1cac
.
Breaks playback when direct rendering is disabled.
The reason is that we set the opaque vaue to NULL and then try to use the NULL
value when we decoded a frame.
2012-12-11 10:24:08 +01:00
Sebastian Dröge
2d7ebf9514
av: Correctly populate the codec context with the defaults
2012-12-05 19:25:37 +01:00
Sebastian Dröge
d840211412
av: Use av_codec_is_{en,de}coder() API instead of private struct fields
2012-12-05 10:52:34 +01:00
Sebastian Dröge
47647e1cac
avviddec: Fix memory leaks and assertions in error cases if we can't allocate a frame
2012-12-04 20:44:58 +01:00
Sebastian Dröge
f5c112990f
av: Port remaining simple bits
2012-12-04 18:36:56 +01:00
Sebastian Dröge
0f206124b6
av: Remove palette support for now
...
It was never ported to the way how paletted color formats work
in 1.0 anyway and the API changed in libav upstream.
2012-12-04 18:36:37 +01:00
Luca Barbato
5f03a7d869
av: update to use AVOption variants.
2012-12-04 18:36:30 +01:00
Sebastian Dröge
c784ec9fa5
av: Put declarations in header files and rename audio codec files
2012-11-19 10:30:37 +01:00
Tim-Philipp Müller
d0ef33d463
Fix FSF address
2012-11-04 00:22:16 +00:00
Alban Browaeys
f1071cc1b1
avviddec: exclude non-video decoders
...
Otherwise audio decoders "ignored", ie blacklisted, end up
registered by avviddec as video decoders.
https://bugzilla.gnome.org/show_bug.cgi?id=685113
2012-09-30 16:24:18 +01:00
Sebastian Dröge
f0d700d5ca
avviddec: Correctly handle 0-sized buffers without crashing
...
Might e.g. be valid for Theora.
2012-09-27 12:20:30 +02:00
Tim-Philipp Müller
787bd57ea1
avviddec: don't try to set invalid latency
...
Avoids warnings when we don't know the latency.
2012-09-25 18:29:08 +01:00
Wim Taymans
aafffb7665
avviddec: improve debug
2012-09-14 13:25:03 +02:00
Nicolas Dufresne
3ca45b8c45
viddec: Set latency base on the number of bframes
2012-09-13 15:48:26 +02:00
Nicolas Dufresne
1f74496b8a
viddec: Cleanup unused has_b_frames flag
2012-09-13 15:48:22 +02:00
Edward Hervey
0f9cc8dac6
libav: Switch to non-deprecated symbols
...
This symbols/enums will all be deprecated in the next releases
2012-09-13 15:23:26 +02:00
Wim Taymans
1e5bfa5215
avviddec: add support for codecs that use reget_buffer
...
Add support for codec that use reget_buffer. In this mode, it reuses the picture
and we need to attach the corresponding input frame to it or else we get the
timestamps wrong.
2012-09-11 13:53:23 +02:00
Edward Hervey
90a8b3fb9f
ext: ffmpeg/gstffmpeg*.[ch] => libav/gstav*.[ch]
2012-09-10 17:53:54 +02:00