Re: [FFmpeg-devel] [PATCH v2 02/11] cbs: Ensure that reference fields always follow the associated pointer
On Tue, May 21, 2019 at 7:08 AM Mark Thompson wrote: > > Hvaing these together allows us to find both pointers given the address > of only one of them. > --- > libavcodec/cbs_av1.h | 6 +++--- > libavcodec/cbs_h264.h | 18 +- > libavcodec/cbs_h265.h | 16 > libavcodec/cbs_jpeg.h | 2 +- > libavcodec/cbs_mpeg2.h | 10 +- > libavcodec/cbs_vp9.h | 2 +- > 6 files changed, 27 insertions(+), 27 deletions(-) > > diff --git a/libavcodec/cbs_av1.h b/libavcodec/cbs_av1.h > index 1fb668ada4..a87cbc030b 100644 > --- a/libavcodec/cbs_av1.h > +++ b/libavcodec/cbs_av1.h > @@ -284,8 +284,8 @@ typedef struct AV1RawFrameHeader { > > typedef struct AV1RawTileData { > uint8_t *data; > -size_t data_size; > AVBufferRef *data_ref; > +size_t data_size; > } AV1RawTileData; > > typedef struct AV1RawTileGroup { > @@ -346,8 +346,8 @@ typedef struct AV1RawMetadataITUTT35 { > uint8_t itu_t_t35_country_code_extension_byte; > > uint8_t *payload; > -size_t payload_size; > AVBufferRef *payload_ref; > +size_t payload_size; > } AV1RawMetadataITUTT35; > > typedef struct AV1RawMetadataTimecode { > @@ -379,8 +379,8 @@ typedef struct AV1RawMetadata { > > typedef struct AV1RawPadding { > uint8_t *payload; > -size_t payload_size; > AVBufferRef *payload_ref; > +size_t payload_size; > } AV1RawPadding; > > > diff --git a/libavcodec/cbs_h264.h b/libavcodec/cbs_h264.h > index cc46eeb3b0..57a9782cc9 100644 > --- a/libavcodec/cbs_h264.h > +++ b/libavcodec/cbs_h264.h > @@ -277,16 +277,16 @@ typedef struct H264RawSEIPanScanRect { > typedef struct H264RawSEIUserDataRegistered { > uint8_t itu_t_t35_country_code; > uint8_t itu_t_t35_country_code_extension_byte; > -uint8_t *data; > -size_t data_length; > +uint8_t *data; > AVBufferRef *data_ref; > +size_t data_length; > } H264RawSEIUserDataRegistered; > > typedef struct H264RawSEIUserDataUnregistered { > uint8_t uuid_iso_iec_11578[16]; > -uint8_t *data; > -size_t data_length; > +uint8_t *data; > AVBufferRef *data_ref; > +size_t data_length; > } H264RawSEIUserDataUnregistered; > > typedef struct H264RawSEIRecoveryPoint { > @@ -328,9 +328,9 @@ typedef struct H264RawSEIPayload { > H264RawSEIDisplayOrientation display_orientation; > H264RawSEIMasteringDisplayColourVolume > mastering_display_colour_volume; > struct { > -uint8_t *data; > -size_t data_length; > +uint8_t *data; > AVBufferRef *data_ref; > +size_t data_length; > } other; > } payload; > } H264RawSEIPayload; > @@ -423,10 +423,10 @@ typedef struct H264RawSliceHeader { > typedef struct H264RawSlice { > H264RawSliceHeader header; > > -uint8_t *data; > -size_t data_size; > -int data_bit_start; > +uint8_t *data; > AVBufferRef *data_ref; > +size_t data_size; > +int data_bit_start; > } H264RawSlice; > > typedef struct H264RawFiller { > diff --git a/libavcodec/cbs_h265.h b/libavcodec/cbs_h265.h > index c9bc90187b..5cab93c828 100644 > --- a/libavcodec/cbs_h265.h > +++ b/libavcodec/cbs_h265.h > @@ -184,8 +184,8 @@ typedef struct H265RawVUI { > > typedef struct H265RawPSExtensionData { > uint8_t *data; > -size_t bit_length; > AVBufferRef *data_ref; > +size_t bit_length; > } H265RawPSExtensionData; > > typedef struct H265RawVPS { > @@ -541,10 +541,10 @@ typedef struct H265RawSliceHeader { > typedef struct H265RawSlice { > H265RawSliceHeader header; > > -uint8_t *data; > -size_t data_size; > -int data_bit_start; > +uint8_t *data; > AVBufferRef *data_ref; > +size_t data_size; > +int data_bit_start; > } H265RawSlice; > > > @@ -600,15 +600,15 @@ typedef struct H265RawSEIUserDataRegistered { > uint8_t itu_t_t35_country_code; > uint8_t itu_t_t35_country_code_extension_byte; > uint8_t *data; > -size_t data_length; > AVBufferRef *data_ref; > +size_t data_length; > } H265RawSEIUserDataRegistered; > > typedef struct H265RawSEIUserDataUnregistered { > uint8_t uuid_iso_iec_11578[16]; > uint8_t *data; > -size_t data_length; > AVBufferRef *data_ref; > +size_t data_length; > } H265RawSEIUserDataUnregistered; > > typedef struct H265RawSEIRecoveryPoint { > @@ -698,9 +698,9 @@ typedef struct H265RawSEIPayload { > H265RawSEIAlternativeTransferCharacteristics > alternative_transfer_characteristics; > struct { > -uint8_t *data; > -size_t data_length; > +uint8_t *data; > AVBufferRef *data_ref; > +size_t data_length; > } other; > } payload; > } H265RawSEIPayload; > diff --git a/libavcodec/
[FFmpeg-devel] [PATCH v2 02/11] cbs: Ensure that reference fields always follow the associated pointer
Hvaing these together allows us to find both pointers given the address of only one of them. --- libavcodec/cbs_av1.h | 6 +++--- libavcodec/cbs_h264.h | 18 +- libavcodec/cbs_h265.h | 16 libavcodec/cbs_jpeg.h | 2 +- libavcodec/cbs_mpeg2.h | 10 +- libavcodec/cbs_vp9.h | 2 +- 6 files changed, 27 insertions(+), 27 deletions(-) diff --git a/libavcodec/cbs_av1.h b/libavcodec/cbs_av1.h index 1fb668ada4..a87cbc030b 100644 --- a/libavcodec/cbs_av1.h +++ b/libavcodec/cbs_av1.h @@ -284,8 +284,8 @@ typedef struct AV1RawFrameHeader { typedef struct AV1RawTileData { uint8_t *data; -size_t data_size; AVBufferRef *data_ref; +size_t data_size; } AV1RawTileData; typedef struct AV1RawTileGroup { @@ -346,8 +346,8 @@ typedef struct AV1RawMetadataITUTT35 { uint8_t itu_t_t35_country_code_extension_byte; uint8_t *payload; -size_t payload_size; AVBufferRef *payload_ref; +size_t payload_size; } AV1RawMetadataITUTT35; typedef struct AV1RawMetadataTimecode { @@ -379,8 +379,8 @@ typedef struct AV1RawMetadata { typedef struct AV1RawPadding { uint8_t *payload; -size_t payload_size; AVBufferRef *payload_ref; +size_t payload_size; } AV1RawPadding; diff --git a/libavcodec/cbs_h264.h b/libavcodec/cbs_h264.h index cc46eeb3b0..57a9782cc9 100644 --- a/libavcodec/cbs_h264.h +++ b/libavcodec/cbs_h264.h @@ -277,16 +277,16 @@ typedef struct H264RawSEIPanScanRect { typedef struct H264RawSEIUserDataRegistered { uint8_t itu_t_t35_country_code; uint8_t itu_t_t35_country_code_extension_byte; -uint8_t *data; -size_t data_length; +uint8_t *data; AVBufferRef *data_ref; +size_t data_length; } H264RawSEIUserDataRegistered; typedef struct H264RawSEIUserDataUnregistered { uint8_t uuid_iso_iec_11578[16]; -uint8_t *data; -size_t data_length; +uint8_t *data; AVBufferRef *data_ref; +size_t data_length; } H264RawSEIUserDataUnregistered; typedef struct H264RawSEIRecoveryPoint { @@ -328,9 +328,9 @@ typedef struct H264RawSEIPayload { H264RawSEIDisplayOrientation display_orientation; H264RawSEIMasteringDisplayColourVolume mastering_display_colour_volume; struct { -uint8_t *data; -size_t data_length; +uint8_t *data; AVBufferRef *data_ref; +size_t data_length; } other; } payload; } H264RawSEIPayload; @@ -423,10 +423,10 @@ typedef struct H264RawSliceHeader { typedef struct H264RawSlice { H264RawSliceHeader header; -uint8_t *data; -size_t data_size; -int data_bit_start; +uint8_t *data; AVBufferRef *data_ref; +size_t data_size; +int data_bit_start; } H264RawSlice; typedef struct H264RawFiller { diff --git a/libavcodec/cbs_h265.h b/libavcodec/cbs_h265.h index c9bc90187b..5cab93c828 100644 --- a/libavcodec/cbs_h265.h +++ b/libavcodec/cbs_h265.h @@ -184,8 +184,8 @@ typedef struct H265RawVUI { typedef struct H265RawPSExtensionData { uint8_t *data; -size_t bit_length; AVBufferRef *data_ref; +size_t bit_length; } H265RawPSExtensionData; typedef struct H265RawVPS { @@ -541,10 +541,10 @@ typedef struct H265RawSliceHeader { typedef struct H265RawSlice { H265RawSliceHeader header; -uint8_t *data; -size_t data_size; -int data_bit_start; +uint8_t *data; AVBufferRef *data_ref; +size_t data_size; +int data_bit_start; } H265RawSlice; @@ -600,15 +600,15 @@ typedef struct H265RawSEIUserDataRegistered { uint8_t itu_t_t35_country_code; uint8_t itu_t_t35_country_code_extension_byte; uint8_t *data; -size_t data_length; AVBufferRef *data_ref; +size_t data_length; } H265RawSEIUserDataRegistered; typedef struct H265RawSEIUserDataUnregistered { uint8_t uuid_iso_iec_11578[16]; uint8_t *data; -size_t data_length; AVBufferRef *data_ref; +size_t data_length; } H265RawSEIUserDataUnregistered; typedef struct H265RawSEIRecoveryPoint { @@ -698,9 +698,9 @@ typedef struct H265RawSEIPayload { H265RawSEIAlternativeTransferCharacteristics alternative_transfer_characteristics; struct { -uint8_t *data; -size_t data_length; +uint8_t *data; AVBufferRef *data_ref; +size_t data_length; } other; } payload; } H265RawSEIPayload; diff --git a/libavcodec/cbs_jpeg.h b/libavcodec/cbs_jpeg.h index 913d3f90f6..d51c83845b 100644 --- a/libavcodec/cbs_jpeg.h +++ b/libavcodec/cbs_jpeg.h @@ -80,8 +80,8 @@ typedef struct JPEGRawScanHeader { typedef struct JPEGRawScan { JPEGRawScanHeader header; uint8_t *data; -size_tdata_size; AVBufferRef *data_