Ticket #1020: ffmpeg_build.patch

File ffmpeg_build.patch, 3.5 KB (added by hatboyzero, 3 years ago)

Patch for fixing compile errors resulting from latest FFMPEG

  • D:/WaterWATCH/dev/opencv/modules/highgui/src/cap_ffmpeg.cpp

     
    466466        AVCodecContext *enc = &ic->streams[i]->codec; 
    467467#endif 
    468468 
    469         if( CODEC_TYPE_VIDEO == enc->codec_type && video_stream < 0) { 
     469        if( AVMEDIA_TYPE_VIDEO == enc->codec_type && video_stream < 0) { 
    470470            AVCodec *codec = avcodec_find_decoder(enc->codec_id); 
    471471            if (!codec || 
    472472            avcodec_open(enc, codec) < 0) 
     
    550550                        continue; 
    551551                } 
    552552 
    553 #if LIBAVFORMAT_BUILD > 4628 
    554         avcodec_decode_video(video_st->codec, 
    555                              picture, &got_picture, 
    556                              packet.data, packet.size); 
    557 #else 
    558         avcodec_decode_video(&video_st->codec, 
    559                              picture, &got_picture, 
    560                              packet.data, packet.size); 
    561 #endif 
     553 
     554                AVPacket avpkt; 
     555                av_init_packet(&avpkt); 
     556                avpkt.data = packet.data; 
     557                avpkt.size = packet.size; 
     558                // 
     559                // HACK for CorePNG to decode as normal PNG by default 
     560                // same method used by ffmpeg 
     561                avpkt.flags = AV_PKT_FLAG_KEY; 
     562                avcodec_decode_video2(video_st->codec, 
     563                              picture, &got_picture, &avpkt); 
     564//Functions Removed from ffmpeg on 4/19/11 
     565//#if LIBAVFORMAT_BUILD > 4628 
     566//        avcodec_decode_video(video_st->codec, 
     567//                             picture, &got_picture, 
     568//                             packet.data, packet.size); 
     569//#else 
     570//        avcodec_decode_video(&video_st->codec, 
     571//                             picture, &got_picture, 
     572//                             packet.data, packet.size); 
     573//#endif 
    562574 
    563575        if (got_picture) { 
    564576            // we have a new picture, so memorize it 
     
    899911#endif 
    900912 
    901913#if LIBAVFORMAT_BUILD > 4621 
    902         c->codec_id = av_guess_codec(oc->oformat, NULL, oc->filename, NULL, CODEC_TYPE_VIDEO); 
     914        c->codec_id = av_guess_codec(oc->oformat, NULL, oc->filename, NULL, AVMEDIA_TYPE_VIDEO); 
    903915#else 
    904916        c->codec_id = oc->oformat->video_codec; 
    905917#endif 
     
    911923    //if(codec_tag) c->codec_tag=codec_tag; 
    912924        codec = avcodec_find_encoder(c->codec_id); 
    913925 
    914         c->codec_type = CODEC_TYPE_VIDEO; 
     926        c->codec_type = AVMEDIA_TYPE_VIDEO; 
    915927 
    916928        /* put sample parameters */ 
    917929        c->bit_rate = bitrate; 
     
    9981010        AVPacket pkt; 
    9991011        av_init_packet(&pkt); 
    10001012 
    1001         pkt.flags |= PKT_FLAG_KEY; 
     1013        pkt.flags |= AV_PKT_FLAG_KEY; 
    10021014        pkt.stream_index= video_st->index; 
    10031015        pkt.data= (uint8_t *)picture; 
    10041016        pkt.size= sizeof(AVPicture); 
     
    10181030                        pkt.pts = c->coded_frame->pts; 
    10191031#endif 
    10201032            if(c->coded_frame->key_frame) 
    1021                 pkt.flags |= PKT_FLAG_KEY; 
     1033                pkt.flags |= AV_PKT_FLAG_KEY; 
    10221034            pkt.stream_index= video_st->index; 
    10231035            pkt.data= outbuf; 
    10241036            pkt.size= out_size; 
     
    12151227        av_register_all (); 
    12161228 
    12171229        /* auto detect the output format from the name and fourcc code. */ 
    1218         fmt = guess_format(NULL, filename, NULL); 
     1230        fmt = av_guess_format(NULL, filename, NULL); 
    12191231        if (!fmt) 
    12201232        return false; 
    12211233 
     
    12381250#endif 
    12391251 
    12401252    // alloc memory for context 
    1241         oc = av_alloc_format_context(); 
     1253        oc = avformat_alloc_context(); 
    12421254        assert (oc); 
    12431255 
    12441256        /* set file name */