Andoni Morales Alastruey
6b49683447
androidmedia: fix access to invalid buffers in the decoding loop
...
Flushing the decoder invalidates all buffers, so it should be done
after quiting the decoding loop. Otherwise we can jump into
"failed_release" and stop everything
https://bugzilla.gnome.org/show_bug.cgi?id=711156
2013-10-30 16:24:17 +01:00
Sebastian Dröge
2b94641a42
amcvideodec: Don't put the level restrictions on the sinkpad caps
...
They tend to be inaccurate and having them in the sinkpad caps
prevents playback of files that would otherwise play fine.
2013-09-12 13:23:28 +02:00
Sebastian Dröge
d065c09684
amcvideodec: Port tiled NV12 conversion to 1.0
2013-09-03 11:06:00 +02:00
Sebastian Dröge
c4e742f428
amcvideodec: Add FIXME comment
2013-09-03 11:06:00 +02:00
Jorge Luis Zapata
48484f04a2
androidmedia: add support for a new qualcomm colorspace
2013-09-03 11:06:00 +02:00
Sebastian Dröge
2e8af6973f
ext: Use new flush vfunc of video codec base classes and remove reset implementations
2013-08-15 15:46:58 +02:00
Xavi Artigas
85c1510d6b
androidmedia: Fix copying of raw video frames on Samsung Galaxy S3 with Exynos 4 SOC
2013-06-20 09:53:41 +02:00
Sebastian Dröge
17699d07e7
androidmedia: Fix string comparison
2013-06-07 14:01:46 +02:00
Chen Jie
a36c9c1cc9
androidmedia: Hacks for HuaweiMediaPad which reports wrong color format
...
COLOR_FormatYCbYCr is reported but it is actually COLOR_TI_FormatYUV420PackedSemiPlanar.
2013-06-07 11:08:52 +02:00
Sebastian Dröge
e66f097f37
androidmedia: Fix indention
2013-05-20 13:24:07 +02:00
Chen Jie
0a90994b99
androidmedia: fix a minor error in COLOR_FormatYUV420Planar converting
...
https://bugzilla.gnome.org/show_bug.cgi?id=700521
2013-05-20 13:23:52 +02:00
Sebastian Dröge
055154fe78
androidmedia: Set parent class in class_init
2013-04-16 16:17:50 +02:00
Sebastian Dröge
7832b9b43f
androidmedia: Handle refcounts of pad templates correctly
...
gst_pad_template_new() does not take ownership of caps anymore and
gst_element_class_add_pad_template() does take ownership of the
pad template now.
2013-04-16 16:00:30 +02:00
Sebastian Dröge
75493a7731
androidmedia: Properly set subclasses metadata/pad templates in base_init
2013-04-16 15:31:34 +02:00
Sebastian Dröge
f17ebca62a
amcvideodec: Fix refcount problem with frames being dropped because of decoder bugs
2012-11-12 14:58:00 +01:00
Sebastian Dröge
b2e5b9cb67
androidmedia: Update to new GLib thread API
2012-11-12 11:32:44 +01:00
Sebastian Dröge
1d9d3c1c30
androidmedia: Remember and use input state
2012-10-25 14:05:48 +02:00
Sebastian Dröge
079c68e4de
androidmedia: Port to 1.0
2012-10-25 14:05:48 +02:00
Sebastian Dröge
31f0f163bd
Try to handle format changes more gracefully
...
And make stop() faster and more robust
2012-10-15 16:28:43 +02:00
Sebastian Dröge
a870e6a5c3
Check output format metadata some more
...
And implement workaround for NVidia Tegra 3 not setting the slice_height.
Thanks to Josep Torra for debugging this issue.
2012-10-15 16:28:42 +02:00
Sebastian Dröge
86176bd2a2
List profiles in reverse to minimize caps
2012-10-15 16:28:42 +02:00
Sebastian Dröge
fc5a18c091
Iterate levels in reverse order to minimize caps
2012-10-15 16:28:42 +02:00
Sebastian Dröge
0b0255ed12
Merge structures into caps instead of appending them
2012-10-15 16:28:42 +02:00
Sebastian Dröge
9f7ed3f180
Use orc_memcpy() instead of memcpy() as it should be faster for larger memory areas
2012-10-15 16:28:42 +02:00
Sebastian Dröge
3159b7b5dd
Add support for MPEG1/2 video
2012-10-15 16:28:42 +02:00
Sebastian Dröge
f098ae6b88
Add FIXME comment for not handling odd widths/height with the TI hardware decoders
...
Must likely an issue with the codec itself though.
2012-10-15 16:28:42 +02:00
Sebastian Dröge
42d11e8c1b
Fix handling of I420 buffers with odd width
2012-10-15 16:28:41 +02:00
Sebastian Dröge
742816df69
Remove some obsolete FIXMEs
2012-10-15 16:28:41 +02:00
Sebastian Dröge
f839a615a0
Fix flushing logic to unbreak handling of flushing seeks
2012-10-15 16:28:41 +02:00
Sebastian Dröge
bc7d2006e3
Fix chroma stride for I420 stride/crop conversion
2012-10-15 16:28:41 +02:00
Sebastian Dröge
562b033872
Wait at most 100ms for dequeueing a buffer, and retry after that
...
Some codecs don't fail the dequeueing if the codec is flushed,
causing deadlocks when shutting down the element.
2012-10-15 16:28:41 +02:00
Sebastian Dröge
9a034f2beb
Release output buffers a bit earlier
2012-10-15 16:28:41 +02:00
Sebastian Dröge
bb8e53d4b8
Always pass 1 as number of frames to finish_frame()
2012-10-15 16:28:41 +02:00
Sebastian Dröge
de5375da81
Only set the SYNC_FRAME flag on the first buffer if we need to split the input
2012-10-15 16:28:40 +02:00
Sebastian Dröge
65448a3790
Implement cropping and correctly handle the different color formats
2012-10-15 16:28:40 +02:00
Sebastian Dröge
3acc776dd6
Really implement stride conversion for NV12 too
2012-10-15 16:28:40 +02:00
Sebastian Dröge
266bc5bf69
Implement stride-conversion for I420 and NV12
2012-10-15 16:28:39 +02:00
Sebastian Dröge
2de542373b
Improve debug output
2012-10-15 16:28:39 +02:00
Sebastian Dröge
0df00d68b5
Print the MediaFormats we get in the debug logs
2012-10-15 16:28:39 +02:00
Sebastian Dröge
11b8d33666
Improve debug output
2012-10-15 16:28:39 +02:00
Sebastian Dröge
d06af02637
Improve level/profile handling
2012-10-15 16:28:39 +02:00
Sebastian Dröge
b7a923234c
If the buffer sizes are the same, just memcpy() to the output buffers
2012-10-15 16:28:39 +02:00
Sebastian Dröge
cb262e2465
Correctly convert timestamps between us and ns
2012-10-15 16:28:39 +02:00
Sebastian Dröge
2fe74efc04
Set SYNC_FRAME flag on buffers if required
2012-10-15 16:28:39 +02:00
Sebastian Dröge
ed98e8cf60
Improve flushing
2012-10-15 16:28:38 +02:00
Sebastian Dröge
d2aff4ecd3
Wait at most 0.5 seconds for getting an input buffer for EOS
2012-10-15 16:28:38 +02:00
Sebastian Dröge
3be4965d00
Correctly check for flushing
2012-10-15 16:28:38 +02:00
Sebastian Dröge
6a48db3d0f
Retry for negative return values when dequeueing buffers
2012-10-15 16:28:38 +02:00
Sebastian Dröge
911ca50971
Fix refcount bug
2012-10-15 16:28:38 +02:00
Sebastian Dröge
b63c58e850
The MediaCodec API is apparently not threadsafe between stop() and release()
...
So we don't call release() and just hope for the GC to release the
codec in time.
2012-10-15 16:28:38 +02:00