From fef89aae98a0f34c6da1ef88b51d32f21f87df08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= Date: Mon, 13 Jun 2016 21:41:53 +0200 Subject: lavc/h264: move green meta logging out of the sei decoding This will simplify the next Libav merge where SEI decoding doesn't have access to the debug level anymore. --- libavcodec/h264.c | 30 ++++++++++++++++++++++++++++++ libavcodec/h264_sei.c | 33 --------------------------------- 2 files changed, 30 insertions(+), 33 deletions(-) (limited to 'libavcodec') diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 367f6bf282..46eaec2ab0 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -959,6 +959,34 @@ static int get_last_needed_nal(H264Context *h) return nals_needed; } +static void debug_green_metadata(const GreenMetaData *gm, void *logctx) +{ + av_log(logctx, AV_LOG_DEBUG, "Green Metadata Info SEI message\n"); + av_log(logctx, AV_LOG_DEBUG, " green_metadata_type: %d\n", gm->green_metadata_type); + + if (gm->green_metadata_type == 0) { + av_log(logctx, AV_LOG_DEBUG, " green_metadata_period_type: %d\n", gm->period_type); + + if (gm->period_type == 2) + av_log(logctx, AV_LOG_DEBUG, " green_metadata_num_seconds: %d\n", gm->num_seconds); + else if (gm->period_type == 3) + av_log(logctx, AV_LOG_DEBUG, " green_metadata_num_pictures: %d\n", gm->num_pictures); + + av_log(logctx, AV_LOG_DEBUG, " SEI GREEN Complexity Metrics: %f %f %f %f\n", + (float)gm->percent_non_zero_macroblocks/255, + (float)gm->percent_intra_coded_macroblocks/255, + (float)gm->percent_six_tap_filtering/255, + (float)gm->percent_alpha_point_deblocking_instance/255); + + } else if (gm->green_metadata_type == 1) { + av_log(logctx, AV_LOG_DEBUG, " xsd_metric_type: %d\n", gm->xsd_metric_type); + + if (gm->xsd_metric_type == 0) + av_log(logctx, AV_LOG_DEBUG, " xsd_metric_value: %f\n", + (float)gm->xsd_metric_value/100); + } +} + static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size, int parse_extradata) { @@ -1141,6 +1169,8 @@ again: case NAL_SEI: h->gb = nal->gb; ret = ff_h264_decode_sei(h); + if (avctx->debug & FF_DEBUG_GREEN_MD) + debug_green_metadata(&h->sei_green_metadata, h->avctx); if (ret < 0 && (h->avctx->err_recognition & AV_EF_EXPLODE)) goto end; break; diff --git a/libavcodec/h264_sei.c b/libavcodec/h264_sei.c index 3c6d988d7f..b23878c8c5 100644 --- a/libavcodec/h264_sei.c +++ b/libavcodec/h264_sei.c @@ -365,33 +365,16 @@ static int decode_display_orientation(H264Context *h) static int decode_GreenMetadata(H264Context *h) { - if (h->avctx->debug & FF_DEBUG_GREEN_MD) - av_log(h->avctx, AV_LOG_DEBUG, "Green Metadata Info SEI message\n"); - h->sei_green_metadata.green_metadata_type=get_bits(&h->gb, 8); - if (h->avctx->debug & FF_DEBUG_GREEN_MD) - av_log(h->avctx, AV_LOG_DEBUG, "green_metadata_type = %d\n", - h->sei_green_metadata.green_metadata_type); - if (h->sei_green_metadata.green_metadata_type==0){ h->sei_green_metadata.period_type=get_bits(&h->gb, 8); - if (h->avctx->debug & FF_DEBUG_GREEN_MD) - av_log(h->avctx, AV_LOG_DEBUG, "green_metadata_period_type = %d\n", - h->sei_green_metadata.period_type); - if (h->sei_green_metadata.period_type==2){ h->sei_green_metadata.num_seconds = get_bits(&h->gb, 16); - if (h->avctx->debug & FF_DEBUG_GREEN_MD) - av_log(h->avctx, AV_LOG_DEBUG, "green_metadata_num_seconds = %d\n", - h->sei_green_metadata.num_seconds); } else if (h->sei_green_metadata.period_type==3){ h->sei_green_metadata.num_pictures = get_bits(&h->gb, 16); - if (h->avctx->debug & FF_DEBUG_GREEN_MD) - av_log(h->avctx, AV_LOG_DEBUG, "green_metadata_num_pictures = %d\n", - h->sei_green_metadata.num_pictures); } h->sei_green_metadata.percent_non_zero_macroblocks=get_bits(&h->gb, 8); @@ -399,25 +382,9 @@ static int decode_GreenMetadata(H264Context *h) h->sei_green_metadata.percent_six_tap_filtering=get_bits(&h->gb, 8); h->sei_green_metadata.percent_alpha_point_deblocking_instance=get_bits(&h->gb, 8); - if (h->avctx->debug & FF_DEBUG_GREEN_MD) - av_log(h->avctx, AV_LOG_DEBUG, "SEI GREEN Complexity Metrics = %f %f %f %f\n", - (float)h->sei_green_metadata.percent_non_zero_macroblocks/255, - (float)h->sei_green_metadata.percent_intra_coded_macroblocks/255, - (float)h->sei_green_metadata.percent_six_tap_filtering/255, - (float)h->sei_green_metadata.percent_alpha_point_deblocking_instance/255); - }else if( h->sei_green_metadata.green_metadata_type==1){ h->sei_green_metadata.xsd_metric_type=get_bits(&h->gb, 8); h->sei_green_metadata.xsd_metric_value=get_bits(&h->gb, 16); - - if (h->avctx->debug & FF_DEBUG_GREEN_MD) - av_log(h->avctx, AV_LOG_DEBUG, "xsd_metric_type = %d\n", - h->sei_green_metadata.xsd_metric_type); - if ( h->sei_green_metadata.xsd_metric_type==0){ - if (h->avctx->debug & FF_DEBUG_GREEN_MD) - av_log(h->avctx, AV_LOG_DEBUG, "xsd_metric_value = %f\n", - (float)h->sei_green_metadata.xsd_metric_value/100); - } } return 0; -- cgit v1.2.3