Unified · Split
| @@ -15,6 +15,9 @@ libavutil: 2017-10-21 · 14 unmodified lines | |||
| 15 | 15 | ||
| 16 | API changes, most recent first: | 16 | API changes, most recent first: |
| 17 | 17 | ||
| 18 | 2020-07-xx - xxxxxxxxxx - lavc 58.96.100 - packet.h | ||
| 19 | Add AV_PKT_DATA_S12M_TIMECODE. | ||
| 20 | |||
| 18 | 2020-06-12 - b09fb030c1 - lavu 56.55.100 - pixdesc.h | 21 | 2020-06-12 - b09fb030c1 - lavu 56.55.100 - pixdesc.h |
| 19 | Add AV_PIX_FMT_X2RGB10. | 22 | Add AV_PIX_FMT_X2RGB10. |
| 20 | 23 | ||
| @@ -400,6 +400,7 @@ const char *av_packet_side_data_name(enum AVPacketSideDataType type) · 399 unmodified lines | |||
| 400 | case AV_PKT_DATA_PRFT: return "Producer Reference Time"; | 400 | case AV_PKT_DATA_PRFT: return "Producer Reference Time"; |
| 401 | case AV_PKT_DATA_ICC_PROFILE: return "ICC Profile"; | 401 | case AV_PKT_DATA_ICC_PROFILE: return "ICC Profile"; |
| 402 | case AV_PKT_DATA_DOVI_CONF: return "DOVI configuration record"; | 402 | case AV_PKT_DATA_DOVI_CONF: return "DOVI configuration record"; |
| 403 | case AV_PKT_DATA_S12M_TIMECODE: return "SMPTE ST 12-1:2014 timecode"; | ||
| 403 | } | 404 | } |
| 404 | return NULL; | 405 | return NULL; |
| 405 | } | 406 | } |
| @@ -1699,6 +1699,7 @@ int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame) · 1698 unmodified lines | |||
| 1699 | { AV_PKT_DATA_CONTENT_LIGHT_LEVEL, AV_FRAME_DATA_CONTENT_LIGHT_LEVEL }, | 1699 | { AV_PKT_DATA_CONTENT_LIGHT_LEVEL, AV_FRAME_DATA_CONTENT_LIGHT_LEVEL }, |
| 1700 | { AV_PKT_DATA_A53_CC, AV_FRAME_DATA_A53_CC }, | 1700 | { AV_PKT_DATA_A53_CC, AV_FRAME_DATA_A53_CC }, |
| 1701 | { AV_PKT_DATA_ICC_PROFILE, AV_FRAME_DATA_ICC_PROFILE }, | 1701 | { AV_PKT_DATA_ICC_PROFILE, AV_FRAME_DATA_ICC_PROFILE }, |
| 1702 | { AV_PKT_DATA_S12M_TIMECODE, AV_FRAME_DATA_S12M_TIMECODE }, | ||
| 1702 | }; | 1703 | }; |
| 1703 | 1704 | ||
| 1704 | if (pkt) { | 1705 | if (pkt) { |
| @@ -282,6 +282,14 @@ enum AVPacketSideDataType { · 281 unmodified lines | |||
| 282 | */ | 282 | */ |
| 283 | AV_PKT_DATA_DOVI_CONF, | 283 | AV_PKT_DATA_DOVI_CONF, |
| 284 | 284 | ||
| 285 | /** | ||
| 286 | * Timecode which conforms to SMPTE ST 12-1:2014. The data is an array of 4 uint32_t | ||
| 287 | * where the first uint32_t describes how many (1-3) of the other timecodes are used. | ||
| 288 | * The timecode format is described in the documentation of av_timecode_get_smpte_from_framenum() | ||
| 289 | * function in libavutil/timecode.h. | ||
| 290 | */ | ||
| 291 | AV_PKT_DATA_S12M_TIMECODE, | ||
| 292 | |||
| 285 | /** | 293 | /** |
| 286 | * The number of side data types. | 294 | * The number of side data types. |
| 287 | * This is not part of the public API/ABI in the sense that it may | 295 | * This is not part of the public API/ABI in the sense that it may |
| @@ -28,7 +28,7 @@ · 27 unmodified lines | |||
| 28 | #include "libavutil/version.h" | 28 | #include "libavutil/version.h" |
| 29 | 29 | ||
| 30 | #define LIBAVCODEC_VERSION_MAJOR 58 | 30 | #define LIBAVCODEC_VERSION_MAJOR 58 |
| 31 | #define LIBAVCODEC_VERSION_MINOR 95 | 31 | #define LIBAVCODEC_VERSION_MINOR 96 |
| 32 | #define LIBAVCODEC_VERSION_MICRO 100 | 32 | #define LIBAVCODEC_VERSION_MICRO 100 |
| 33 | 33 | ||
| 34 | #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ | 34 | #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ |
| @@ -34,6 +34,7 @@ · 33 unmodified lines | |||
| 34 | #include "libavutil/replaygain.h" | 34 | #include "libavutil/replaygain.h" |
| 35 | #include "libavutil/spherical.h" | 35 | #include "libavutil/spherical.h" |
| 36 | #include "libavutil/stereo3d.h" | 36 | #include "libavutil/stereo3d.h" |
| 37 | #include "libavutil/timecode.h" | ||
| 37 | 38 | ||
| 38 | #include "avformat.h" | 39 | #include "avformat.h" |
| 39 | 40 | ||
| @@ -407,6 +408,22 @@ static void dump_dovi_conf(void *ctx, const AVPacketSideData *sd) · 367 unmodified lines | |||
| 407 | dovi->dv_bl_signal_compatibility_id); | 408 | dovi->dv_bl_signal_compatibility_id); |
| 408 | } | 409 | } |
| 409 | 410 | ||
| 411 | static void dump_s12m_timecode(void *ctx, const AVPacketSideData *sd) | ||
| 412 | { | ||
| 413 | const uint32_t *tc = (const uint32_t *)sd->data; | ||
| 414 | |||
| 415 | if ((sd->size != sizeof(uint32_t) * 4) || (tc[0] > 3)) { | ||
| 416 | av_log(ctx, AV_LOG_ERROR, "invalid data\n"); | ||
| 417 | return; | ||
| 418 | } | ||
| 419 | |||
| 420 | for (int j = 1; j <= tc[0]; j++) { | ||
| 421 | char tcbuf[AV_TIMECODE_STR_SIZE]; | ||
| 422 | av_timecode_make_smpte_tc_string(tcbuf, tc[j], 0); | ||
| 423 | av_log(ctx, AV_LOG_INFO, "timecode - %s%s", tcbuf, j != tc[0] ? ", " : ""); | ||
| 424 | } | ||
| 425 | } | ||
| 426 | |||
| 410 | static void dump_sidedata(void *ctx, const AVStream *st, const char *indent) | 427 | static void dump_sidedata(void *ctx, const AVStream *st, const char *indent) |
| 411 | { | 428 | { |
| 412 | int i; | 429 | int i; |
| @@ -473,6 +490,10 @@ static void dump_sidedata(void *ctx, const AVStream *st, const char *indent) · 60 unmodified lines | |||
| 473 | av_log(ctx, AV_LOG_INFO, "DOVI configuration record: "); | 490 | av_log(ctx, AV_LOG_INFO, "DOVI configuration record: "); |
| 474 | dump_dovi_conf(ctx, sd); | 491 | dump_dovi_conf(ctx, sd); |
| 475 | break; | 492 | break; |
| 493 | case AV_PKT_DATA_S12M_TIMECODE: | ||
| 494 | av_log(ctx, AV_LOG_INFO, "SMPTE ST 12-1:2014: "); | ||
| 495 | dump_s12m_timecode(ctx, sd); | ||
| 496 | break; | ||
| 476 | default: | 497 | default: |
| 477 | av_log(ctx, AV_LOG_INFO, | 498 | av_log(ctx, AV_LOG_INFO, |
| 478 | "unknown side data type %d (%d bytes)", sd->type, sd->size); | 499 | "unknown side data type %d (%d bytes)", sd->type, sd->size); |