Matthew Waters
8403d97587
amc/videodec: only retrieve the stride/slice-height for raw output
...
When outputting to a surface, these values may not exist.
As found on a Google Pixel 3.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1284 >
2020-05-21 12:40:21 +00:00
Matthew Waters
b3cbdb1d26
amcvideodec: fix sync meta copying not taking a reference
...
Fixup for
9b9e39be24
: amc: Fix crash when a sync_meta survives its sink
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/603
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1272 >
2020-05-15 13:54:56 +10:00
Jan Schmidt
6c1e5ab311
androidmedia: Support float i-frame-interval
...
Android 25 added support for i-frame-interval to be a floating
point value. Store the property as a float and use the newer
version when it's available.
2020-02-09 02:19:12 +11:00
Jan Schmidt
29e3d09014
androidmedia: Allow dynamic bitrate changes on Android >= 19
...
Android 19 added an API for dynamically changing the bitrate in a running
codec.
Also make it so that even when not update-able at runtime, parameters will at least
be stored so that they take effect the next the codec is restarted.
2020-02-09 02:19:12 +11:00
Jan Schmidt
1b8bf1be01
androidmedia: Handle force-keyunit requests
...
Use API from Android 19 to request a keyframe from the MediaCodec
when indicated by the base class.
2020-02-09 02:19:12 +11:00
Jan Schmidt
cfe318ea03
androidmedia: Permit Codec surface to be NULL
...
The AMC encoder wrapper doesn't support input surfaces yet,
and passes NULL when configuring the underlying codec.
This was broken in commit 7fcf3e
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1102
2020-02-09 02:19:12 +11:00
Andrew Branson
397a9edb35
androidmedia: Add new effects and scene modes to Camera parameters
2019-11-19 07:54:16 +01:00
Xavier Claessens
7d31f7a9e5
amc: Change plugin name if it's built for Magic Leap
2019-11-08 13:40:14 -05:00
Xavier Claessens
90223a2702
amc: Add MLSDK implementation
2019-11-08 13:40:14 -05:00
Aaron Boxer
6d3429af34
documentation: fixed a heap o' typos
2019-11-05 09:11:25 -05:00
Cheng-Chang Wu
b5e506d12b
androidmedia: Make sure that the first member of GstAmcSurfaceTextureJNI is correct
...
It's a subclass of GstAmcSurfaceTexture so should have that as first
struct member or otherwise it won't work.
Fixes #1105
2019-10-25 13:56:13 +00:00
Cheng-Chang Wu
e71f620eb0
androidmedia: Call JNI method with the actual Java object instead of our wrapper struct
...
Fixes #1105
2019-10-25 13:56:13 +00:00
Javier Celaya
8684dffe50
Fix get_supported_types function name
2019-10-16 06:42:37 +00:00
Javier Celaya
f267adeb4a
Fix releasing local refs
2019-10-16 06:42:37 +00:00
Javier Celaya
3f0d60515a
Fix names of MediaCodecInfo inner classes
2019-10-16 06:42:37 +00:00
Javier Celaya
26ea6d7fbb
Fix getting MediaCodecList static methods
2019-10-16 06:42:37 +00:00
Tim-Philipp Müller
f218ec2794
Remove autotools build system
2019-10-14 13:54:27 +01:00
Matthew Waters
c941db0c2e
ahcsrc: #define GST_USE_UNSTABLE_API for phtography inteface
...
Fixes werror build:
In file included from ../sys/androidmedia/gstahcsrc.c:70:
../gst-libs/gst/interfaces/photography.h:27:2: error: "The GstPhotography interface is unstable API and may change in future." [-Werror,-W#warnings]
#warning "The GstPhotography interface is unstable API and may change in future."
^
../gst-libs/gst/interfaces/photography.h:28:2: error: "You can define GST_USE_UNSTABLE_API to avoid this warning." [-Werror,-W#warnings]
#warning "You can define GST_USE_UNSTABLE_API to avoid this warning."
^
2019-08-28 16:12:11 +10:00
Xavier Claessens
121711e4ac
amc: Do not skip decoders that have no profile levels
2019-08-27 02:23:41 +00:00
Xavier Claessens
83883718ee
amc: Print error when failing to register listener
2019-08-20 08:53:55 -04:00
Xavier Claessens
9ab76c73ea
amc: Do not use g_log() for criticals
2019-08-20 08:53:55 -04:00
Xavier Claessens
06fc7880bb
amc: crop values are not mandatory in format
...
Android documentation has example code how to compute width and height
when crop values are present.
https://developer.android.com/reference/android/media/MediaCodec#accessing-raw-video-bytebuffers-on-older-devices
2019-08-20 08:53:55 -04:00
Xavier Claessens
a604796c41
amc: Remove unused gst_amc_surface_texture_set_default_buffer_size()
2019-08-20 08:53:55 -04:00
Xavier Claessens
50cdaf1036
amc: Fix matrix constness in _get_transform_matrix()
2019-08-20 08:53:55 -04:00
Xavier Claessens
ad7c4f5f27
amc: Select between encoder/decoder at GstAmcCodec construct time
...
Magical 0/1 values where passed to gst_amc_codec_configure() flags
argument. It's more natural to have a boolean is gst_amc_codec_new().
2019-08-20 08:53:55 -04:00
Xavier Claessens
0fe0270244
amc: Remove gst_amc_format_contains_key()
...
It is not needed, we can just try to get the key and ignore error.
NdkMediaFormat doesn't have that method.
2019-08-20 08:53:55 -04:00
Xavier Claessens
7fcf3ebf07
amc: Turn GstAmcSurfaceTexture into a base class with JNI implementation
2019-08-20 08:53:55 -04:00
Xavier Claessens
29ef89983c
amc: Create JNI wrapper for MediaCodecList
...
There is no NdkMediaCodecList API yet, but it is still better to isolate
JNI code. This will facilitate porting to a native API if Google ever
release one.
2019-08-20 08:53:55 -04:00
Xavier Claessens
515398a9ff
amc: Move MediaCodec JNI wrapper into its own module
...
This will facilitate adding another implementation based on
NdkMediaCodec instead of JNI.
2019-08-20 08:53:55 -04:00
Xavier Claessens
9b9e39be24
amc: Fix crash when a sync_meta survives its sink
...
_amc_gl_free() could be called after the GstAmcVideoDec has been
finalized, in the case downstream still has a ref to a buffer.
2019-08-14 16:37:19 +00:00
Tim-Philipp Müller
7853700b50
meson: add more plugins to plugins list
...
Makes sure their path gets added to the uninstalled environment
and makes sure they get included in the docs.
2019-05-30 20:41:57 +02:00
Roman Shpuntov
1465a7ecdd
androidmedia: added path /system/vendor/etc to dependency
2019-05-03 19:10:22 +07:00
Tim-Philipp Müller
c39fd4d898
androidmedia: add Hardware tag to element metadata
2019-02-19 23:45:34 +00:00
Matthew Waters
b907187ade
androidmedia: also install java sources
...
As needed by our ndk-build integration
2018-12-07 07:46:27 +00:00
Jordan Petridis
1f562870ee
Run gst-indent through the files
...
This is required before we enabled an indent test in the CI.
https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
2018-11-28 14:18:26 +00:00
Matthew Waters
7dc7607475
androidmedia/meson: we also depend on gmodule and orc
2018-08-31 18:08:55 +10:00
Nirbheek Chauhan
4af7637012
meson: Add build files for androidmedia and opensles
...
Note that androidmedia requires Android gstgl
2018-08-29 14:58:19 +05:30
Jan Schmidt
39365948ff
androidmedia: Invert the transform matrix from the decoder
...
The transform from mediacodec applies to the texture coords, but
GStreamer affine meta applies to the video geometry, which is the
opposite - so invert it to get display correct for decoders
that require transforming
2018-06-15 05:01:20 +10:00
Justin Kim
297f7e4f04
ahc: enable autofocus callback
...
It should be enabled to set autofocus properly, but
it seems to be commented out mistakenly from the first commit.
https://bugzilla.gnome.org/show_bug.cgi?id=790945
2018-01-26 10:13:00 +00:00
Tim-Philipp Müller
06e4403fdb
gl: update plugins to use GstGL from -base
2017-12-19 12:02:31 +00:00
Ursula Maplehurst
236398ee3f
androidmedia: when flushing, better handle IllegalStateException received from getOutputBuffer
...
1. Similar to 880f3d8
, don't consider not getting an output buffer as
an error during flushing. I've seen the following sometimes when
encoding:
W GStreamer+amcvideoenc: java.lang.IllegalStateException
W GStreamer+amcvideoenc: at android.media.MediaCodec.getBuffer(Native Method)
W GStreamer+amcvideoenc: at android.media.MediaCodec.getOutputBuffer(MediaCodec.java:2886)
2. For amcvideodec/enc, call _find_nearest_frame (which grabs a fresh
reference on a GstVideoCodecFrame) after we have an output buffer,
so as to not leak the reference, in case getting an output buffer
fails.
Otherwise, if we get an error grabbing the output buffer, we leak
the reference to the frame. This can cause issues with a
v4l2bufferpool feeding the encoder not being able to clean itself
up properly due to buffers still being marked as in-use.
https://bugzilla.gnome.org/show_bug.cgi?id=791258
2017-12-06 10:32:02 +02:00
Matthew Waters
4d2382fb27
amc: actually use the provided application class loader
...
For the camera and sensor
Fixes a couple of ClassNotFound java exceptions when initializing GStreamer
off the main thread.
2017-09-05 21:16:33 +10:00
Sebastian Dröge
732012a78e
amcvideodec: Unref downstream caps after usage
...
https://bugzilla.gnome.org/show_bug.cgi?id=782771
2017-05-18 14:34:46 +03:00
Nicolas Dufresne
4261692187
Remove plugin specific static build option
...
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:05:52 -04:00
shakin chou
febbaaddcf
amcvideodec/enc: Correctly check for no PTS on input buffers
...
MediaCodec gives us a presentation timestamp of 0 if it does not know
anything, but GStreamer gives us GST_CLOCK_TIME_NONE. Don't mix up these
two.
https://bugzilla.gnome.org/show_bug.cgi?id=780190
2017-04-26 13:40:28 +03:00
Thibault Saunier
78022a6e0c
docs: Port all docstring to gtk-doc markdown
2017-04-12 12:57:57 -03:00
Matthew Waters
956c4d0bde
gl/format: use our own GL format enum's instead of gstvideo's
...
They can describe in more detail (such as component sizes) the requested format.
2017-03-13 21:10:58 +11:00
Sebastian Dröge
aca89aeeaa
amcvideoenc: Encoder output is generally not properly parsed
...
Don't claim it is and let h264parse and other parsers do their job.
https://bugzilla.gnome.org/show_bug.cgi?id=774772
2017-02-08 00:05:47 +02:00
Sebastian Dröge
7817f85759
amcvideoenc: Set timestamps on header buffers too
...
https://bugzilla.gnome.org/show_bug.cgi?id=774772
2017-02-08 00:05:47 +02:00
Sebastian Dröge
c27091d67f
amcvideoenc: Encoded H264 is generally not AU aligned
...
Claiming that it is, can cause h264parse to skip some parsing steps and
the output stays unaligned.
https://bugzilla.gnome.org/show_bug.cgi?id=774772
2017-02-08 00:05:47 +02:00