[FFmpeg-devel] [PATCH] ffmpeg_opt: set correct priv_data for feed stream

Lukasz Marek lukasz.m.luki2 at gmail.com
Thu Nov 6 21:27:45 CET 2014


On 06.11.2014 01:32, Michael Niedermayer wrote:
> On Thu, Nov 06, 2014 at 12:59:45AM +0100, Lukasz Marek wrote:
>> new_output_stream creates a codec context with arbitraty picked codec.
>> Later data is updated, but priv_data are left alone.
>> There is a bit chance there is a mismatch between codecs.
>>
>> Signed-off-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
>> ---
>>   ffmpeg_opt.c         | 16 ++++++++++++++++
>>   libavformat/ffmdec.c |  6 ++++--
>>   2 files changed, 20 insertions(+), 2 deletions(-)
>
> with this fate-lavf-ffm crashes
>
> ==10836== Invalid write of size 8
> ==10836==    at 0x935442: decode_init (mpegaudiodec_template.c:419)
> ==10836==    by 0xA69226: avcodec_open2 (utils.c:1614)
> ==10836==    by 0x64CC5F: avformat_find_stream_info (utils.c:3053)
> ==10836==    by 0x41C2D7: open_input_file (ffmpeg_opt.c:886)
> ==10836==    by 0x42427A: open_files (ffmpeg_opt.c:2699)
> ==10836==    by 0x4243F8: ffmpeg_parse_options (ffmpeg_opt.c:2736)
> ==10836==    by 0x43762E: main (ffmpeg.c:3861)
> ==10836==  Address 0x10f072b0 is not stack'd, malloc'd or (recently) free'd
> ==10836==
> ==10836== Invalid write of size 8
> ==10836==    at 0xDC67D0: avpriv_float_dsp_init (float_dsp.c:120)
> ==10836==    by 0x93546B: decode_init (mpegaudiodec_template.c:421)
> ==10836==    by 0xA69226: avcodec_open2 (utils.c:1614)
> ==10836==    by 0x64CC5F: avformat_find_stream_info (utils.c:3053)
> ==10836==    by 0x41C2D7: open_input_file (ffmpeg_opt.c:886)
> ==10836==    by 0x42427A: open_files (ffmpeg_opt.c:2699)
> ==10836==    by 0x4243F8: ffmpeg_parse_options (ffmpeg_opt.c:2736)
> ==10836==    by 0x43762E: main (ffmpeg.c:3861)
> ==10836==  Address 0x10f072e8 is not stack'd, malloc'd or (recently) free'd
> and pages more

I tried to debug it, but there is too much code to read to handle one 
very specific case and I'm not sure there is other, better solution.
Probably, I haven't check, clear solution would be to clear priv_data in 
read_ffserver_streams right after copy_context, and set it to NULL, but 
I will need private data soon to support it in ffserver.

Solution is ugly, but I think I will not propose anything better.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-ffmpeg_opt-set-correct-priv_data-for-feed-stream.patch
Type: text/x-patch
Size: 6140 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20141106/7bff5a60/attachment.bin>


More information about the ffmpeg-devel mailing list