Commit graph

276 commits

Author SHA1 Message Date
Sebastian Dröge b48524c357 amcvideodec: Implement support for COLOR_QCOM_FormatYVU420SemiPlanar32mMultiView for decoding
https://bugzilla.gnome.org/show_bug.cgi?id=756578
2015-10-16 09:12:35 +03:00
Sebastian Dröge 431c4b5e84 amcvideoenc: Always set i-frame-interval setting
Most encoders fail to initialize if we don't set it at all.
2015-07-29 10:13:17 +01:00
Sebastian Dröge 42a1a95f3e androidmedia: Add support for H265/HEVC 2015-07-08 11:42:48 +03:00
Vineeth TM 96d691694a amc: fix check whether we managed to acquire a buffer
https://bugzilla.gnome.org/show_bug.cgi?id=751821
2015-07-02 09:14:45 +01:00
Sebastian Dröge d5a676aec8 androidmedia: Call initialize_classes() also when we got the Java VM from the app
https://bugzilla.gnome.org/show_bug.cgi?id=751664
2015-06-29 18:51:04 +02:00
Sebastian Dröge 6b2800e324 androidmedia: Allow the application to provide the Java VM
In JNI_OnLoad() we will already get the Java VM passed and could
just directly use that. gstreamer_android-1.0.c will now provide
this to us.

Reason for this is that apparently not all Android system are
providing the JNI functions to get the currently running Java VMs, so
we would fail to get. With this we will always be able to get the Java
VM on such systems.
2015-06-18 14:38:04 +02:00
Sebastian Dröge c51b012991 androidmedia: Prefer software codecs over hardware codecs for audio
Hardware codecs don't make sense for audio and are generally less reliable on
Android than the software codecs.
2015-06-18 14:31:39 +02:00
Sebastian Dröge 26396bfac2 androidmedia: Failing to detach a thread is not that much of a problem
Someone else might have detached it before us, so make this just normal debug
output instead of a GST_ERROR()
2015-06-18 14:29:33 +02:00
Sebastian Dröge ade625111e androidmedia: Don't fail if JNI_CreateJavaVM can't be found
We only need that if no Java VM is running yet, and all usual cases,
i.e. when calling GStreamer from an actual Android app, there will already
be a Java VM we can just use.

It seems like some phones come without that symbol, let's hope they come
with the other symbol but for now don't make a missing JNI_CreateJavaVM fatal.
2015-06-18 10:45:24 +02:00
Sebastian Dröge 6be20ffb79 androidmedia: Move variables into the scope where they are needed 2015-06-15 14:22:00 +02:00
Sebastian Dröge 90c4a6ecd0 androidmedia: Don't query supported color formats for non-video codecs 2015-06-15 12:20:24 +02:00
Sebastian Dröge d221108857 amc: Only lower ranks of OMX.Exynos. audio codecs, the video codecs are actually working 2015-06-01 20:03:22 +02:00
Sebastian Dröge bf07b52477 amc: Give marginal rank to codecs that start with OMX.Exynos.
OMX.Exynos. codecs are existing on some devices like the
Galaxy S5 mini, and cause random crashes (of the device,
not the app!) and generally misbehave. That specific device
has other codecs that work with a different name, but let's
just give them marginal rank in case there are devices that
have no other codecs and these are actually the only working
ones
2015-06-01 19:41:21 +02:00
Sebastian Dröge 2e0395aa59 androidmedia: Give lower ranks to codecs not starting with OMX.
On some devices there are codecs that don't start with OMX., while
there are also some that do. And on some of these devices the ones
that don't start with OMX. just crash during initialization while
the others work. To make things even more complicated other devices
have codecs with the same name that work and no alternatives.
So just give a lower rank to these non-OMX codecs and hope that
there's an alternative with a higher rank.

Also stagefright gives codecs starting with OMX. a higher rank too and
considers other codecs that don't start with OMX. as software codecs.
2015-06-01 19:41:21 +02:00
Sebastian Dröge a6fb482247 androidmedia: Conditionally use get_{input,output}_buffer() Android 21 APIs
Also properly set limit/position on byte buffer, some codecs prefer to have
correct values there.
2015-05-31 21:27:27 +02:00
Sebastian Dröge 8bacecfb08 amcaudiodec: Add an output adapter for chunking the output into codec frames
Otherwise the base class will be confused.
See https://bugzilla.gnome.org/show_bug.cgi?id=685730
2015-05-19 19:12:41 +03:00
Matthieu Bouron 3c77fbda87 androidmedia: Add suport for COLOR_FormatYV12
Reference: http://developer.android.com/reference/android/graphics/ImageFormat.html#YV12

https://bugzilla.gnome.org/show_bug.cgi?id=747126
2015-05-04 12:45:12 +02:00
Matthieu Bouron bd21df1056 androidmedia: Declare QOMX_COLOR_FORMATYVU420PackedSemiPlanar32mMultiView constant
This color format is the same as QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m
but stores two images one after the other in a top-bottom layout.

https://bugzilla.gnome.org/show_bug.cgi?id=747126
2015-05-04 12:44:56 +02:00
Matthieu Bouron 21ff3ae0b0 androidmedia: Fix slice-height for Tegra 3 devices
https://bugzilla.gnome.org/show_bug.cgi?id=748867
2015-05-04 10:39:38 +02:00
Edward Hervey 8d41c3e393 androidmedia: Add support for COLOR_FormatYUV420Flexible
https://bugzilla.gnome.org/show_bug.cgi?id=747126
2015-05-04 09:34:29 +02:00
Edward Hervey 0654442c8f androidmedia: Add suport for Intel color formats
https://bugzilla.gnome.org/show_bug.cgi?id=747126
2015-05-04 09:34:15 +02:00
Tim-Philipp Müller 699452ef31 Remove obsolete Android build cruft
This is not needed any longer.
2015-04-26 18:59:32 +01:00
Sebastian Dröge 774866ad62 androidmedia: Handle queue/release errors non-fatal
They can happen sometimes as a transient problem, e.g. if there
is a problem in the stream. Only handle them as fatal if many of
them happen in a row.
2015-04-17 20:11:46 +02:00
Sebastian Dröge 265538ac6e amc: Use new JNI utils almost everywhere 2015-04-11 19:44:34 +02:00
Sebastian Dröge 7fb0fafed2 amc: Allow creating global and local references of objects 2015-04-11 19:37:34 +02:00
Sebastian Dröge 6c7b64f90c amc: Make GError argument order more consistent 2015-04-11 19:37:34 +02:00
Sebastian Dröge 448867f0aa amc: Add helper function for getting a direct buffer array 2015-04-11 19:37:20 +02:00
Sebastian Dröge 0dbf5d322f amc: Java longs are gint64s 2015-04-11 19:37:20 +02:00
Sebastian Dröge 0914ee4a07 amc: Improve JNI utilities and add some missing ones
We now fill GErrors for everything that could throw an exception, and method
calls now always return a gboolean and their value in an out-parameter to
distinguish failures from other values.
2015-04-11 19:37:20 +02:00
Sebastian Dröge 35ef602b7d androidmedia: Add helpers for calling static methods 2015-03-15 16:59:25 +00:00
Sebastian Dröge 1580336152 androidmedia: Fix indention 2015-03-15 16:41:12 +00:00
Matthieu Bouron 66f315d6a6 androidmedia: Add more JNI helper functions 2015-03-15 16:28:03 +00:00
Matthieu Bouron be2378a071 androidmedia: Split jni code to gstjniutils.c 2015-03-15 16:28:03 +00:00
Edward Hervey 4b5d3a97ba androidmedia: Remove unused label/variable 2015-03-11 10:17:53 +01:00
Sebastian Dröge 66a4572c12 androidmedia: Fix calculation of the frame size for COLOR_FormatYUV420Planar
https://bugzilla.gnome.org/show_bug.cgi?id=734156
2014-10-02 10:26:43 +03:00
Anuj Jaiswal 593f7d520e androidmedia: break statements unnecessary
Code flow never arrives to the break statements due to the goto's. So the
breaks are unecessary. Second part to commit a3958ae65b

https://bugzilla.gnome.org/show_bug.cgi?id=736940
2014-09-24 12:17:41 +01:00
Anuj Jaiswal a3958ae65b androidmedia: break statement unnecessary
Code flow never arrives to the break statements due to the goto's. So the
breaks are unecessary.

https://bugzilla.gnome.org/show_bug.cgi?id=736942
2014-09-24 12:12:16 +01:00
Sebastian Dröge f5e73d2808 amcaudiodec: Remove hack for Google MP3 decoder
The first buffer does not contain more garbage than any other MP3 decoder
outputs and we don't really know how much we have to drop or not.

After this change the output has the same duration as with mad.
2014-09-01 17:44:04 +03:00
Sebastian Dröge 8f25220b9c androidmedia: Make sure to unblock any thread waiting on the drain condition variable when errors happen 2014-08-14 15:27:21 +03:00
Sebastian Dröge ca62186797 androidmedia: Fix draining logic to let the base class handle EOS events
https://bugzilla.gnome.org//show_bug.cgi?id=734775
2014-08-14 15:27:21 +03:00
Sebastian Rasmussen c1d5aa3da5 amcvideoenc: Avoid leaking copy of caps object
gst_pad_get_pad_template_caps() returns a reference which is unreferenced,
so creating a copy using gst_caps_copy() results in a reference leak.
Also remove the incorrect comment to avoid confusion in the future.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734533
2014-08-10 12:11:10 +01:00
Sebastian Dröge 74c2e64d5d amc: Properly integrate COLOR_QCOM_FormatYVU420SemiPlanar32m again
https://bugzilla.gnome.org/show_bug.cgi?id=732683
2014-07-03 17:53:33 +02:00
Sebastian Dröge 93bce7aeb7 amcaudiodec: audio/mpeg is always MPEG 1 layer 3
Configuring e.g. layer 2 on such a decoder usually fails unless
it additionally also accepts audio/mpeg-L2.
2014-07-03 15:07:23 +02:00
Sebastian Dröge 337bc06de1 androidmedia: Clear exceptions also when we did not provide a GError 2014-06-20 14:59:12 +02:00
Sebastian Dröge aee9d12b86 androidmedia: Also don't report warnings for queue/dequeue errors during flushing in error cases
... and fix a case where we released an invalid buffer index.
2014-06-19 18:34:05 +02:00
Sebastian Dröge 880f3d8a18 androidmedia: Don't consider input buffer queueing failures as an error during flushing 2014-06-19 18:34:05 +02:00
Sebastian Dröge 71c0e0e19f androidmedia: Clean up flushing code and don't consider output buffer releasing failures during flushing as an error 2014-06-19 18:34:05 +02:00
Sebastian Dröge b44724f662 androidmedia: Actually print the stacktrace into the error string 2014-06-02 12:39:49 +02:00
Sebastian Dröge 40fb09544f androidmedia: Clear the exception before trying to call Java methods to convert it to a string 2014-06-02 11:28:43 +02:00
Sebastian Dröge 0c93a82861 androidmedia: Fix crashes when loading the plugin in a standalone application on Android >= 4.4
Check if libnativehelper is loaded in the process and if
it has these awful wrappers for JNI_CreateJavaVM and
JNI_GetCreatedJavaVMs that crash the app if you don't
create a JniInvocation instance first. If it isn't we
just fail here and don't initialize anything.

See this code for reference:
https://android.googlesource.com/platform/libnativehelper/+/master/JniInvocation.cpp
2014-06-02 11:18:38 +02:00
Sebastian Dröge f844af2320 androidmedia: Add exceptions from the Java API to error messages, and post more error/warning messages overall 2014-05-30 16:36:11 +02:00
Sebastian Dröge 440574d963 androidmedia: Add a GError argument to all amc methods and catch exceptions there 2014-05-30 15:25:25 +02:00
Sebastian Dröge 22b5abf86c androidmedia: Describe exceptions happening when scanning all codecs 2014-05-30 15:25:21 +02:00
Sebastian Dröge 3cf4c8cad1 androidmedia: Add API to convert an exception into a string 2014-05-30 15:25:21 +02:00
Jorge Zapata ad82575693 Release the codec before freeing it
On Samsung Galaxy S4 it is impossible to have more than one
hardware decoder at the same time. If we do not release it
explicitly the GC only releases it whenever the whole application
is finished not whenever the activity is finished and thus a player
will not be able to work correctly
2014-05-30 12:40:59 +02:00
Sebastian Dröge 81716909fe Revert "androidmedia: Place some const keywords in a few places"
This reverts commit 3078b3a34c.

gst_video_frame_map() doesn't take a const GstVideoInfo*, so
all this is rather useless.
2014-05-27 08:51:39 +02:00
Sebastian Dröge 3078b3a34c androidmedia: Place some const keywords in a few places 2014-05-26 16:31:11 +02:00
Chen Jie 8e0bbc9e32 androidmedia: add gst_amc_color_format_copy
gst_amc_color_format_copy will copy in/out a frame resides at a
GstAmcBuffer. Lots of codes in gst_amc_video_*_fill_buffer are moved to
this new function.
2014-05-26 16:29:01 +02:00
Chen Jie 557d6b974f androidmedia: move create_src|sink_caps to gstamc.c
Some hack logic needs also to be present in create_src|sink_caps, for
working around some broken codecs. These hacks are hidden
in color_format/video_format conversion -- the prototypes of these
functions are also changed to include more args for hack judgement.

Also in case of multi-color_formats mapped to one video_format, then
map that video_format back will not give the original color_format, which
causes gst_amc_codec_configure failed with something like
'does not support color format N'.

The new prototype involves with GstAmcCodecInfo and mime, which
ensures the converted color_format is supported by the codec.

A COLOR_FormatYCbYCr to GST_VIDEO_FORMAT_YUY2 mapping is also added, in
order to work around bugs in OMX.k3.video.decoder.avc(which incorrectly
reports supporting COLOR_FormatYCbYCr, which is actually
COLOR_FormatYUV420SemiPlanar). There are already hacks for this in
gst_amc_video_format_to_color_format, gst_amc_color_format_to_video_format
and gst_amc_color_format_info_set, but the codec will still not work(be
ignored because of "has unknown color formats") without adding this mapping.
2014-05-26 16:29:01 +02:00
Chen Jie 27f4d8237f amcvideoenc: Unit of bitrate property is now bit/sec
https://bugzilla.gnome.org/show_bug.cgi?id=705129
2014-05-26 12:10:44 +02:00
Jorge Zapata 738da7835f androidmedia: Add a new QCOM color format
It is a NV12 based, aligned to 32 bytes

https://bugzilla.gnome.org/show_bug.cgi?id=730635
2014-05-23 15:19:36 +02:00
Sebastian Dröge 158caf952d androidmedia: First try to get symbols from the current program, then load libdvm
If the application is using the new ART runtime it will otherwise
load dalvik and start a dalvik VM next to the ART VM.
Does not work very well obviously.
2014-05-23 15:13:28 +02:00
Chen Jie 22c0464aa6 androidmedia: add support for video encoding
https://bugzilla.gnome.org/show_bug.cgi?id=705129
2014-05-23 09:37:54 +02:00
Sebastian Dröge 5b23cf694c amcaudiodec: Calculate number of samples per frame for MP3 and use that
Some audio decoders (at least the MP3 decoder on MTK based devices) outputs
raw audio in batches of multiple audio frames. We need to handle that
properly, otherwise the base class will be kind of unhappy.
2014-02-14 12:51:50 +01:00
Sebastian Dröge aeeeedd7c7 amcaudiodec: Error out if we get an invalid raw audio buffer size 2014-02-14 12:51:50 +01:00
Sebastian Dröge cea218db6f amcvideodec: Store return value of gst_caps_merge_structure()
The inputs are both invalid afterwards.
2014-02-14 12:51:50 +01:00
Sebastian Dröge faf48d26bf amcvideodec: Release buffer to Android if allocating output failed 2014-02-14 12:51:50 +01:00
Sebastian Dröge 2476b926b1 amcaudiodec: Release buffer back to Android if allocating output fails 2014-02-14 12:51:50 +01:00
Sebastian Dröge 30d80bf658 androidmedia: Don't handle FLUSHING or NOT_LINKED as error
And also just stop the task for FLUSHING.
2014-01-25 17:41:18 +01:00
Jorge Zapata c9abe8c50d amcvideodec: Add the divx variant for mpeg4 video
Looks like all the mpeg4 video decoders also accept the divx
variants. So we better add those caps too

https://bugzilla.gnome.org/show_bug.cgi?id=711163
2014-01-14 20:49:24 +01:00
Jan Schmidt 1df82fc14f androidmedia: Add new color format, and enhance debug output
Add a new color format seen on my Galaxy S3
(OMX_SEC_COLOR_FormatNV12Tiled = 0x7fc00002) to the table,
but don't actually implement it - the decoder doesn't choose it.

Remove an assert that makes the plugin fail noisily and take the app down
if it sees a color format it doesn't recognise (just skip the codec instead)

Modify the debug output when plugin scanning to print color format info to
make this sort of thing easier in the future.
2013-12-31 23:24:06 +11:00
Sebastian Dröge 219275dbb6 amcvideodec: Use new gst_video_decoder_set_needs_format() API 2013-12-05 11:50:17 +01:00
Andoni Morales Alastruey 786f5e4f7c androidmedia: fix rank for more software decoders
In Galaxy S4 the codecs list contains some OMX.SEC.foo.sw.dec
as software decoders

https://bugzilla.gnome.org/show_bug.cgi?id=711214
2013-10-31 16:38:41 +01:00
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
Chen Jie b05a1f75fd androidmedia: make gst_amc_avc_profile_from_string recognize alt name
https://bugzilla.gnome.org/show_bug.cgi?id=710433
2013-10-18 10:01:43 +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
Edward Hervey 97426a1caa all: Fix for GST_DISABLE_GST_DEBUG
Where applicable, remove methods that don't do anything different than
the default implementation.
2013-07-29 09:42:12 +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 a887497d18 amcaudiodec: Properly set output format instead of just setting caps 2013-04-16 16:23:46 +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 fd8defc525 amcaudiodec: Use 1.0-style raw audio caps 2013-04-16 15:32:01 +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 92fffc8cbe androidmedia: Skip Aricent codecs for now
The HTC One X claims to have one (but doesn't) and loading
the library for it hangs forever.
2012-11-01 13:55:54 +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 80533fa3a3 androidmedia: Add missing file 2012-10-16 11:33:50 +02:00
Sebastian Dröge 6fa3f058b1 androidmedia: Rename plugin 2012-10-15 16:37:54 +02:00
Sebastian Dröge 5e954a7d0a androidmedia: Make everything buildable 2012-10-15 16:28:43 +02:00
Sebastian Dröge f3682a0a6b Don't try to use the NVidia DRM codecs 2012-10-15 16:28:43 +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 b0b642d8ab Add workaround for Google MP3 decoder outputting garbage in first output buffer
And assume one decoded input frame per output buffer to fix timestamp
handling by the base class.
2012-10-15 16:28:43 +02:00
Sebastian Dröge 2f3b2c586f Also add some more output format checks to the audio decoder 2012-10-15 16:28:42 +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 7341ed62fa Add some more default channel layouts, these should be good for AAC at least 2012-10-15 16:28:42 +02:00
Sebastian Dröge 6ed3ea7cad Don't set timestamps, the baseclass handles this for us anyway 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 7a53743bfd Add support for audio/mpeg-L2 for the Nexus 7 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 41862dff59 Ignore the *law and Vorbis decoders
They are broken unfortunately.
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 cb6f703669 Only mpegversion=4 is supported for AAC 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 7dbef6415f Fix Vorbis decoding 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 4c3617f7f0 Keep another reference of the input buffer in handle_frame()
It might be unreffed in the meantime by the other thread due
to finish_frame().
2012-10-15 16:28:41 +02:00
Sebastian Dröge 613a75ad92 Pass -1 as number of frames to the base class
This will automatically do the right thing if timestamps are good enough
2012-10-15 16:28:41 +02:00
Sebastian Dröge 0143418e0c Use correct buffer variable 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 99e287b86b Correctly remember number of channels and samplerate 2012-10-15 16:28:40 +02:00
Sebastian Dröge efac01d096 Don't unref input buffer from handle_frame(), it's owned by the baseclass 2012-10-15 16:28:40 +02:00
Sebastian Dröge 3c40a9ca56 Remove invalid GST_ERROR() call 2012-10-15 16:28:40 +02:00
Sebastian Dröge b07cd212ac Only try to get the channel-mask if it is set 2012-10-15 16:28:40 +02:00
Sebastian Dröge afbc23ceed Add support for FLAC 2012-10-15 16:28:40 +02:00
Sebastian Dröge b64e57ce42 Fix src template caps 2012-10-15 16:28:40 +02:00
Sebastian Dröge 6cc535581f Fix plugin initialization 2012-10-15 16:28:40 +02:00
Sebastian Dröge 77fbaae250 Add support for audio decoders, completely untested so far 2012-10-15 16:28:40 +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 290d6f61c5 Ignore codecs with unknown color formats for stability purposes
They can be registered nonetheless if an environment variable
or compile-time #define is set.
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 024ac3560d Fix typo in previous commit 2012-10-15 16:28:39 +02:00
Sebastian Dröge f2c5afd031 Don't allow using non-Google codecs if we started the Java VM ourselves
Hardware codecs, e.g. the TI ones, only work in processes that had their
Java VM started via the non-public AndroidRuntime class.
2012-10-15 16:28:39 +02:00
Sebastian Dröge 6feb6433d5 Rename to amc from androidmediacodec everywhere 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 2eff8bf82d Allow registering as static plugin with the GStreamer SDK API 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