mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 12:09:55 +00:00
libavcodec:add packet level support for mastering metadata
Some containers, like webm/mkv, will contain this mastering metadata. This is analogous to the way 3D fpa data is handled (in frame and packet side data). Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
954f865c8e
commit
ad17b9d2d4
@ -1408,6 +1408,13 @@ enum AVPacketSideDataType {
|
||||
* information from the demuxer to the corresponding muxer.
|
||||
*/
|
||||
AV_PKT_DATA_MPEGTS_STREAM_ID,
|
||||
|
||||
/**
|
||||
* Mastering display metadata (based on SMPTE-2086:2014). This metadata
|
||||
* should be associated with a video stream and containts data in the form
|
||||
* of the AVMasteringDisplayMetadata struct.
|
||||
*/
|
||||
AV_PKT_DATA_MASTERING_DISPLAY_METADATA
|
||||
};
|
||||
|
||||
#define AV_PKT_DATA_QUALITY_FACTOR AV_PKT_DATA_QUALITY_STATS //DEPRECATED
|
||||
|
@ -335,23 +335,24 @@ uint8_t *av_packet_get_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
|
||||
const char *av_packet_side_data_name(enum AVPacketSideDataType type)
|
||||
{
|
||||
switch(type) {
|
||||
case AV_PKT_DATA_PALETTE: return "Palette";
|
||||
case AV_PKT_DATA_NEW_EXTRADATA: return "New Extradata";
|
||||
case AV_PKT_DATA_PARAM_CHANGE: return "Param Change";
|
||||
case AV_PKT_DATA_H263_MB_INFO: return "H263 MB Info";
|
||||
case AV_PKT_DATA_REPLAYGAIN: return "Replay Gain";
|
||||
case AV_PKT_DATA_DISPLAYMATRIX: return "Display Matrix";
|
||||
case AV_PKT_DATA_STEREO3D: return "Stereo 3D";
|
||||
case AV_PKT_DATA_AUDIO_SERVICE_TYPE: return "Audio Service Type";
|
||||
case AV_PKT_DATA_SKIP_SAMPLES: return "Skip Samples";
|
||||
case AV_PKT_DATA_JP_DUALMONO: return "JP Dual Mono";
|
||||
case AV_PKT_DATA_STRINGS_METADATA: return "Strings Metadata";
|
||||
case AV_PKT_DATA_SUBTITLE_POSITION: return "Subtitle Position";
|
||||
case AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL: return "Matroska BlockAdditional";
|
||||
case AV_PKT_DATA_WEBVTT_IDENTIFIER: return "WebVTT ID";
|
||||
case AV_PKT_DATA_WEBVTT_SETTINGS: return "WebVTT Settings";
|
||||
case AV_PKT_DATA_METADATA_UPDATE: return "Metadata Update";
|
||||
case AV_PKT_DATA_MPEGTS_STREAM_ID: return "MPEGTS Stream ID";
|
||||
case AV_PKT_DATA_PALETTE: return "Palette";
|
||||
case AV_PKT_DATA_NEW_EXTRADATA: return "New Extradata";
|
||||
case AV_PKT_DATA_PARAM_CHANGE: return "Param Change";
|
||||
case AV_PKT_DATA_H263_MB_INFO: return "H263 MB Info";
|
||||
case AV_PKT_DATA_REPLAYGAIN: return "Replay Gain";
|
||||
case AV_PKT_DATA_DISPLAYMATRIX: return "Display Matrix";
|
||||
case AV_PKT_DATA_STEREO3D: return "Stereo 3D";
|
||||
case AV_PKT_DATA_AUDIO_SERVICE_TYPE: return "Audio Service Type";
|
||||
case AV_PKT_DATA_SKIP_SAMPLES: return "Skip Samples";
|
||||
case AV_PKT_DATA_JP_DUALMONO: return "JP Dual Mono";
|
||||
case AV_PKT_DATA_STRINGS_METADATA: return "Strings Metadata";
|
||||
case AV_PKT_DATA_SUBTITLE_POSITION: return "Subtitle Position";
|
||||
case AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL: return "Matroska BlockAdditional";
|
||||
case AV_PKT_DATA_WEBVTT_IDENTIFIER: return "WebVTT ID";
|
||||
case AV_PKT_DATA_WEBVTT_SETTINGS: return "WebVTT Settings";
|
||||
case AV_PKT_DATA_METADATA_UPDATE: return "Metadata Update";
|
||||
case AV_PKT_DATA_MPEGTS_STREAM_ID: return "MPEGTS Stream ID";
|
||||
case AV_PKT_DATA_MASTERING_DISPLAY_METADATA: return "Mastering display metadata";
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
@ -757,10 +757,11 @@ int ff_init_buffer_info(AVCodecContext *avctx, AVFrame *frame)
|
||||
enum AVPacketSideDataType packet;
|
||||
enum AVFrameSideDataType frame;
|
||||
} sd[] = {
|
||||
{ AV_PKT_DATA_REPLAYGAIN , AV_FRAME_DATA_REPLAYGAIN },
|
||||
{ AV_PKT_DATA_DISPLAYMATRIX, AV_FRAME_DATA_DISPLAYMATRIX },
|
||||
{ AV_PKT_DATA_STEREO3D, AV_FRAME_DATA_STEREO3D },
|
||||
{ AV_PKT_DATA_AUDIO_SERVICE_TYPE, AV_FRAME_DATA_AUDIO_SERVICE_TYPE },
|
||||
{ AV_PKT_DATA_REPLAYGAIN , AV_FRAME_DATA_REPLAYGAIN },
|
||||
{ AV_PKT_DATA_DISPLAYMATRIX, AV_FRAME_DATA_DISPLAYMATRIX },
|
||||
{ AV_PKT_DATA_STEREO3D, AV_FRAME_DATA_STEREO3D },
|
||||
{ AV_PKT_DATA_AUDIO_SERVICE_TYPE, AV_FRAME_DATA_AUDIO_SERVICE_TYPE },
|
||||
{ AV_PKT_DATA_MASTERING_DISPLAY_METADATA, AV_FRAME_DATA_MASTERING_DISPLAY_METADATA },
|
||||
};
|
||||
|
||||
if (pkt) {
|
||||
|
@ -29,7 +29,7 @@
|
||||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 57
|
||||
#define LIBAVCODEC_VERSION_MINOR 25
|
||||
#define LIBAVCODEC_VERSION_MICRO 100
|
||||
#define LIBAVCODEC_VERSION_MICRO 101
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||
LIBAVCODEC_VERSION_MINOR, \
|
||||
|
Loading…
Reference in New Issue
Block a user