mirror of https://github.com/mpv-player/mpv
demux_lavf: properly forward dovi config record
This needs to be forwarded from the AVStream to the AVPacket itself, so that it reaches the decoder. There exists an FFmpeg function for this, we just need to call it. (Also add some logging)
This commit is contained in:
parent
0e5f7b48d2
commit
88047f7654
|
@ -36,6 +36,10 @@
|
||||||
#include <libavutil/display.h>
|
#include <libavutil/display.h>
|
||||||
#include <libavutil/opt.h>
|
#include <libavutil/opt.h>
|
||||||
|
|
||||||
|
#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(56, 43, 100)
|
||||||
|
#include <libavutil/dovi_meta.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "common/msg.h"
|
#include "common/msg.h"
|
||||||
#include "common/tags.h"
|
#include "common/tags.h"
|
||||||
#include "common/av_common.h"
|
#include "common/av_common.h"
|
||||||
|
@ -725,6 +729,15 @@ static void handle_new_stream(demuxer_t *demuxer, int i)
|
||||||
sh->codec->rotate = (((int)(-r) % 360) + 360) % 360;
|
sh->codec->rotate = (((int)(-r) % 360) + 360) % 360;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(56, 43, 100)
|
||||||
|
if ((sd = av_stream_get_side_data(st, AV_PKT_DATA_DOVI_CONF, NULL))) {
|
||||||
|
const AVDOVIDecoderConfigurationRecord *cfg = (void *) sd;
|
||||||
|
MP_VERBOSE(demuxer, "Found Dolby Vision config record: profile "
|
||||||
|
"%d level %d\n", cfg->dv_profile, cfg->dv_level);
|
||||||
|
av_format_inject_global_side_data(avfc);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// This also applies to vfw-muxed mkv, but we can't detect these easily.
|
// This also applies to vfw-muxed mkv, but we can't detect these easily.
|
||||||
sh->codec->avi_dts = matches_avinputformat_name(priv, "avi");
|
sh->codec->avi_dts = matches_avinputformat_name(priv, "avi");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue