Add frame inspection data to the analyzer. Change-Id: I753b51a1ae9759086198c7433410717296f61c20
diff --git a/examples/analyzer.cc b/examples/analyzer.cc index 3a02e32..6c2a35f 100644 --- a/examples/analyzer.cc +++ b/examples/analyzer.cc
@@ -18,6 +18,7 @@ #include "aom/aomdx.h" #include "av1/common/accounting.h" #include "av1/common/onyxc_int.h" +#include "av1/decoder/inspection.h" #define OD_SIGNMASK(a) (-((a) < 0)) #define OD_FLIPSIGNI(a, b) (((a) + OD_SIGNMASK(b)) ^ OD_SIGNMASK(b)) @@ -39,6 +40,8 @@ const AvxVideoInfo *info; const AvxInterface *decoder; + insp_frame_data frame_data; + aom_codec_ctx_t codec; public: @@ -57,8 +60,10 @@ int getWidth() const; int getHeight() const; - bool setAccountingEnabled(bool enable); bool getAccountingStruct(Accounting **acct); + bool setInspectionCallback(); + + static void inspect(void *decoder, void *data); }; AV1Decoder::AV1Decoder() @@ -84,6 +89,8 @@ fprintf(stderr, "Failed to initialize decoder."); return false; } + ifd_init(&frame_data, info->frame_width, info->frame_height); + setInspectionCallback(); return true; } @@ -119,6 +126,19 @@ AOM_CODEC_OK; } +bool AV1Decoder::setInspectionCallback() { + aom_inspect_init ii; + ii.inspect_cb = AV1Decoder::inspect; + ii.inspect_ctx = (void *)this; + return aom_codec_control(&codec, AV1_SET_INSPECTION_CALLBACK, &ii) == + AOM_CODEC_OK; +} + +void AV1Decoder::inspect(void *pbi, void *data) { + AV1Decoder *decoder = (AV1Decoder *)data; + ifd_inspect(&decoder->frame_data, pbi); +} + #define MIN_ZOOM (1) #define MAX_ZOOM (4)