mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 03:59:43 +00:00
avcodec/dpx: Read SMPTE timecode from DPX
Signed-off-by: Harry Mallon <harry.mallon@codex.online>
This commit is contained in:
parent
6623421454
commit
a041c0a031
@ -23,6 +23,7 @@
|
|||||||
#include "libavutil/intreadwrite.h"
|
#include "libavutil/intreadwrite.h"
|
||||||
#include "libavutil/intfloat.h"
|
#include "libavutil/intfloat.h"
|
||||||
#include "libavutil/imgutils.h"
|
#include "libavutil/imgutils.h"
|
||||||
|
#include "libavutil/timecode.h"
|
||||||
#include "bytestream.h"
|
#include "bytestream.h"
|
||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
@ -239,6 +240,34 @@ static int decode_frame(AVCodecContext *avctx,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* SMPTE TC from television header */
|
||||||
|
if (offset >= 1920 + 4) {
|
||||||
|
uint32_t tc;
|
||||||
|
uint32_t *tc_sd;
|
||||||
|
char tcbuf[AV_TIMECODE_STR_SIZE];
|
||||||
|
|
||||||
|
buf = avpkt->data + 1920;
|
||||||
|
// read32 to native endian, av_bswap32 to opposite of native for
|
||||||
|
// compatibility with av_timecode_make_smpte_tc_string2 etc
|
||||||
|
tc = av_bswap32(read32(&buf, endian));
|
||||||
|
|
||||||
|
if (i != 0xFFFFFFFF) {
|
||||||
|
AVFrameSideData *tcside =
|
||||||
|
av_frame_new_side_data(p, AV_FRAME_DATA_S12M_TIMECODE,
|
||||||
|
sizeof(uint32_t) * 4);
|
||||||
|
if (!tcside)
|
||||||
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
|
tc_sd = (uint32_t*)tcside->data;
|
||||||
|
tc_sd[0] = 1;
|
||||||
|
tc_sd[1] = tc;
|
||||||
|
|
||||||
|
av_timecode_make_smpte_tc_string2(tcbuf, avctx->framerate,
|
||||||
|
tc_sd[1], 0, 0);
|
||||||
|
av_dict_set(&p->metadata, "timecode", tcbuf, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch (descriptor) {
|
switch (descriptor) {
|
||||||
case 6: // Y
|
case 6: // Y
|
||||||
elements = 1;
|
elements = 1;
|
||||||
|
@ -4,6 +4,13 @@ color_range=unknown
|
|||||||
color_space=unknown
|
color_space=unknown
|
||||||
color_primaries=unknown
|
color_primaries=unknown
|
||||||
color_transfer=unknown
|
color_transfer=unknown
|
||||||
|
TAG:timecode=00:00:01:18
|
||||||
TAG:Creator=Apple Compressor
|
TAG:Creator=Apple Compressor
|
||||||
TAG:Input Device=
|
TAG:Input Device=
|
||||||
|
[SIDE_DATA]
|
||||||
|
side_data_type=SMPTE 12-1 timecode
|
||||||
|
[TIMECODE]
|
||||||
|
value=00:00:01:18
|
||||||
|
[/TIMECODE]
|
||||||
|
[/SIDE_DATA]
|
||||||
[/FRAME]
|
[/FRAME]
|
||||||
|
Loading…
Reference in New Issue
Block a user