[FFmpeg-devel] [PATCH v2] avformat/options: don't call avformat_free_context() within avformat_alloc_context()
James Almer
jamrial at gmail.com
Sun Oct 20 03:35:13 EEST 2019
On 10/19/2019 8:42 PM, Andreas Rheinhardt wrote:
> James Almer:
>> avformat_free_context() expects AVFormatContext->internal to not be NULL.
>>
>> Signed-off-by: James Almer <jamrial at gmail.com>
>> ---
>> libavformat/options.c | 10 ++++++----
>> 1 file changed, 6 insertions(+), 4 deletions(-)
>>
>> diff --git a/libavformat/options.c b/libavformat/options.c
>> index c188c23506..756f4d53c5 100644
>> --- a/libavformat/options.c
>> +++ b/libavformat/options.c
>> @@ -144,15 +144,17 @@ static void avformat_get_context_defaults(AVFormatContext *s)
>> AVFormatContext *avformat_alloc_context(void)
>> {
>> AVFormatContext *ic;
>> + AVFormatInternal *internal;
>> ic = av_malloc(sizeof(AVFormatContext));
>> if (!ic) return ic;
>> - avformat_get_context_defaults(ic);
>>
>> - ic->internal = av_mallocz(sizeof(*ic->internal));
>> - if (!ic->internal) {
>> - avformat_free_context(ic);
>> + internal = av_mallocz(sizeof(AVFormatInternal));
>> + if (!internal) {
>> + av_free(ic);
>> return NULL;
>> }
>> + avformat_get_context_defaults(ic);
>> + ic->internal = internal;
>> ic->internal->offset = AV_NOPTS_VALUE;
>> ic->internal->raw_packet_buffer_remaining_size = RAW_PACKET_BUFFER_SIZE;
>> ic->internal->shortest_end = AV_NOPTS_VALUE;
>>
> Isn't it better (more auto-like) to use sizeof(*internal)? Apart from
> that: LGTM.
Yes, but i figured I'd mimic the ic malloc above.
Changed and pushed. Thanks.
More information about the ffmpeg-devel
mailing list