Commit Graph
100 Commits
Author SHA1 Message Date
Matthieu Bouron 2e17435480 avformat/mov: adjust skip_samples according to seek timestamp
Currently skip_samples is set to start_pad if sample_time is lesser or
equal to 0. This can cause issues if the stream starts with packets that
have negative pts. Calling avformat_seek_file() with ts set to 0 on such
streams makes the mov demuxer return the right corresponding packets
(near the 0 timestamp) but set skip_samples to start_pad which is
incorrect as the audio decoder will discard the returned samples
according to skip_samples from the first packet it receives (which has
its timestamp near 0).

For example, considering the following audio stream with start_pad=1344:

 [PKT pts=-1344] [PKT pts=-320] [PKT pts=704] [PKT pts=1728] [...]

Calling avformat_seek_file() with ts=0 makes the next call to
av_read_frame() return the packet with pts=-320 and a skip samples
side data set to 1344 (start_pad). This makes the audio decoder
incorrectly discard (1344 - 320) samples.

This commit makes the move demuxer adjust skip_samples according to the
stream start_pad, seek timestamp and first sample timestamp.

The above example will now result in av_read_frame() still returning the
packet with pts=-320 but with a skip samples side data set to 320
(src_pad - (seek_timestamp - first_timestamp)). This makes the audio
decoder only discard 320 samples (from pts=-320 to pts=0).

Signed-off-by: Marton Balint <cus@passwd.hu>
2021-01-09 17:08:27 +01:00
Matthieu Bouron 6268034b5d avcodec/mediacodec_wrapper: use MediaFormat to probe frame color characteristics 2020-05-25 18:07:45 +02:00
Matthieu Bouron 5216edbc54 avcodec/mediacodec_wrapper: fix {input,output}_buffers global reference leak
Fixes ticket #8607.

Signed-off-by: Matthieu Bouron <matthieu.bouron@gmail.com>
2020-04-15 09:43:16 +02:00
Matthieu Bouron 1921f866ec avformat/mov: parse sdtp atom and set the pkt disposable flag accordingly
Allows the creation of the sdtp atom while remuxing MP4 to MP4. This
atom is required by Apple devices (iPhone, Apple TV) in order to accept
2160p medias.
2019-10-12 14:36:15 +02:00
Matthieu Bouron 817235b195 avcodec/mediacodec_wrapper: remove unused local variables in ff_AMediaCodec_getCodecNameByType() 2019-07-22 08:57:33 +02:00
Matthieu Bouron 3f232d713d avcodec/mediacodec_wrapper: fix a potential local reference leak in ff_AMediaCodec_getCodecNameByType() 2019-07-22 08:57:33 +02:00
Matthieu Bouron 9cb8875c16 avcodec/mediacodec_wrapper: fix a local reference leak in ff_AMediaCodec_getName() 2019-07-22 08:57:33 +02:00
Matthieu Bouron 6251ad89a7 avcodec/mediacodec_wrapper: add missing "avcodec.h" include 2019-07-22 08:57:33 +02:00
Matthieu Bouron 7c2c5c4940 avcodec/mediacodecdec: re-indent after previous commit 2019-06-13 11:41:18 +02:00
Matthieu Bouron fef5ba4023 avcodec/mediacodecdec: remove unneeded else block in ff_mediacodec_dec_send() 2019-06-13 11:41:18 +02:00
Matthieu Bouron d83985ce11 avcodec/mediacodecdec: try to receive a frame after signaling EOF to the codec
Avoids returning EAGAIN after signaling EOF to the codec in
ff_mediacodec_dec_send() so we can try to receive a frame before
returning in mediacodec_receive_frame().

This helps avoiding an extra round-trip between avcodec_send_frame() and
avcodec_receive_frame() while draining the remaining frames.
2019-06-13 11:41:18 +02:00
Matthieu Bouron e294b5cf64 RELEASE: update for git after 4.0 branchpoint 2018-09-25 17:29:24 +02:00
Matthieu Bouron 67d0911f27 avcodec/mediacodecdec_common: make stride and slice-height non-mandatory fields
Fixes decoding on the Samsung Chromebook Pro which do not set the codec
output format stride and slice-height fields.
2018-04-19 13:55:30 +02:00
Matthieu Bouron 41d7c4d381 avcodec/mediacodecdec_common: make INFO_TRY_AGAIN trace messages more consistent
Signed-off-by: Aman Gupta <aman@tmm1.net>
Signed-off-by: Matthieu Bouron <matthieu.bouron@gmail.com>
2018-03-12 09:47:34 +01:00
Matthieu Bouron 2238e54ef0 avcodec/mediacodecdec: factorize codec declarations 2018-03-03 21:18:39 +01:00
Matthieu Bouron af167d970b avcodec/mediacodecdec: factorize common extradata functions 2018-03-03 21:18:39 +01:00
Matthieu Bouron 535e020225 avcodec/mediacodecdec: add missing "libavutil/internal.h" include
libavutil/internal.h defines NULL_IF_CONFIG_SMALL.
2018-03-03 21:18:39 +01:00
Matthieu Bouron c55ba52a6a avcodec/mediacodec_wrapper: load and use MediaFormat.constainsKey()
Avoids triggering an exception in MediaFormat getter functions if the
key does not exist.
2018-03-03 21:18:35 +01:00
Matthieu Bouron cc9875dc29 avcodec/mediacodecdec_common: remove unused field from MediaCodecDecContext 2018-03-03 21:17:21 +01:00
Matthieu Bouron 5d69e249c8 avcodec/mediacodecdec_common: remove spurious space 2018-03-03 21:17:21 +01:00
Matthieu Bouron a079eaba8e avcodec/mediacodecdec_common: refactor mediacodec_dec_parse_format() 2018-03-03 21:17:21 +01:00
Matthieu Bouron e30b46b1ae lavc/mediacodec_wrapper: allocate MediaCodec.BufferInfo once 2018-01-06 22:12:51 +01:00
Matthieu Bouron d19174c673 lavc/mediacodecdec: remove mediacodec_process_data() indirection 2018-01-06 22:12:51 +01:00
Matthieu Bouron 1f1207145a lavc/mediacodec_wrapper: fix potential jni global reference leak 2017-12-16 00:52:28 +01:00
Matthieu Bouron f3cffd121b lavc/mediacodec_wrapper: factorize MediaCodec creation functions 2017-12-16 00:52:28 +01:00
Matthieu Bouron dd8ffb191f lavc/mediacodec_wrapper: fix jni vaargs types
Fixes decoding on 32-bit devices with Android NDK >= 15.
2017-09-15 14:19:16 +02:00
Matthieu Bouron 0a24d7ca83 lavc/aarch64: add sbrdsp neon implementation
autocorrelate_c: 644.0
autocorrelate_neon: 420.0
hf_apply_noise_0_c: 1688.5
hf_apply_noise_0_neon: 1498.6
hf_apply_noise_1_c: 1691.2
hf_apply_noise_1_neon: 1500.6
hf_apply_noise_2_c: 1688.1
hf_apply_noise_2_neon: 1500.3
hf_apply_noise_3_c: 1696.6
hf_apply_noise_3_neon: 1502.2
hf_g_filt_c: 2117.8
hf_g_filt_neon: 1218.7
hf_gen_c: 4573.4
hf_gen_neon: 2461.0
neg_odd_64_c: 72.0
neg_odd_64_neon: 64.7
qmf_deint_bfly_c: 1107.6
qmf_deint_bfly_neon: 291.6
qmf_deint_neg_c: 210.4
qmf_deint_neg_neon: 107.4
qmf_post_shuffle_c: 163.0
qmf_post_shuffle_neon: 107.7
qmf_pre_shuffle_c: 120.5
qmf_pre_shuffle_neon: 110.7
sum64x5_c: 1361.6
sum64x5_neon: 435.4
sum_square_c: 1686.4
sum_square_neon: 787.2
2017-07-03 14:29:22 +02:00
Matthieu Bouron 7864e07f4a checkasm: add sbrdsp tests 2017-07-03 14:28:17 +02:00
Matthieu Bouron db5bf64b21 lavc/x86: clear r2 higher bits in ff_sbr_sum_square
Suggested-by: James Almer <jamrial@gmail.com>
2017-06-26 09:55:23 +02:00
Matthieu Bouron 067e42b851 checkasm/aarch64: fix tests returning a float
Avoids overriding the v0 register (which containins the result of the
tested function) in checkasm_call_checked.
2017-06-22 09:18:10 +02:00
Matthieu Bouron 204008354f lavc/aarch64/simple_idct: fix build with Xcode 7.2 2017-06-14 23:20:58 +02:00
Matthieu Bouron 8aa60606fb lavc/aarch64/simple_idct: fix idct_col4_top coefficient
Fixes regression introduced by 5d0b8b1ae3.
2017-06-13 17:46:55 +02:00
Matthieu Bouron 3839580b71 lavc/mediacodecdec: switch to the new generic filtering mechanism 2017-06-13 14:33:54 +02:00
Matthieu Bouron 37de7f7175 lavc/ffjni: add missing '\n' 2017-05-23 15:25:11 +02:00
Matthieu Bouron fb3228bee8 lavc/mediacodec_wrapper: do not declare JNIAMedia{Codec,CodecList,Format}Fields on the stack 2017-05-23 15:25:07 +02:00
Matthieu Bouron 224bb46fb8 lavc/mediacodec_wrapper: fix local reference leaks 2017-05-23 15:25:03 +02:00
Matthieu Bouron ab61b79b1c lavf/mov: make invalid m{d,v}hd time_scale default to 1 instead of erroring out
Some samples have their metadata track time_scale incorrectly set to 0
and the check introduced by a398f054fd
prevents playback of those samples. Setting the time_scale to 1 fixes
playback.
2017-05-20 12:56:35 +02:00
Matthieu Bouron 1795dccde0 lavc/mediacodec_wrapper: fix local reference leaks
Reviewed-by: Clément Bœsch <u@pkh.me>
2017-05-11 16:29:03 +02:00
Matthieu Bouron 2f43897f65 lavc/ffjni: fix local reference leak
Reviewed-by: Clément Bœsch <u@pkh.me>
2017-05-11 16:28:59 +02:00
Matthieu Bouron 5d0b8b1ae3 lavc/aarch64/simple_idct: fix iOS build without gas-preprocessor
Separates macro arguments with commas and passes .4H/.8H as macro
arguments instead of 4H/8H (the later form being interpreted as an
hexadecimal value).

Fixes ticket #6324.

Suggested-by: Martin Storsjö <martin@martin.st>
2017-05-11 16:28:54 +02:00
Matthieu Bouron 400378b7b3 doc/examples/extract_mvs: re-indent after previous commit 2017-04-04 14:10:22 +02:00
Matthieu Bouron 1cf93196fc doc/examples/extract_mvs: make pkt local to the main function 2017-04-04 14:10:22 +02:00
Matthieu Bouron 82116bd8a4 doc/examples/extract_mvs: switch to new decoding API 2017-04-04 14:10:22 +02:00
Matthieu Bouron 3fce174d4f lavc/mediacodecdec: set AV_CODEC_CAP_AVOID_PROBING capability 2017-04-04 09:50:44 +02:00
Matthieu Bouron 6ffaf90b32 lavc/mediacodecdec: switch to AV_CODEC_CAP_DELAY 2017-04-04 09:50:44 +02:00
Matthieu Bouron 03372d0a90 doc/examples/filtering_audio: switch to new decoding API 2017-03-30 16:20:13 +02:00
Matthieu Bouron afd257b43f doc/examples/filtering_video: switch to new decoding API 2017-03-30 16:20:07 +02:00
Matthieu Bouron b5e1ec5660 Merge commit 'e3fb74f7f9a8f1895381355f40c92cac3c1023d9'
* commit 'e3fb74f7f9a8f1895381355f40c92cac3c1023d9':
  lavfi: Always propagate hw_frames_ctx through links

Merged-by: Matthieu Bouron <matthieu.bouron@gmail.com>
2017-03-30 00:02:08 +02:00
Matthieu Bouron 78e871ebbc Merge commit '7e2561fa8313982aa21f7657953eedeeb33b210d'
* commit '7e2561fa8313982aa21f7657953eedeeb33b210d':
  lavfi: Use ff_get_video_buffer in all filters using hwframes
  vf_hwupload_cuda: Fix build error

Merged-by: Matthieu Bouron <matthieu.bouron@gmail.com>
2017-03-29 23:33:20 +02:00
Matthieu Bouron b265e5ba50 Merge commit '7433feb82f75827884d909de34d341a1c4401d4a'
* commit '7433feb82f75827884d909de34d341a1c4401d4a':
  lavfi: Make default get_video_buffer work with hardware frames

Merged-by: Matthieu Bouron <matthieu.bouron@gmail.com>
2017-03-29 23:12:00 +02:00
Matthieu Bouron 64b5539985 doc/examples/extract_mvs: switch to codecpar 2017-03-28 17:46:29 +02:00
Matthieu Bouron 4a946aca7c doc/examples/remuxing: switch to codecpar
Also limits remuxing to audio, video and subtitle streams.
2017-03-28 17:46:23 +02:00
Matthieu Bouron 7e3e0f87e6 doc/examples/muxing: re-indent block 2017-03-28 12:41:46 +02:00
Matthieu Bouron d839c4716c configure: error out if jni is enabled and cannot be found 2017-03-20 18:48:44 +01:00
Matthieu Bouron e2adbcbd97 Merge commit '0638b99cdba52554691fc668d9e477bc184c7a33'
* commit '0638b99cdba52554691fc668d9e477bc184c7a33':
aiff: Skip padding byte for odd-sized chunks

Also removes to odd-size checks from get_aiff_header and get_meta to use
the generic path introduced by the original commit.

Merged-by: Matthieu Bouron <matthieu.bouron@gmail.com>
2017-03-17 13:31:03 +01:00
Matthieu Bouron 0c6105dde0 lavc/tests/dct/aarch64: add ff_simple_idct_neon test 2017-03-16 12:00:41 +01:00
Matthieu Bouron 4c8e528d19 lavc/aarch64: add ff_simple_idct{,_add,_put}_neon functions 2017-03-16 12:00:41 +01:00
Matthieu Bouron 1ade4d87ba lavc/h264dec: use OFFSET macro 2017-03-15 11:46:15 +01:00
Matthieu Bouron 5ef2f4f394 swr/aarch64: add missing ret to ff_resample_common_apply_filter_x8_float_neon 2017-02-16 11:52:32 +01:00
Matthieu Bouron d30870cc73 Merge commit 'ed9b2a5178d7a7c5a95694da3a808af327f36aff'
* commit 'ed9b2a5178d7a7c5a95694da3a808af327f36aff':
  mov: Rework the check for invalid indexes in stsc

This commit is a noop, see 3c058f5701.

The proposed fix breaks seeking in multiple_stsd.mp4 (ticket #3962) and
playback of wwwq_cut.mp4 (ticket #2991).

Merged-by: Matthieu Bouron <matthieu.bouron@gmail.com>
2017-02-02 12:15:01 +01:00
Matthieu Bouron 2ae8278832 lavc/mjpegdec: consume SOS data even if the frame is discarded
Speeds up next marker search when a SOS marker is found but the frame is
discarded (which happens in avformat_find_stream_info).
2017-01-29 21:54:16 +01:00
Matthieu Bouron cf3affabb4 lavc/h264dec: re-indent after previous commit 2017-01-20 17:29:09 +01:00
Matthieu Bouron 639e262971 lavc/h264dec: make sure a slice is decoded before finishing setup
Fixes regression in fate-h264-attachment-631 with THREADS=8 introduced
by bdbbb8f11e.
2017-01-20 17:28:40 +01:00
Matthieu Bouron bdbbb8f11e Merge commit 'f450cc7bc595155bacdb9f5d2414a076ccf81b4a'
* commit 'f450cc7bc595155bacdb9f5d2414a076ccf81b4a':
  h264: eliminate decode_postinit()

Also includes fixes from 1f7b4f9abc and e344e65109.

Original patch replace H264Context.next_output_pic (H264Picture *) by
H264Context.output_frame (AVFrame *). This change is discarded as it
is incompatible with the frame reconstruction and motion vectors
display code which needs the extra information from the H264Picture.

Merged-by: Clément Bœsch <u@pkh.me>
Merged-by: Matthieu Bouron <matthieu.bouron@gmail.com>
2017-01-17 14:38:48 +01:00
Matthieu Bouron adf5dc90a9 avutil/tests: add aes_ctr, audio_fifo and imgutils to .gitignore 2017-01-17 10:08:05 +01:00
Matthieu Bouron e109c54a69 swresample/arm: cosmetic fixes 2017-01-13 21:24:25 +01:00
Matthieu Bouron 0265aec565 swresample/aarch64: add ff_resample_common_apply_filter_{x4,x8}_{float,s16}_neon 2017-01-13 21:24:19 +01:00
Matthieu Bouron e1f4971209 lavfi: use an audio frame pool for each link of the filtergraph 2017-01-12 10:22:52 +01:00
Matthieu Bouron b1ed7957b8 lavfi/framepool: cosmetic style fixes 2017-01-12 10:22:52 +01:00
Matthieu Bouron e2d336cf64 lavfi/framepool: re-indent after previous commit 2017-01-12 10:22:52 +01:00
Matthieu Bouron eb3368178e lavfi/framepool: add audio support 2017-01-12 10:22:52 +01:00
Matthieu Bouron b1f68f00b1 lavfi/framepool: rename FFVideoFramePool to FFFramePool 2017-01-12 10:22:52 +01:00
Matthieu Bouron 58994d7bca swscale/arm/yuv2rgb: make the code bitexact with its aarch64 counter part 2016-04-01 17:23:45 +02:00
Matthieu Bouron 5629361cc2 swscale/arm/yuv2rgb: save a few instructions by processing the luma line interleaved 2016-04-01 17:23:45 +02:00
Matthieu Bouron 339668301e swscale/arm/yuv2rgb: re-order compute_rgba macro arguments 2016-04-01 17:23:45 +02:00
Matthieu Bouron 562653b731 swscale/arm/yuv2rgb: macro-ify 2016-04-01 17:23:45 +02:00
Matthieu Bouron 44913d1945 swscale/arm/yuv2rgb: fix typo 2016-01-04 18:56:52 +01:00
Matthieu Bouron f6518e51b8 lavf/mxfdec: support segmented frame layout as separate fields layout
According to S377M, segmented frame layout is identical to separate
field layout except that the two fields are taken from a single scan
of the incoming image, ie: they are coincident in time. Thus the
resulting frame is progressive.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-04 13:03:29 +02:00
Matthieu Bouron cf16b459a8 libavdevice/avfoundation: use pts/dts provided by the CMSampleBuffer API
Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 04:08:33 +02:00
Matthieu Bouron 021b023751 libavdevice/avfoundation: add capture_mouse_clicks option
Support mouse clicks capture while recording a screen on OSX >= 10.7.

Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 04:07:43 +02:00
Matthieu Bouron c908cae74c libavdevice/avfoundation: add capture_cursor option
Add support for cursor capturing while recording a screen for OSX >=
10.8.

Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 03:50:31 +02:00
Matthieu Bouron 573a77a1b6 libavdevice/avfoundation: add framerate and video size options
Support framerate ands video size options on AVCaptureDevices for
OSX >= 10.7 and iOS >= 7.0.

For screen captures, only the framerate option is taken into account.

Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 03:49:38 +02:00
Matthieu Bouron 8c0a865ad9 mov: skip version and flags attributes in mov_read_chan()
Fixes decting channel layout for files with uncommon audio, such as
FL and FR in two separate streams. Introduced in 3bab7cd.

CC: libav-devel@libav.org
Sample-Id: ticket1474.mov
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-12-05 13:03:49 +00:00
Matthieu Bouron 570af382ee mxf: Handle identification metadata
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-06 19:28:20 +01:00
Matthieu Bouron 5b930092c3 mxf: Set audio packets pts
Extrapolate audio timestamps based on the number of samples demuxed.

Deal with some MXF nastiness involving fractional number of
samples per EditUnit when seeking (the specs handwave this away).

Further fixes from Tomas Härdin.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-06 19:28:20 +01:00
Matthieu Bouron e118bb1a33 mxf: Introduce ff_mxf_get_samples_per_frame
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-06 19:28:20 +01:00
Matthieu Bouron c716624853 mxf: Read field dominance flag
And export the information in field_order.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-02-01 16:26:44 +01:00
Matthieu Bouron 054454c63a mxf: Add jpeg2000 codec to intra only codecs
Conform with SMPTE RP 224 and SMPTE s422.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-10-10 18:22:46 +02:00
Matthieu Bouron c461265a76 lavf/mxfdec: add j2k codec to intra only codecs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-28 22:57:52 +02:00
Matthieu Bouron 88a1ff2233 MAINTAINERS: add myself as maintainer for lavf/aiff* and lavf/movenc.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-08 16:39:46 +02:00
Matthieu Bouron 8a09195545 lavf/movenc: improve psp check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-28 17:05:05 +02:00
Matthieu Bouron ee4ef139e3 lavf/movenc: remove useless checks on AVOutputFormat
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-28 17:05:01 +02:00
Matthieu Bouron 621ab4e4ef lavf/movenc: check ff_mov_init_hinting() return
Fixes a crash when the codec stream is not supported by the rtp muxer.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-04 19:51:40 +02:00
Matthieu Bouron 4943eff2cd lavf/movenc: fix writing of some iTunes metadata tag
Fix metadata display under iTunes for files using pgap, hdvd, stick,
tvsn and tves tags.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-03 17:18:49 +02:00
Matthieu Bouron 9e6d063dbc lavf/movenc: use ffio_fill()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-06-30 16:28:51 +02:00
Matthieu Bouron f468325d34 lavf/id3v2enc: fix cover art display on some software
Adding an arbitrary amount of padding bytes at the end of the
ID3 metadata fixes cover art display for some software (iTunes,
Traktor, Serato, Torq).

For reference (ID3 metadata):

[ Apic frames ]                      -> cover doesn't show up
[ Apic frames, Padding ]             -> ok
[ Apic frames, ID3 frames ]          -> ok
[ ID3 frames, Apic frames ]          -> cover doesn't show up
[ ID3 frames, Apic frames, Padding ] -> ok
2013-05-30 21:16:57 +00:00
Matthieu Bouron c8b3644494 lavf/mxf: fix parsing of timestamps
Correct bit mask for month/day/hour/min/sec values.

For reference the timestamp format specified in S377M is as follow:
  year (int16), month (uint8), day (uint8), hour (uint8), sec (uint8),
  msec (uint8).
A value of 0 for every fields means timestamp "unknown".

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-13 17:26:16 +02:00
Matthieu Bouron f43da3def7 lavfi/aphaser: switch to AVOption-based system 2013-04-11 01:37:57 +02:00
Matthieu Bouron a5ce5ac9fb lavfi/apad: switch to AVOption-based system 2013-04-11 01:31:08 +02:00
Matthieu Bouron 2b17e58163 lavfi/afade: switch to AVOption-base system 2013-04-11 01:25:02 +02:00