1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
Commit Graph

102884 Commits

Author SHA1 Message Date
Michael Niedermayer
1e24da5cfe avformat/flvdec: Check data before casting
Fixes: -nan is outside the range of representable values of type 'long'
Fixes: signed integer overflow: 1000 * -9223372036854775808 cannot be represented in type 'long'
Fixes: 34890/clusterfuzz-testcase-minimized-ffmpeg_dem_FLV_fuzzer-5334208657620992

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2021-06-12 14:22:42 +02:00
Shubhanshu Saxena
5509235818 lavfi/dnn: Fill Task using Common Function
This commit adds a common function for filling the TaskItems
in all three backends.

Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
2021-06-12 15:18:58 +08:00
Shubhanshu Saxena
6b961f7409 lavfi/dnn: Use uint8_t for async and do_ioproc in TaskItems
These properties have values either 0 or 1, so using uint8_t
is a better option as compared to int.

Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
2021-06-12 15:18:58 +08:00
Shubhanshu Saxena
9675ebbb91 lavfi/dnn: Add nb_output to TaskItem
Add nb_output property to TaskItem for use in TensorFlow backend
and Native backend.

Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
2021-06-12 15:18:58 +08:00
Shubhanshu Saxena
446b4f77c1 lavfi/dnn: Convert output_name to char** in TaskItem
Convert output_name to char **output_names in TaskItem and use it as
a pointer to array of output names in the DNN backend.

Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
2021-06-12 15:18:58 +08:00
Shubhanshu Saxena
f5ab8905fd lavfi/dnn: Extract TaskItem and InferenceItem from OpenVino Backend
Extract TaskItem and InferenceItem from OpenVino backend and convert
ov_model to void in TaskItem.

Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
2021-06-12 15:18:58 +08:00
Anton Khirnov
580e168a94 lavu/mem: un-inline av_size_mult()
There seems to be no compelling reason for it to be inline.
2021-06-11 19:42:47 +02:00
Anton Khirnov
71c0ef882e lavf: clarify probesize/format_probesize doxy
probesize is not used for probing the input format, but its
documentation claims it does.
2021-06-11 19:42:24 +02:00
Anton Khirnov
5384ee486a doc: fix generating doxy with out-of-tree builds
Broken in 753930bc73, as the path to
Doxyfile passed to doxy-wrapper.sh is relative to the build dir, while
the recipe cd's to the source dir before invoking the wrapper.
2021-06-11 19:28:27 +02:00
stuhlo
a501d55905 avcodec/cuviddec: correctly set key_frame with interlaced content
Fixes #9283

This fixes setting of 'key_frame' flag in AVFrame when input h264 packets represents individual fields of interlaced video.
In this case, pairs of two consecutive fields represents a single decoded picture and have identical 'CurrPicIdx', however, only
the first field is entirely intra-coded and has the flag 'intra_pic_flag' set and the second field was resetting the flag before
it was even read in the function 'cuvid_output_frame'.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2021-06-11 16:50:53 +02:00
James Almer
94af6414ab ffmpeg: silence a thread_safe_callbacks deprecation warning
Signed-off-by: James Almer <jamrial@gmail.com>
2021-06-10 21:57:44 -03:00
James Almer
ae0863b91d examples/muxing: add missing header
Fixed compilation broken by e67e02d156.

Signed-off-by: James Almer <jamrial@gmail.com>
2021-06-10 21:19:39 -03:00
James Almer
260dc1c5f3 examples/extract_mvs: add missing header
Fixed compilation broken by e67e02d156.

Signed-off-by: James Almer <jamrial@gmail.com>
2021-06-10 21:19:28 -03:00
James Almer
3191bb5c35 examples/demuxing_decoding: add missing header
Fixed compilation broken by e67e02d156.

Signed-off-by: James Almer <jamrial@gmail.com>
2021-06-10 21:19:12 -03:00
James Almer
2cccab96f6 avformat: make AVStream.pts_wrap_bits public
It can be useful to library users, and is currently being used by ffmpeg.c

Suggested-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-06-10 18:37:26 -03:00
Steven Liu
58c908cf94 avfilter/overlay_cuda: support expression of x y position
and add per-frame / init mode for it.

Signed-off-by: Steven Liu <liuqi05@kuaishou.com>
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2021-06-10 22:51:43 +02:00
zheng qian
f38458089f avformat/mpegtsenc: enable muxing of ARIB captions
Writes a general ARIB stream identifier descriptor, as well
as a data component descriptor which also includes a
pre-defined additional_arib_caption_info structure.

Signed-off-by: zheng qian <xqq@xqq.im>
2021-06-10 23:16:55 +03:00
Anton Khirnov
c8778606b3 lavu/video_enc_params: make sure blocks are properly aligned 2021-06-10 16:59:50 +02:00
Anton Khirnov
1256b71ba9 lavf/mp3dec: avoid avcodec.h dependency 2021-06-10 16:51:44 +02:00
Anton Khirnov
c9642265f8 lavf/mov_chan: avoid avcodec.h dependency 2021-06-10 16:51:44 +02:00
Anton Khirnov
823ca1ba84 lavf/matroska: avoid avcodec.h dependency 2021-06-10 16:51:44 +02:00
Anton Khirnov
f3dafe6a41 lavf/latmenc: avoid avcodec.h dependency 2021-06-10 16:51:44 +02:00
Anton Khirnov
e246625b01 lavf/id3v1: drop unnecessary avcodec.h include 2021-06-10 16:51:44 +02:00
Anton Khirnov
5620d18e66 lavf/hevc: drop unnecessary avcodec.h include 2021-06-10 16:51:44 +02:00
Anton Khirnov
f79d009b7c lavf/framecrcenc: avoid avcodec.h dependency 2021-06-10 16:51:44 +02:00
Anton Khirnov
239b7d2e40 lavf/adtsenc: avoid avcodec.h dependency 2021-06-10 16:51:44 +02:00
Anton Khirnov
e7196afe28 lavf/a64: avoid avcodec.h dependency 2021-06-10 16:51:44 +02:00
Anton Khirnov
e67e02d156 lavf/avformat.h: drop the avcodec.h include
Since AVStream.codec is gone, avformat.h does not require anything from
avcodec.h.
2021-06-10 16:51:44 +02:00
Anton Khirnov
ed728da3af tools/uncoded_frame: include required headers explicitly 2021-06-10 16:51:44 +02:00
Anton Khirnov
51200769c3 lavf/icoenc: include required headers explicitly 2021-06-10 16:51:44 +02:00
Anton Khirnov
c4c6c83421 lavf/internal: include avcodec.h explicitly
Do not depend on avformat.h to provide it.
2021-06-10 16:51:44 +02:00
Anton Khirnov
5d920255aa lavfi/lavfutils: include required headers explicitly 2021-06-10 16:51:44 +02:00
Anton Khirnov
c28823ff97 lavc/get_bits: avoid avcodec.h dependency
Include only defs.h, needed for AV_INPUT_BUFFER_PADDING_SIZE.
2021-06-10 16:51:44 +02:00
Anton Khirnov
58a39e3436 lavc/hevc_sei: include buffer.h explicitly
Do not rely on including it indirectly through get_bits.h->avcodec.h
2021-06-10 16:51:44 +02:00
Anton Khirnov
43002487cb lavc/mlp_parse: add required includes explicitly 2021-06-10 16:51:44 +02:00
Anton Khirnov
93822dacb9 lavc/dolby_e_parser: #include avcodec.h explicitly
This file uses definitions from it, but relies on an indirect include
through get_bits.h
2021-06-10 16:51:44 +02:00
Anton Khirnov
9dbdabe0e0 lavc/cbs_internal: clean up headers
Include all required headers explicitly, avoid avcodec.h dependency.
2021-06-10 16:51:44 +02:00
Anton Khirnov
e91901adf6 lavc/cbs: avoid avcodec.h dependency
Include only the headers that are actually needed.
2021-06-10 16:51:44 +02:00
Anton Khirnov
f3f404edd2 lavc/cbs_bsf.h: explicitly #include all required headers 2021-06-10 16:51:44 +02:00
Anton Khirnov
7c9763070d lavc: move av_get_profile_name() from avcodec.h to codec.h 2021-06-10 16:51:44 +02:00
Anton Khirnov
bb3648e676 lavc: move av_get_audio_frame_duration2() from avcodec.h to codec_par.h 2021-06-10 16:51:44 +02:00
Anton Khirnov
881db34f6a lavc: move av_get_pcm_codec() from avcodec.h to codec_id.h 2021-06-10 16:51:44 +02:00
Anton Khirnov
2628dff366 lavc: move avcodec_profile_name() from avcodec.h to codec_id.h 2021-06-10 16:51:44 +02:00
Anton Khirnov
000f35125f lavc: move av_get_[exact_]bits_per_sample() to codec_id.h 2021-06-10 16:51:44 +02:00
Anton Khirnov
ff0a96046d lavc: move small misc definitions into a separate header
This will allow to avoid #including the entire avcodec.h in some places.
2021-06-10 16:51:44 +02:00
zhilizhao
cf1746d779 ffmpeg_videotoolbox: skip memory copy if hwaccel_output_format match
Simple test results:

Command:
./ffmpeg -y -hwaccel videotoolbox -hwaccel_output_format videotoolbox_vld \
  -i test.mp4 -an -c:v h264_videotoolbox -benchmark out.mp4

Before:
frame= 1221 fps= 66 q=-0.0 Lsize=    3144kB time=00:00:20.33 bitrate=1266.6kbits/s dup=4 drop=0 speed= 1.1x
bench: utime=2.714s stime=1.218s rtime=18.574s

After:
frame= 1221 fps=137 q=-0.0 Lsize=    3144kB time=00:00:20.33 bitrate=1266.4kbits/s dup=4 drop=0 speed=2.28x
bench: utime=1.450s stime=1.440s rtime=8.924s

It has limited usecase since there is no video filter support, so
a log message is added to notify the user.

Reviewed-by: Steven Liu <liuqi05@kuaishou.com>
2021-06-10 19:54:03 +08:00
Lynne
08d933bf61
hwcontext_vulkan: fix typo in vulkan_device_init()
load_functions() did not load the device-level functions.
2021-06-10 12:24:04 +02:00
Gyan Doshi
99bbf4a5be doc/ffmpeg: document reinit_filter 2021-06-10 09:57:18 +05:30
James Almer
591b88e678 avformat: move AVStream.{first,cur}_dts to AVStreamInternal
They are private fields, no reason to have them exposed in a public header.

Signed-off-by: James Almer <jamrial@gmail.com>
2021-06-09 13:55:25 -03:00
James Almer
39affa5f8e avdevice/libcdio: fix AVStream.cur_dts usage
It should not be accessed from outside of libavformat.

Signed-off-by: James Almer <jamrial@gmail.com>
2021-06-09 13:55:25 -03:00