diff mbox series

[FFmpeg-devel,v5,5/7] lavf/dump: dump DOVI side data

Message ID 1587530154-27795-6-git-send-email-mypopydev@gmail.com
State Superseded
Headers show
Series Support Dolby Vision | expand

Checks

Context Check Description
andriy/default pending
andriy/make success Make finished
andriy/make_fate success Make fate finished

Commit Message

Jun Zhao April 22, 2020, 4:35 a.m. UTC
From: Jun Zhao <barryjzhao@tencent.com>

dump DOVI side data.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
---
 libavformat/dump.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

Comments

mypopy@gmail.com April 22, 2020, 6:45 a.m. UTC | #1
On Wed, Apr 22, 2020 at 12:36 PM Jun Zhao <mypopydev@gmail.com> wrote:
>
> From: Jun Zhao <barryjzhao@tencent.com>
>
> dump DOVI side data.
>
> Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
> ---
>  libavformat/dump.c | 23 +++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
>
> diff --git a/libavformat/dump.c b/libavformat/dump.c
> index 220f404..9578b88 100644
> --- a/libavformat/dump.c
> +++ b/libavformat/dump.c
> @@ -27,6 +27,7 @@
>  #include "libavutil/intreadwrite.h"
>  #include "libavutil/log.h"
>  #include "libavutil/mastering_display_metadata.h"
> +#include "libavutil/dovi_meta.h"
>  #include "libavutil/mathematics.h"
>  #include "libavutil/opt.h"
>  #include "libavutil/avstring.h"
> @@ -387,6 +388,24 @@ static void dump_spherical(void *ctx, AVCodecParameters *par, AVPacketSideData *
>      }
>  }
>
> +static void dump_dovi_conf(void *ctx, AVPacketSideData* sd)
> +{
> +    AVDOVIDecoderConfigurationRecord *dovi = (AVDOVIDecoderConfigurationRecord *)sd->data;
> +    if (sd->size < sizeof(*dovi)) {
Need to remove sizeof(*dovi) part, fixed in local
> +        av_log(ctx, AV_LOG_ERROR, "invalid data");
> +        return;
> +    }
> +
> +    av_log(ctx, AV_LOG_INFO, "version: %d.%d, profile: %d, level: %d, "
> +           "rpu flag: %d, el flag: %d, bl flag: %d, compatibility id: %d",
> +           dovi->dv_version_major, dovi->dv_version_minor,
> +           dovi->dv_profile, dovi->dv_level,
> +           dovi->rpu_present_flag,
> +           dovi->el_present_flag,
> +           dovi->bl_present_flag,
> +           dovi->dv_bl_signal_compatibility_id);
> +}
> +
>  static void dump_sidedata(void *ctx, AVStream *st, const char *indent)
>  {
>      int i;
> @@ -449,6 +468,10 @@ static void dump_sidedata(void *ctx, AVStream *st, const char *indent)
>          case AV_PKT_DATA_ICC_PROFILE:
>              av_log(ctx, AV_LOG_INFO, "ICC Profile");
>              break;
> +        case AV_PKT_DATA_DOVI_CONF:
> +            av_log(ctx, AV_LOG_INFO, "DOVI configuration record: ");
> +            dump_dovi_conf(ctx, &sd);
> +            break;
>          default:
>              av_log(ctx, AV_LOG_INFO,
>                     "unknown side data type %d (%d bytes)", sd.type, sd.size);
> --
> 2.7.4
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
diff mbox series

Patch

diff --git a/libavformat/dump.c b/libavformat/dump.c
index 220f404..9578b88 100644
--- a/libavformat/dump.c
+++ b/libavformat/dump.c
@@ -27,6 +27,7 @@ 
 #include "libavutil/intreadwrite.h"
 #include "libavutil/log.h"
 #include "libavutil/mastering_display_metadata.h"
+#include "libavutil/dovi_meta.h"
 #include "libavutil/mathematics.h"
 #include "libavutil/opt.h"
 #include "libavutil/avstring.h"
@@ -387,6 +388,24 @@  static void dump_spherical(void *ctx, AVCodecParameters *par, AVPacketSideData *
     }
 }
 
+static void dump_dovi_conf(void *ctx, AVPacketSideData* sd)
+{
+    AVDOVIDecoderConfigurationRecord *dovi = (AVDOVIDecoderConfigurationRecord *)sd->data;
+    if (sd->size < sizeof(*dovi)) {
+        av_log(ctx, AV_LOG_ERROR, "invalid data");
+        return;
+    }
+
+    av_log(ctx, AV_LOG_INFO, "version: %d.%d, profile: %d, level: %d, "
+           "rpu flag: %d, el flag: %d, bl flag: %d, compatibility id: %d",
+           dovi->dv_version_major, dovi->dv_version_minor,
+           dovi->dv_profile, dovi->dv_level,
+           dovi->rpu_present_flag,
+           dovi->el_present_flag,
+           dovi->bl_present_flag,
+           dovi->dv_bl_signal_compatibility_id);
+}
+
 static void dump_sidedata(void *ctx, AVStream *st, const char *indent)
 {
     int i;
@@ -449,6 +468,10 @@  static void dump_sidedata(void *ctx, AVStream *st, const char *indent)
         case AV_PKT_DATA_ICC_PROFILE:
             av_log(ctx, AV_LOG_INFO, "ICC Profile");
             break;
+        case AV_PKT_DATA_DOVI_CONF:
+            av_log(ctx, AV_LOG_INFO, "DOVI configuration record: ");
+            dump_dovi_conf(ctx, &sd);
+            break;
         default:
             av_log(ctx, AV_LOG_INFO,
                    "unknown side data type %d (%d bytes)", sd.type, sd.size);