On Thu, Jun 25, 2015 at 5:30 PM, Michael Niedermayer <mich...@niedermayer.cc> wrote: > On Thu, Jun 25, 2015 at 11:13:53AM +0000, Nicolas Derouineau wrote: >> Hello, >> Please find here enclosed a patch enabling h264 Green Metada SEI parsing for >> FFMPEG. You'll be able to find reference bitstreams containing the metadata >> at the following adress: >> >> ftp-public-greenvideo.insa-rennes.fr >> >> >> The Nal SEI syntax is the same as the one used in the last JM release (19.0). >> >> >> Best Regards, >> >> >> >> Nicolas DEROUINEAU >> Research Engineer >> VITEC >> >> T. +33 1 46 73 06 06 >> E. nicolas.derouin...@vitec.com<mailto:nicolas.derouin...@vitec.com> >> W. www.vitec.com<http://www.vitec.com/> > >> h264.h | 20 ++++++++++++++++++ >> h264_sei.c | 67 >> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ >> 2 files changed, 87 insertions(+) >> feb39a55dd6afbaf341df765eafc02266c00a588 >> 0002-Enabling-GreenMetadata-SEI-parsing-for-H264-decoder.patch >> From 60903bff6429182c84dc5daef0d26695d3f71861 Mon Sep 17 00:00:00 2001 >> From: Nicolas DEROUINEAU <nicolas.derouin...@vitec.com> >> Date: Thu, 25 Jun 2015 13:02:39 +0200 >> Subject: [PATCH 2/2] Enabling GreenMetadata SEI parsing for H264 decoder >> >> --- >> libavcodec/h264.h | 20 +++++++++++++++ >> libavcodec/h264_sei.c | 67 >> +++++++++++++++++++++++++++++++++++++++++++++++++++ >> 2 files changed, 87 insertions(+) >> >> diff --git a/libavcodec/h264.h b/libavcodec/h264.h >> index 548510d..0324dc1 100644 >> --- a/libavcodec/h264.h >> +++ b/libavcodec/h264.h >> @@ -137,6 +137,7 @@ typedef enum { >> SEI_TYPE_RECOVERY_POINT = 6, ///< recovery point (frame # to >> decoder sync) >> SEI_TYPE_FRAME_PACKING = 45, ///< frame packing arrangement >> SEI_TYPE_DISPLAY_ORIENTATION = 47, ///< display orientation >> + SEI_TYPE_GREEN_METADATA = 56 ///< GreenMPEG information >> } SEI_Type; >> >> /** >> @@ -268,6 +269,22 @@ typedef struct FPA { >> } FPA; >> >> /** >> + * Green MetaData Information Type >> + */ >> +typedef struct GreenMetaData { >> + unsigned char green_metadata_type; >> + unsigned char period_type; >> + unsigned short num_seconds; >> + unsigned short num_pictures;
uint16_t and uint8_t would probably be more appropriate here >> + unsigned char percent_non_zero_macroblocks; >> + unsigned char percent_intra_coded_macroblocks; >> + unsigned char percent_six_tap_filtering; >> + unsigned char percent_alpha_point_deblocking_instance; >> + unsigned char xsd_metric_type; >> + unsigned short xsd_metric_value; >> +} GreenMetaData; >> + >> +/** >> * Memory management control operation opcode. >> */ >> typedef enum MMCOOpcode { >> @@ -804,6 +821,9 @@ typedef struct H264Context { >> /* Motion Estimation */ >> qpel_mc_func (*qpel_put)[16]; >> qpel_mc_func (*qpel_avg)[16]; >> + >> + /*Green Metadata */ >> + GreenMetaData sei_GreenMetaData; This is mostly a nit, but could you maybe avoid using CamelCase naming in function and variable names? eg GreenMetaData sei_green_metadata would reflect more the rest of the code. thanks -- Vittorio _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel