1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
FFmpeg/libavutil
Marton Balint 00117e28c1 avutil/timecode: fix av_timecode_get_smpte_from_framenum with 50/60 fps
SMPTE 12M timecode can only count frames up to 39, because the tens-of-frames
value is stored in 2 bit. In order to resolve this 50/60 fps SMPTE timecode is
using the field bit (which is the same bit as the phase correction bit) to
signal the least significant bit of a 50/60 fps timecode. See SMPTE ST
12-1:2014 section 12.1.

Therefore we slightly change the format of the return value of
av_timecode_get_smpte_from_framenum and AV_FRAME_DATA_S12M_TIMECODE and start
using the previously unused Phase Correction bit as Field bit. (As the SMPTE
standard suggests)

We add 50/60 fps support to av_timecode_get_smpte_from_framenum by calling the
recently added av_timecode_get_smpte function in it which already handles this
properly.

This change affects the decklink indev and the DV and MXF muxers. MXF has no
fate test for 50/60fps content, DV does, therefore the changes.

MediaInfo (a recent version) confirms that half-frame timecode must be inserted
to DV. MXFInspect confirms valid timecode insertion to the System Item of MXF
files. For MXF, also see EBU R122.

Note that for DV the field flag is not used because in the HDV specs (SMPTE
370M) it is still defined as biphase mark polarity correction flag. So it
should not matter that the DV muxer overrides the field bit.

Signed-off-by: Marton Balint <cus@passwd.hu>
2020-09-13 17:51:57 +02:00
..
aarch64 aarch64: Explicitly forbid using the x18 register 2020-05-15 21:22:22 +03:00
arm Merge commit '41cf3e3b1ca375962951fde1b90a03b16197d205' 2019-02-20 14:48:58 -03:00
avr32
bfin
mips avutil/mips/generic_macros_msa: Fix prob that 'ulw' and 'uld' unsupported by clang. 2020-07-30 00:23:45 +02:00
ppc avutil/ppc/cpu: Fix power8 linux detection 2019-02-05 09:29:57 +02:00
sh4
tests lavu/avstring: deprecate av_d2str(). 2020-08-21 11:01:39 +02:00
tomi
x86 avutil/x86inc: fix warnings when assembling with Nasm 2.15 2020-07-12 11:30:23 -03:00
.gitignore
adler32.c
adler32.h
aes_ctr.c
aes_ctr.h
aes_internal.h
aes.c
aes.h
attributes.h avutil/attributes: Fix too many warning: false is not defined [-Wundef] 2020-05-30 17:29:23 +08:00
audio_fifo.c
audio_fifo.h
avassert.h
avsscanf.c avutil/avsscanf: Add () to avoid integer overflow in scanexp() 2020-07-01 11:41:35 +02:00
avstring.c lavu/avstring: deprecate av_d2str(). 2020-08-21 11:01:39 +02:00
avstring.h lavu/avstring: deprecate av_d2str(). 2020-08-21 11:01:39 +02:00
avutil.h
avutilres.rc
base64.c
base64.h
blowfish.c
blowfish.h
bprint.c
bprint.h
bswap.h
buffer_internal.h avutil/buffer: separate public and internal flags inside AVBuffers 2020-06-05 10:07:05 -03:00
buffer.c lavu/buffer: forward av_buffer_realloc() error code. 2020-08-21 11:44:30 +02:00
buffer.h avutil/buffer: avutil/buffer: add a mention that some arguments from av_buffer_pool_init2() may be NULL 2020-06-05 10:07:04 -03:00
camellia.c
camellia.h
cast5.c
cast5.h
channel_layout.c avutil/channel_layout: add 22.2 layout 2020-08-04 00:17:56 +03:00
channel_layout.h avutil/channel_layout: add 22.2 layout 2020-08-04 00:17:56 +03:00
color_utils.c
color_utils.h
colorspace.h avutil/colorspace: add macros for RGB->YUV BT.709 2019-04-19 17:10:20 +05:30
common.h avutil/common: Fix integer overflow in av_ceil_log2_c() 2020-06-30 20:35:23 +02:00
cpu_internal.h libavutil: Detect MMI and MSA flags for MIPS 2020-07-23 17:21:58 +02:00
cpu.c libavutil: Detect MMI and MSA flags for MIPS 2020-07-23 17:21:58 +02:00
cpu.h libavutil: Detect MMI and MSA flags for MIPS 2020-07-23 17:21:58 +02:00
crc.c
crc.h
cuda_check.h avutil/cuda_check: Fix non-dynamic-loader implementation 2019-02-24 09:13:01 -08:00
des.c
des.h
dict.c avutil/dict: av_realloc -> av_realloc_array() 2020-06-06 10:32:07 +08:00
dict.h
display.c
display.h
dovi_meta.c lavutil: add DOVI related header 2020-04-23 08:05:15 +08:00
dovi_meta.h lavutil: add DOVI related header 2020-04-23 08:05:15 +08:00
downmix_info.c
downmix_info.h
dynarray.h avutil/dynarry.h: fix comment grammar mistakes of FF_DYNARRAY_ADD 2019-06-01 17:43:48 +08:00
encryption_info.c avutil/encryption_info: Don't pass NULL to memcpy 2019-09-20 23:26:34 +02:00
encryption_info.h
error.c
error.h
eval.c avutil/eval: Add av_expr_count_func() similar to av_expr_count_vars() 2019-12-28 11:20:48 +01:00
eval.h avutil/eval: Add av_expr_count_func() similar to av_expr_count_vars() 2019-12-28 11:20:48 +01:00
ffmath.h
fifo.c
fifo.h
file_open.c avpriv_tempfile: add djgpp fallback 2018-11-28 22:16:07 +11:00
file.c avutil/file: add more check befor destory the buffer 2019-08-30 09:16:01 +08:00
file.h
fixed_dsp.c
fixed_dsp.h
float_dsp.c
float_dsp.h
frame.c libavutil/frame: avoid UB when getting plane sizes 2020-07-22 11:42:54 -03:00
frame.h avutil/timecode: add description for SMPTE binary format 2020-07-15 05:47:14 +08:00
hash.c
hash.h
hdr_dynamic_metadata.c Add HDR dynamic metadata struct (for SMPTE 2094-40) to libavutil 2018-12-21 17:52:00 +01:00
hdr_dynamic_metadata.h Add HDR dynamic metadata struct (for SMPTE 2094-40) to libavutil 2018-12-21 17:52:00 +01:00
hmac.c
hmac.h
hwcontext_cuda_internal.h avutil/hwcontext_cuda: allow using primary CUDA device context 2019-11-26 16:24:40 +01:00
hwcontext_cuda.c hwcontext: add av_hwdevice_ctx_create_derived_opts 2020-05-23 19:07:26 +01:00
hwcontext_cuda.h avutil/hwcontext_cuda: allow using primary CUDA device context 2019-11-26 16:24:40 +01:00
hwcontext_d3d11va.c avutil/hwcontext_d3d11va: Use secure dlopen. 2020-02-15 23:53:54 +11:00
hwcontext_d3d11va.h
hwcontext_drm.c
hwcontext_drm.h
hwcontext_dxva2.c lavu/hwcontext_d3d: Cast src pointers calling av_image_copy*(). 2019-04-19 14:20:24 +02:00
hwcontext_dxva2.h
hwcontext_internal.h hwcontext: add av_hwdevice_ctx_create_derived_opts 2020-05-23 19:07:26 +01:00
hwcontext_mediacodec.c
hwcontext_mediacodec.h
hwcontext_opencl.c hwcontext: add av_hwdevice_ctx_create_derived_opts 2020-05-23 19:07:26 +01:00
hwcontext_opencl.h
hwcontext_qsv.c hwcontext: add av_hwdevice_ctx_create_derived_opts 2020-05-23 19:07:26 +01:00
hwcontext_qsv.h
hwcontext_vaapi.c hwcontext_vaapi: Don't require a render node when deriving from DRM 2020-08-31 21:42:14 +01:00
hwcontext_vaapi.h
hwcontext_vdpau.c avutil/hwcontext_vdpau: Correctly initialise pixfmts 2020-07-12 08:33:40 -07:00
hwcontext_vdpau.h
hwcontext_videotoolbox.c avcodec/videotoolbox: add support for full range pixel formats 2019-09-04 10:51:20 -07:00
hwcontext_videotoolbox.h avcodec/videotoolbox: add support for full range pixel formats 2019-09-04 10:51:20 -07:00
hwcontext_vulkan.c hwcontext_vulkan: remove plane size alignment checks when host importing 2020-08-02 22:48:51 +02:00
hwcontext_vulkan.h hwcontext_vulkan: fix make checkheaders fail 2020-06-04 21:26:21 +08:00
hwcontext.c hwcontext: add av_hwdevice_ctx_create_derived_opts 2020-05-23 19:07:26 +01:00
hwcontext.h hwcontext: add av_hwdevice_ctx_create_derived_opts 2020-05-23 19:07:26 +01:00
imgutils_internal.h
imgutils.c avutil/imgutils: always zero data pointers in av_image_fill_pointers() 2020-07-26 21:51:24 -03:00
imgutils.h avutil/imgutils: add utility to get plane sizes 2020-07-22 11:41:57 -03:00
integer.c
integer.h
internal.h lavu/internal: Fix comment for avpriv_dict_set_timestamp 2020-06-14 12:27:10 +08:00
intfloat.h
intmath.c
intmath.h
intreadwrite.h intreadwrite: add AV_RL64A, AV_WL64A 2019-01-11 23:43:37 +11:00
lfg.c
lfg.h avutil/lfg: Correct index increment type to avoid undefined behavior 2019-11-24 22:58:59 +01:00
libavutil.v
libm.h
lls.c
lls.h
log2_tab.c
log.c avutil/log: update text requesting samples 2020-04-17 00:08:56 +02:00
log.h lavu/opt: add a more general child class iteration API 2020-06-10 12:36:42 +02:00
lzo.c
lzo.h
macros.h
Makefile libavutil: add API for exporting video frame quantizers 2020-05-12 09:37:47 +02:00
mastering_display_metadata.c
mastering_display_metadata.h
mathematics.c avutil/mathematics: Fix overflow with NaN in av_add_stable() 2020-06-06 00:25:00 +02:00
mathematics.h
md5.c
md5.h
mem_internal.h
mem.c avutil/mem: Use max_alloc_size as-is 2020-05-26 06:47:31 +02:00
mem.h avutil/mem: Fix invalid use of av_alloc_size 2018-11-26 23:47:29 +01:00
motion_vector.h
murmur3.c
murmur3.h
opt.c avutil/opt: check return value of av_bprint_finalize() 2020-07-02 21:12:37 +08:00
opt.h lavu/opt: add a more general child class iteration API 2020-06-10 12:36:42 +02:00
parseutils.c lavu/parseutils: Allow to parse >= 100 hours. 2019-02-09 13:59:10 +01:00
parseutils.h
pca.c
pca.h
pixdesc.c lavu/pix_fmt: add new pixel format x2rgb10 2020-06-12 17:56:15 +01:00
pixdesc.h
pixelutils.c
pixelutils.h
pixfmt.h lavu/pix_fmt: add new pixel format x2rgb10 2020-06-12 17:56:15 +01:00
qsort.h
random_seed.c
random_seed.h
rational.c lavu: add av_gcd_q(). 2020-05-23 15:51:44 +02:00
rational.h lavu: add av_gcd_q(). 2020-05-23 15:51:44 +02:00
rc4.c
rc4.h
replaygain.h
reverse.c
reverse.h
ripemd.c
ripemd.h
samplefmt.c
samplefmt.h
sha512.c
sha512.h
sha.c
sha.h
slicethread.c
slicethread.h
softfloat_ieee754.h avutil/softfloat_ieee754: Fix odd bit position for exponent and sign in av_bits2sf_ieee754() 2019-07-21 11:26:36 +02:00
softfloat_tables.h
softfloat.h
spherical.c
spherical.h
stereo3d.c
stereo3d.h
tablegen.h
tea.c
tea.h
thread.h avutil/thread: fix strict_pthread_cond_timedwait 2020-01-25 23:16:18 +01:00
threadmessage.c
threadmessage.h
time_internal.h Merge commit 'c4642788e83b0858bca449f9b6e71ddb015dfa5d' 2019-05-02 13:50:31 -03:00
time.c
time.h
timecode.c avutil/timecode: fix av_timecode_get_smpte_from_framenum with 50/60 fps 2020-09-13 17:51:57 +02:00
timecode.h avutil/timecode: fix av_timecode_get_smpte_from_framenum with 50/60 fps 2020-09-13 17:51:57 +02:00
timer.h
timestamp.h
tree.c
tree.h
twofish.c
twofish.h
tx_double.c lavu/tx: add support for double precision FFT and MDCT 2019-08-02 01:19:52 +01:00
tx_float.c lavu/tx: add support for double precision FFT and MDCT 2019-08-02 01:19:52 +01:00
tx_int32.c lavu/tx: implement 32 bit fixed point FFT and MDCT 2020-02-13 17:10:34 +00:00
tx_priv.h lavu/tx: improve 3-point fixed precision 2020-02-14 19:58:14 +00:00
tx_template.c lavu/tx: add 2-point FFT transform 2020-03-23 21:26:25 +00:00
tx.c lavu/tx: implement 32 bit fixed point FFT and MDCT 2020-02-13 17:10:34 +00:00
tx.h lavu/tx: add 2-point FFT transform 2020-03-23 21:26:25 +00:00
utils.c Silence "string-plus-int" warning shown by clang. 2020-01-06 22:38:56 +01:00
version.h lavu/avstring: deprecate av_d2str(). 2020-08-21 11:01:39 +02:00
video_enc_params.c libavutil: add API for exporting video frame quantizers 2020-05-12 09:37:47 +02:00
video_enc_params.h avutil/video_enc_params: fix code comment 2020-08-20 17:45:00 +08:00
wchar_filename.h
xga_font_data.c
xga_font_data.h
xtea.c
xtea.h