On 12/16/14, 3:23 AM, "Carl Eugen Hoyos" <ceho...@ag.or.at> wrote:
>Christian Suloway <csuloway <at> row44.com> writes: > >> Close segment I/O context and append segment in >> hls_write_trailer() only when segment I/O context >> is allocated. > >Was this a regression since 25ccf5df? >(And should be backported to 2.5?) This does not appear specific to 25ccf5df and goes back to 2.2. Also, the patch does not cover the mpegtsenc context accessing the null I/O context from hls_write_trailer or hls_write_packet. I don¹t know if this should be covered in hlsenc or mpegtsenc. Examples: 177 void avio_write(AVIOContext *s, const unsigned char *buf, int size) 178 { -> 179 if (s->direct && !s->update_checksum) { 180 avio_flush(s); 181 writeout(s, buf, size); 182 return; * thread #1: tid = 0x1548b77, 0x00000001002879f7 libavformat.56.dylib`avio_write(s=0x0000000000000000, buf=0x00007fff5fbff690, size=188) + 23 at aviobuf.c:179, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xa0) * frame #0: 0x00000001002879f7 libavformat.56.dylib`avio_write(s=0x0000000000000000, buf=0x00007fff5fbff690, size=188) + 23 at aviobuf.c:179 frame #1: 0x000000010034542b libavformat.56.dylib`mpegts_write_pes(s=0x0000000103032200, st=0x00000001021026f0, payload=0x000000010303c0a8, payload_size=1256, pts=1341180, dts=1341180, key=1) + 4347 at mpegtsenc.c:1187 frame #2: 0x0000000100344303 libavformat.56.dylib`mpegts_write_flush(s=0x0000000103032200) + 147 at mpegtsenc.c:1379 frame #3: 0x0000000100344161 libavformat.56.dylib`mpegts_write_end(s=0x0000000103032200) + 33 at mpegtsenc.c:1403 frame #4: 0x000000010034d834 libavformat.56.dylib`av_write_trailer(s=0x0000000103032200) + 276 at mux.c:949 frame #5: 0x00000001002cdf1d libavformat.56.dylib`hls_write_trailer(s=0x0000000103030400) + 45 at hlsenc.c:476 frame #6: 0x000000010034d834 libavformat.56.dylib`av_write_trailer(s=0x0000000103030400) + 276 at mux.c:949 frame #7: 0x000000010001bdb8 ffmpeg`transcode + 568 at ffmpeg.c:3799 frame #8: 0x000000010001b3df ffmpeg`main(argc=11, argv=0x00007fff5fbffa28) + 447 at ffmpeg.c:3946 or * thread #1: tid = 0x1564f17, 0x00000001002879f7 libavformat.56.dylib`avio_write(s=0x0000000000000000, buf=0x00007fff5fbff3c0, size=188) + 23 at aviobuf.c:179, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xa0) * frame #0: 0x00000001002879f7 libavformat.56.dylib`avio_write(s=0x0000000000000000, buf=0x00007fff5fbff3c0, size=188) + 23 at aviobuf.c:179 frame #1: 0x000000010034542b libavformat.56.dylib`mpegts_write_pes(s=0x000000010365f600, st=0x000000010210d6d0, payload=0x00000001036694a8, payload_size=2619, pts=396540, dts=396540, key=1) + 4347 at mpegtsenc.c:1187 frame #2: 0x00000001003482c4 libavformat.56.dylib`mpegts_write_packet_internal(s=0x000000010365f600, pkt=0x00007fff5fbff718) + 2068 at mpegtsenc.c:1341 frame #3: 0x0000000100344130 libavformat.56.dylib`mpegts_write_packet(s=0x000000010365f600, pkt=0x00007fff5fbff718) + 64 at mpegtsenc.c:1393 frame #4: 0x000000010034c6ef libavformat.56.dylib`write_packet(s=0x000000010365f600, pkt=0x00007fff5fbff718) + 975 at mux.c:598 frame #5: 0x000000010034b7f5 libavformat.56.dylib`av_write_frame(s=0x000000010365f600, pkt=0x00007fff5fbff718) + 421 at mux.c:654 frame #6: 0x000000010034db6a libavformat.56.dylib`ff_write_chained(dst=0x000000010365f600, dst_stream=1, pkt=0x00007fff5fbff900, src=0x0000000103030400, interleave=0) + 394 at mux.c:999 frame #7: 0x00000001002cded1 libavformat.56.dylib`hls_write_packet(s=0x0000000103030400, pkt=0x00007fff5fbff900) + 929 at hlsenc.c:466 frame #8: 0x000000010034c6ef libavformat.56.dylib`write_packet(s=0x0000000103030400, pkt=0x00007fff5fbff900) + 975 at mux.c:598 frame #9: 0x000000010034d77f libavformat.56.dylib`av_write_trailer(s=0x0000000103030400) + 95 at mux.c:934 frame #10: 0x000000010001bdb8 ffmpeg`transcode + 568 at ffmpeg.c:3799 frame #11: 0x000000010001b3df ffmpeg`main(argc=11, argv=0x00007fff5fbffa30) + 447 at ffmpeg.c:3946 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel