X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fffmpeg_examiner.cc;h=32b60e0cba53e61009019c5bd217fe57c8766304;hp=01886da7f90ce0c7bd68a8ebd4a57f36dd7f6b19;hb=HEAD;hpb=d113a4b1b0e5dab6924510861f3f2b9c30fc9610 diff --git a/src/lib/ffmpeg_examiner.cc b/src/lib/ffmpeg_examiner.cc index 01886da7f..51ade8e89 100644 --- a/src/lib/ffmpeg_examiner.cc +++ b/src/lib/ffmpeg_examiner.cc @@ -26,8 +26,8 @@ #include "ffmpeg_audio_stream.h" #include "ffmpeg_subtitle_stream.h" #include "util.h" -#include "warnings.h" -DCPOMATIC_DISABLE_WARNINGS +#include +LIBDCP_DISABLE_WARNINGS extern "C" { #include #include @@ -37,7 +37,7 @@ extern "C" { #include #include } -DCPOMATIC_ENABLE_WARNINGS +LIBDCP_ENABLE_WARNINGS #include #include "i18n.h" @@ -91,7 +91,8 @@ FFmpegExaminer::FFmpegExaminer (shared_ptr c, shared_ptrid, s->codecpar->sample_rate, llrint ((double(_format_context->duration) / AV_TIME_BASE) * s->codecpar->sample_rate), - s->codecpar->channels + s->codecpar->channels, + s->codecpar->bits_per_raw_sample ? s->codecpar->bits_per_raw_sample : s->codecpar->bits_per_coded_sample ) ); @@ -181,7 +182,6 @@ FFmpegExaminer::FFmpegExaminer (shared_ptr c, shared_ptrstreams[*_video_stream]; auto rotate_tag = av_dict_get (stream->metadata, "rotate", 0, 0); uint8_t* displaymatrix = av_stream_get_side_data (stream, AV_PKT_DATA_DISPLAYMATRIX, 0); - _rotation = 0; if (rotate_tag && *rotate_tag->value && strcmp(rotate_tag->value, "0")) { char *tail; @@ -195,7 +195,9 @@ FFmpegExaminer::FFmpegExaminer (shared_ptr c, shared_ptr FFmpegExaminer::video_size () const { return dcp::Size (video_codec_context()->width, video_codec_context()->height); @@ -382,6 +384,19 @@ FFmpegExaminer::bits_per_pixel () const } +bool +FFmpegExaminer::has_alpha() const +{ + if (video_codec_context()->pix_fmt == -1) { + return false; + } + + auto const d = av_pix_fmt_desc_get(video_codec_context()->pix_fmt); + DCPOMATIC_ASSERT(d); + return d->flags & AV_PIX_FMT_FLAG_ALPHA; +} + + bool FFmpegExaminer::yuv () const {