Matthieu Bouron
d5082a2ce7
lavc/mediacodec: use more meaningful filenames
...
Adds the following changes:
* mediacodecdec.{c,h} -> mediacodecdec_common.{c,h}
* mediacodecdec_h2645.c -> mediacodecdec.c
2016-10-19 10:50:56 +02:00
Matthieu Bouron
f62c54456d
lavc: add mpeg4 mediacodec decoder
2016-10-19 10:50:52 +02:00
Matthieu Bouron
0f7fce87ea
lavc: add vp8/vp9 mediacodec decoders
2016-10-19 10:50:12 +02:00
Matthieu Bouron
b8c158a4ed
lavc/mediacodec_wrapper: do not discard codecs reporting they do not support any profile
...
Depending on the device, some (VP8/VP9/...) decoders report that they do
not support any profiles.
2016-10-19 09:52:15 +02:00
Matthieu Bouron
cfa3c2655a
lavc/mediacodecdec: rename dequeued_buffer_nb to output_buffer_count
2016-10-12 09:50:42 +02:00
Matthieu Bouron
a458ed65b5
lavc/mediacodecdec: remove first output buffer timing debug log
2016-10-12 09:50:42 +02:00
Matthieu Bouron
0919151651
lavc/mediacodecdec: fix size variable shadowing in ff_mediacodec_dec_decode
...
Fixes incompatible pointer type warning on 64-bit systems.
2016-10-06 16:49:28 +02:00
Matthieu Bouron
68822da8ff
lavc/mediacodecdec_h2645: fix nalu data_size type
2016-10-03 14:16:53 +02:00
Matthieu Bouron
140da8e810
lavc: add hevc mediacodec decoder
2016-09-15 21:48:28 +02:00
Matthieu Bouron
025f75c3ad
lavc/ffjni: do not error out if the last non-mandatory field/method cannot be found
2016-09-12 09:56:37 +02:00
Matthieu Bouron
bf011695fd
lavc/hevc: store VPS/SPS/PPS data
2016-09-09 16:35:37 +02:00
Matthieu Bouron
4b290078e4
lavc/mediacodecdec_h264: use h264_parse.h instead of h264dec.h
...
ff_h264_decode_extradata is referenced by h264_parse.h and not
h264dec.h.
2016-09-07 21:04:13 +02:00
Matthieu Bouron
256e99f6f0
lavc/mediacodecdec_h264: move bsf variable declaration at the top of the function
2016-09-07 21:04:13 +02:00
Matthieu Bouron
f574012d5f
lavc/mediacodecdec_h264: fix SODB escaping
...
Fixes escaping of consecutive 0x00, 0x00, 0x0{0-3} sequences.
2016-09-07 15:35:09 +02:00
Matthieu Bouron
83b9909398
Changelog: add entry for MediaCodec hwaccel
2016-07-28 16:11:52 +02:00
Matthieu Bouron
376d8fb2c5
lavc/ffjni: replace ff_jni_{attach,detach} with ff_jni_get_env
...
If a JNI environment is not already attached to the thread where the
MediaCodec calls are made the current implementation will attach /
detach an environment for each MediaCodec call wasting some CPU time.
ff_jni_get_env replaces ff_jni_{attach,detach} by permanently attaching
an environment (if it is not already the case) to the current thread.
The environment will be automatically detached at the thread destruction
using a pthread_key callback.
Saves around 5% of CPU time (out of 20%) while decoding a stream with
MediaCodec.
2016-07-27 15:43:39 +02:00
Matthieu Bouron
2adbea4e21
lavc: always build dnxhddata
...
lavc/movenc rely on avpriv_dnxhd_parse_header_prefix declared by
dnxhddata.h since e47981dab7 .
Fixes a missing symbol error in lavc/movenc if the dnxhd encoder is not
enabled.
2016-07-24 22:57:06 +02:00
Matthieu Bouron
6c8942cdfb
lavf/mov: fix stream extradata_size allocation
...
Fixes CID 1363963.
2016-07-14 09:18:39 +02:00
Matthieu Bouron
57fa9608e4
Merge commit 'ec9f04423b82afa323e90f5b2c677be74302c1fd'
...
* commit 'ec9f04423b82afa323e90f5b2c677be74302c1fd':
ffv1: Error out on unsupported format
This commit is a noop, the feature is already present in FFmpeg.
Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com >
2016-07-13 17:40:56 +02:00
Matthieu Bouron
a91c330a29
Merge commit '105998fb5ca3c343f5c8cb39ce3197f87a5e4d36'
...
* commit '105998fb5ca3c343f5c8cb39ce3197f87a5e4d36':
checkasm: Add tests for h264 idct
Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com >
2016-07-13 17:22:29 +02:00
Matthieu Bouron
495a40cecb
tests/checkasm: reduce cosmetic diff with libav
...
Chunk was not merged in ca5ec2bf51 .
2016-07-13 17:11:58 +02:00
Matthieu Bouron
354336490d
Merge commit '846a3e78a535f05ee61bb23a160f3378f041f751'
...
* commit '846a3e78a535f05ee61bb23a160f3378f041f751':
mov: Support prores with multiple stsd
Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com >
2016-07-13 16:56:20 +02:00
Matthieu Bouron
3c058f5701
Merge commit '76729970049fe95659346503f7401a5d869f9959'
...
* commit '76729970049fe95659346503f7401a5d869f9959':
mov: Implement support for multiple sample description tables
Notes:
* The sc->stsc_data[index].id checks have been moved from the mov_read_stsc
to mov_read_packet before the value is used in mov_change_extradata to
not break playback of samples with broken stsc entries (see sample of
ticket #1918 ).
* sc->stsc_index is now checked against sc->stsc_count - 1 before it
is incremented so it remains lesser than sc->stsc_count. Fixes a crash
with:
./ffmpeg -i matrixbench_mpeg2.mpg -t 1 -frag_duration 200k test.mov
./ffprobe -show_packets test.mov
Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com >
2016-07-13 16:34:54 +02:00
Matthieu Bouron
0f2654c9a3
lavc: add mediacodec hwaccel support
2016-07-08 17:02:37 +02:00
Matthieu Bouron
88d9c30cf5
lavc/mediacodecdec_h264: properly convert extradata to annex-b
...
H264ParamSets has its SPS/PPS stored raw (SODB) and needs to be
converted to NAL units before sending them to MediaCodec.
This patch adds the missing convertion of the SPS/PPS from SOBP to RBSP
which makes the resulting NAL units correct.
Fixes codec initialization on Nexus 4 and Nexus 7.
2016-07-06 15:10:16 +02:00
Matthieu Bouron
db0af7250a
lavc/mediacodecdec_h264: add missing NAL headers to SPS/PPS buffers
...
Fixes a regression introduced by 0cd5e281df .
2016-06-29 10:46:29 +02:00
Matthieu Bouron
0acc170aad
Merge commit '535a742c2695a9e0c586b50d7fa76e318232ff24'
...
* commit '535a742c2695a9e0c586b50d7fa76e318232ff24':
build: Change structure of the linker version script templates
Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com >
2016-06-27 17:56:47 +02:00
Matthieu Bouron
0fd76d77d6
Merge commit '5b1b495c8d21600eac694d50f428654a3125e217'
...
* commit '5b1b495c8d21600eac694d50f428654a3125e217':
build: Print a message when generating version scripts
Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com >
2016-06-27 17:35:04 +02:00
Matthieu Bouron
9eb3da2f99
asm: FF_-prefix internal macros used in inline assembly
...
See merge commit '39d6d3618d48625decaff7d9bdbb45b44ef2a805'.
2016-06-27 17:21:18 +02:00
Matthieu Bouron
39d6d3618d
Merge commit '1e9c5bf4c136fe9e010cc8a7e7270bba0d1bf45e'
...
* commit '1e9c5bf4c136fe9e010cc8a7e7270bba0d1bf45e':
asm: FF_-prefix internal macros used in inline assembly
This commit is a noop as the ASM codebase differs too much between libav
and ffmpeg. The corresponding chunks will be found in the next commit.
Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com >
2016-06-27 17:18:25 +02:00
Matthieu Bouron
7e4e8fdd34
Merge commit '72d621069fc301b431fac36b5281699a362562f2'
...
* commit '72d621069fc301b431fac36b5281699a362562f2':
movenc: Add a missed const
Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com >
2016-06-23 22:30:37 +02:00
Matthieu Bouron
c60d328e67
Merge commit 'a79aafd0b4d37eda6f15dc68e6509d4e815290c9'
...
* commit 'a79aafd0b4d37eda6f15dc68e6509d4e815290c9':
movenc: Add a test for VFR with b-frames, with a duration change at a fragment end
Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com >
2016-06-23 22:20:10 +02:00
Matthieu Bouron
b1e1da52fe
Merge commit 'e1eb0fc960163402bbb4e630185790488f7d28ed'
...
* commit 'e1eb0fc960163402bbb4e630185790488f7d28ed':
movenc: Use packets in interleaving queues for the duration at the end of fragments
Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com >
2016-06-23 22:02:31 +02:00
Matthieu Bouron
d671652f6e
Merge commit 'fd4957d9c67996e7d218fd36b4168c9cb85f9ea7'
...
* commit 'fd4957d9c67996e7d218fd36b4168c9cb85f9ea7':
movenc-test: Test write_data_type
Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com >
2016-06-23 18:03:49 +02:00
Matthieu Bouron
dc62016c4b
Merge commit '71852a1ba89abc8749e309d9d662c49d47e19531'
...
* commit '71852a1ba89abc8749e309d9d662c49d47e19531':
matroskaenc: Provide output bytestream markers
Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com >
2016-06-23 17:57:34 +02:00
Matthieu Bouron
4e7a921282
Merge commit 'dbbaad32e36b9046cd19d6e3329e2ca7ab49b401'
...
* commit 'dbbaad32e36b9046cd19d6e3329e2ca7ab49b401':
movenc: Provide output bytestream markers for fragmented content
Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com >
2016-06-23 17:52:14 +02:00
Matthieu Bouron
625eb41086
Merge commit '371df9ba71393a1c5429d5f40c76348b30e556c7'
...
* commit '371df9ba71393a1c5429d5f40c76348b30e556c7':
flvenc: Provide output bytestream markers
Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com >
2016-06-23 17:43:19 +02:00
Matthieu Bouron
5d75e46677
Merge commit 'db7968bff4851c2be79b15b2cb2ae747424d2fca'
...
* commit 'db7968bff4851c2be79b15b2cb2ae747424d2fca':
avio: Allow custom IO users to get labels for the output bytestream
Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com >
2016-06-23 15:59:44 +02:00
Matthieu Bouron
55816c9269
lavc/mediacodec: increase buffer dequeue timeout when the codec needs to be drained
...
Increase buffer dequeue timeout when the codec needs to be drained as it
could happen that no input buffer is available when we receive a null
packet for the first time (meaning we are unable to signal end of stream
and mark the codec as draining).
Fixes potential loss of last frames after sending a null packet.
2016-06-23 14:14:15 +02:00
Matthieu Bouron
b316ebf46d
lavc/mediacodec: rely on buffer flags to detect end of stream
2016-06-23 14:14:15 +02:00
Matthieu Bouron
30e3a27119
lavc/mediacodec: re-indent after previous commit
2016-06-23 14:14:15 +02:00
Matthieu Bouron
a71d518575
lavc/mediacodec: discard 0-sized buffers
...
Their only purpose is to carry the end of stream flag.
2016-06-23 14:14:15 +02:00
Matthieu Bouron
df3484f87c
lavc/videotoolbox: fix avcC extradata creation
...
Fixes properly ticket #5638 .
Since 772ad7142d PPS and SPS contain the
nal type byte.
This reverts commit b8d754c5d0 .
This reverts commit 8e47a99f57 .
2016-06-22 10:03:45 +02:00
Matthieu Bouron
0cd5e281df
lavc/mediacodecdec_h264: use ff_h264_decode_extradata to extract PPS/SPS
...
Fixes playback of HLS streams on MediaTek devices which requires PPS/SPS
to be set in their respective csd-{0,1} buffers.
2016-06-21 14:20:57 +02:00
Matthieu Bouron
0ea58059d6
lavc/h264_ps: add ff_h264_ps_uninit and use it
2016-06-20 16:09:09 +02:00
Matthieu Bouron
acfab2dce6
lavf/mov: ignore ctts entries that do not apply to a least one sample
...
Fixes packet pts of samples which contain ctts entries with count <= 0.
2016-06-20 15:43:14 +02:00
Matthieu Bouron
432891a96e
lavc/mediacodecdec{,_h264}: set FF_CODEC_CAP_SETS_PKT_DTS capability
...
And sets frames pkt_dts to AV_NOPTS_VALUE as we do not want lavc/utils
to overwrite the field with incorrect values as the decoder is
asynchronous.
2016-06-20 10:07:41 +02:00
Matthieu Bouron
346b3c5c41
lavc/mediacodec: re-indent after previous commit
2016-06-15 16:40:36 +02:00
Matthieu Bouron
e452abc5c2
lavc/mediacodec: refactor ff_AMediaCodecList_getCodecByType
...
Allows to select a codec (encoder or decoder) only if it supports a
specific profile.
Adds ff_AMediaCodecProfile_getProfileFromAVCodecContext to convert an
AVCodecContext profile to a MediaCodec profile. It only supports H264
for now.
The codepath using MediaCodecList.findDecoderForFormat() (Android >= 5.0)
has been dropped as this method does not allow to select a decoder
compatible with a specific profile.
2016-06-15 16:36:13 +02:00
Matthieu Bouron
1729387c7a
lavc/mediacodec: improve error messages
2016-06-07 10:22:27 +02:00
Matthieu Bouron
93f4d1646e
lavc/mediacodec: bypass width/height restrictions when looking for a decoder
...
Codec width/height restrictions seem hardcoded at the OMX level and
seem arbitrary. Bypassing those restrictions allows a device to decode
streams at higher resolutions.
For example it allows a Nexus 5 to decode h264 streams with a resolution
higher than 1920x1080.
2016-06-07 10:22:20 +02:00
Matthieu Bouron
cb89fd2334
lavc/mediacodec: rename MediaFormat field clazz to mediaformat_class for consistency
2016-06-07 10:20:44 +02:00
Matthieu Bouron
56ef387e21
lavc/mediacodec: move struct declarations at the begin
2016-06-07 10:20:44 +02:00
Matthieu Bouron
79efd3b8b8
lavc/mediacodec: rename jfields_mapping to jni_amediacodeclist_mapping
2016-06-07 10:20:36 +02:00
Matthieu Bouron
f2e7f9966e
lavc/mediacodec: do not delete a local reference twice in case of error
2016-06-07 10:18:11 +02:00
Matthieu Bouron
12f47539ca
lavc/mediacodecdec_h264: rename input_ref to input_pkt
2016-06-03 10:20:54 +02:00
Matthieu Bouron
15432a903e
lavc/mediacodecdec_h264: switch to new BSF API
2016-06-03 10:20:54 +02:00
Matthieu Bouron
e0df56f25d
lavc/vaapi_encoder_{h264,h265}: fix bad format warning
2016-06-03 10:09:39 +02:00
Matthieu Bouron
d14deeb6bc
lavc/mediacodec: add missing MediaCodec.Get{Input,Output}Buffer() checks
2016-05-25 16:46:47 +02:00
Matthieu Bouron
fbc9359d85
lavc/mediacodec: factorize static fields initialization
2016-05-25 16:46:47 +02:00
Matthieu Bouron
f6265a5cbc
swresample/arm: add ff_resample_common_apply_filter_{x4,x8}_{float,s16}_neon
2016-05-13 21:13:46 +02:00
Matthieu Bouron
4c22441276
swscale/arm: add yuv2planeX_8_neon
2016-04-11 18:13:36 +02:00
Matthieu Bouron
7abc8e7ae3
swscale/arm: add ff_hscale_8_to_15_neon
2016-04-09 00:16:56 +02:00
Matthieu Bouron
ff4885face
swscale/arm/yuv2rgb: rename {process_1l,process_2l,compute}_16px{,_internal} macros
2016-04-01 17:23:45 +02:00
Matthieu Bouron
0286b56f2f
swscale/arm/yuv2rgb: factorize lsl in load_args_nvx
2016-04-01 17:23:45 +02:00
Matthieu Bouron
0649fe0fae
swscale/arm/yuv2rgb: factorize lsl in load_args_yuv420p
2016-04-01 17:23:45 +02:00
Matthieu Bouron
2aec59c07c
swscale/arm/yuv2rgb: remove unused store of dst + linesize in load_args_yuv422p
2016-04-01 17:23:45 +02:00
Matthieu Bouron
b3ea901945
swscale/arm/yuv2rgb: factorize lsl in load_args_yuv422p
2016-04-01 17:23:45 +02:00
Matthieu Bouron
466e209e6e
swscale/arm/yuv2rgb: fix comments in load_args_yuv422p
2016-04-01 17:23:45 +02:00
Matthieu Bouron
11b4acab8b
swscale/arm/yuv2rgb: remove 32bit code path
2016-04-01 17:23:45 +02:00
Matthieu Bouron
308d3ed5aa
lavc/mediacodec: use ternary operator to set slice-height value
2016-03-28 10:10:21 +02:00
Matthieu Bouron
03a6ed83b0
lavc/mediacodec: remove stray empty lines
2016-03-15 10:33:16 +01:00
Matthieu Bouron
31fe3c4d23
lavc/mediacodec: fix codec_name leak
2016-03-15 10:30:51 +01:00
Matthieu Bouron
33d69a9008
lavc/ffjni: remove use of private JniInvocation API to retreive the Java VM
...
Android N will prevent users from loading non-public APIs.
Users should only rely on the av_jni_set_java_vm function to set the
Java VM.
2016-03-14 10:05:33 +01:00
Matthieu Bouron
8d0a218058
lavc/ffjni: fix uninitialized variable
2016-03-10 18:17:28 +01:00
Matthieu Bouron
8c24523cc5
lavc/mediacodec: fix chroma width for yuv420p
2016-03-07 14:41:55 +01:00
Matthieu Bouron
81f14884b5
lavc/mjpegdec: avoid unneeded allocation if the frame is to be skipped
2016-03-07 12:36:23 +01:00
Matthieu Bouron
4737fe6907
lavc: add h264 mediacodec decoder
2016-03-07 11:28:29 +01:00
Matthieu Bouron
3ab178516e
lavc: add JNI support
2016-03-07 11:17:31 +01:00
Matthieu Bouron
885a6d8324
configure: only check dispatch header on darwin
...
Fixes build of lavd/jack on linux if dispatch happens to be available on
this platform. dispatch, as well as its dependencies kqueue and pwq are
generally not installed / distribued on linux systems. If it happens to
be the case, you want to explicitely link against the libraries (using
-ldispatch) as opposed to darwin where it is part of the standard
library and -ldispatch doesn't work.
2016-02-26 09:23:17 +01:00
Matthieu Bouron and Matthieu Bouron
666e2edc41
configure: add missing --strip option to show_help()
2016-02-25 21:21:39 +01:00
Matthieu Bouron
27f1ea5097
lavc/mjpegdec: use ptrdiff_t instead of ssize_t
...
Fixes build on msvc.
2016-01-28 09:25:59 +01:00
Matthieu Bouron
0d733ec379
lavc/mjpegdec: speed up scan data copy
2016-01-27 20:08:52 +01:00
Matthieu Bouron
e4e9b9454e
swscale/arm/yuv2rgb: add ff_yuv422p_to_{argb,rgba,abgr,bgra}_neon_{16,32}
2016-01-04 18:56:52 +01:00
Matthieu Bouron
b32a42295a
swscale/arm/yuv2rgb: add ff_yuv420p_to_{argb,rgba,abgr,bgra}_neon_{16,32}
2015-12-19 22:09:28 +01:00
Matthieu Bouron
e0dc22b99e
swscale/arm/yuv2rgb: disable neon if accurate_rnd is enabled
...
This disables the 32bit precision neon code path in favor of the
default C one and avoids breaking fate.
2015-12-19 22:09:28 +01:00
Matthieu Bouron
c2ad248321
swscale/arm/yuv2rgb: simplify process_16px_* macro call
2015-12-19 10:42:33 +01:00
Matthieu Bouron
ae1c750cb4
lavc/utils: use AVPixFmtDescriptor to probe palette formats
...
Also use the input frame format instead of the AVCodecContext one according
to the documentation of AVCodecContext.get_buffer2().
2015-12-15 10:35:47 +01:00
Matthieu Bouron
0c59d40ae0
lavfi: use a video frame pool for each link of the filtergraph
2015-12-15 10:35:41 +01:00
Matthieu Bouron
3d09065316
fate/api-jpeg-codec-param: rename to api-mjpeg-codec-param
2015-12-08 20:43:20 +01:00
Matthieu Bouron
5aca33c2cf
swscale/arm: add ff_nv{12,21}_to_{argb,rgba,abgr,bgra}_neon_16
2015-12-08 08:12:42 +01:00
Matthieu Bouron
102842d5fb
fate/api-{jpeg,png}-codec-param: add missing codec dependencies
2015-12-08 08:12:35 +01:00
Matthieu Bouron
bd0a9f603d
fate/api-codec-param: fix codec context leak
2015-12-08 08:12:35 +01:00
Matthieu Bouron
72eaf72623
lavf/utils: avoid decoding a frame to get the codec parameters
...
Avoid decoding a frame to get the codec parameters while the codec
supports FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM. This is particulary useful
to avoid decoding twice images (once in avformat_find_stream_info and
once when the actual decode is made).
2015-11-26 21:50:55 +01:00
Matthieu Bouron
39290f2715
fate: add FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM tests
2015-11-26 17:05:54 +01:00
Matthieu Bouron and Clément Bœsch
46feb66972
swscale/arm: add ff_nv{12,21}_to_{argb,rgba,abgr,bgra}_neon
...
Signed-off-by: Matthieu Bouron <matthieu.bouron@stupeflix.com >
Signed-off-by: Clément Bœsch <clement@stupeflix.com >
2015-11-23 14:47:12 +01:00
Matthieu Bouron
0cdc77f104
lavc/pngdec: set FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM capability
2015-11-15 10:13:24 +01:00
Matthieu Bouron
ad0203d7b0
lavc/mjpegdec: set FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM capability
2015-11-15 10:13:24 +01:00
Matthieu Bouron
e162542e15
lavc/internal: add FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
...
The decoder extracts and fills its parameters even if the frame is
skipped due to the skip_frame setting.
2015-11-15 10:13:00 +01:00
Matthieu Bouron
ff0dfb5c36
lavc/mjpegdec: honor skip_frame option
2015-10-29 12:04:11 +01:00