no /. in ffmpeg init_decode segv, build index fix audio wave, stop playback state...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / ffmpeg.C
index 873abc2e45992454e00887dff701616f478f747d..0c351e5a038375cd09e9579b178ac8390811b4fe 100644 (file)
@@ -484,7 +484,7 @@ int FFStream::write_packet(FFPacket &pkt)
 int FFStream::encode_frame(AVFrame *frame)
 {
        int pkts = 0, ret = 0;
-       for( int retry=100; --retry>=0; ) {
+       for( int retry=MAX_RETRY; --retry>=0; ) {
                if( frame || !pkts )
                        ret = avcodec_send_frame(avctx, frame);
                if( !ret && frame ) return pkts;
@@ -1948,8 +1948,10 @@ int FFMPEG::init_decoder(const char *filename)
        ff_lock("FFMPEG::init_decoder");
        av_register_all();
        char file_opts[BCTEXTLEN];
-       char *bp = strrchr(strcpy(file_opts, filename), '/');
-       char *sp = strrchr(!bp ? file_opts : bp, '.');
+       strcpy(file_opts, filename);
+       char *bp = strrchr(file_opts, '/');
+       if( !bp ) bp = file_opts;
+       char *sp = strrchr(bp, '.');
        if( !sp ) sp = bp + strlen(bp);
        FILE *fp = 0;
        AVInputFormat *ifmt = 0;