Message ID | 20230828123617.57535-1-jamrial@gmail.com |
---|---|
Headers | show |
Series | AVCodecContext and AVCodecParameters side data | expand |
Quoting James Almer (2023-08-28 14:34:52) > This is an updated version of the set i sent last month. > Changes since the first version: > - Renamed the field in AVCodecContext to not conflict with Jan Ekström's > patchset introducing a similar struct for frame side data. > - AVCodecContext.coded_side_data is now deprecated for encoding scenarios > only, leaving it in place for the (as of this set) undocumented decoding > scenario, which is now documented. This way coded_side_data and > packet_side_data have distinct and clear usage for decoding. I do not understand the reasoning for this, it seems to me like a pointless API break, after which we end up with two fields for the same thing.
On 8/29/2023 4:55 AM, Anton Khirnov wrote: > Quoting James Almer (2023-08-28 14:34:52) >> This is an updated version of the set i sent last month. >> Changes since the first version: >> - Renamed the field in AVCodecContext to not conflict with Jan Ekström's >> patchset introducing a similar struct for frame side data. >> - AVCodecContext.coded_side_data is now deprecated for encoding scenarios >> only, leaving it in place for the (as of this set) undocumented decoding >> scenario, which is now documented. This way coded_side_data and >> packet_side_data have distinct and clear usage for decoding. > > I do not understand the reasoning for this, it seems to me like a > pointless API break, after which we end up with two fields for the same > thing. After this set, for decoding scenarios side data may be both set by the user or by lavc. This is not something that should be done in the same field. coded_side_data has always been a read-only field as far as the API user is concerned. This set documents the fact it's being set during decoding, something that started happening not too long ago but was left undocumented, and deprecates its usage for encoding in favor of the new field, which is a direct match in lavc to how lavf, or any other user, handles side data.