diff -Naur miro-4.0.3.orig/linux/miro-segmenter.c miro-4.0.3/linux/miro-segmenter.c --- miro-4.0.3.orig/linux/miro-segmenter.c 2011-08-10 17:53:51.000000000 +0000 +++ miro-4.0.3/linux/miro-segmenter.c 2011-12-18 23:14:21.423409001 +0000 @@ -60,7 +60,11 @@ } switch (input_codec_context->codec_type) { +#if LIBAVFORMAT_VERSION_MAJOR > 52 + case AVMEDIA_TYPE_AUDIO: +#else case CODEC_TYPE_AUDIO: +#endif output_codec_context->channel_layout = input_codec_context->channel_layout; output_codec_context->sample_rate = input_codec_context->sample_rate; output_codec_context->channels = input_codec_context->channels; @@ -72,7 +76,11 @@ output_codec_context->block_align = input_codec_context->block_align; } break; +#if LIBAVFORMAT_VERSION_MAJOR > 52 + case AVMEDIA_TYPE_VIDEO: +#else case CODEC_TYPE_VIDEO: +#endif output_codec_context->pix_fmt = input_codec_context->pix_fmt; output_codec_context->width = input_codec_context->width; output_codec_context->height = input_codec_context->height; @@ -154,7 +162,11 @@ exit(1); } +#if LIBAVFORMAT_VERSION_MAJOR > 52 + ofmt = av_guess_format("mpegts", NULL, NULL); +#else ofmt = guess_format("mpegts", NULL, NULL); +#endif if (!ofmt) { fprintf(stderr, "Could not find MPEG-TS muxer\n"); exit(1); @@ -174,12 +186,20 @@ for (i = 0; i < ic->nb_streams && (video_index < 0 || audio_index < 0); i++) { switch (ic->streams[i]->codec->codec_type) { +#if LIBAVFORMAT_VERSION_MAJOR > 52 + case AVMEDIA_TYPE_VIDEO: +#else case CODEC_TYPE_VIDEO: +#endif video_index = i; ic->streams[i]->discard = AVDISCARD_NONE; video_st = add_output_stream(oc, ic->streams[i]); break; +#if LIBAVFORMAT_VERSION_MAJOR > 52 + case AVMEDIA_TYPE_AUDIO: +#else case CODEC_TYPE_AUDIO: +#endif audio_index = i; ic->streams[i]->discard = AVDISCARD_NONE; audio_st = add_output_stream(oc, ic->streams[i]); @@ -195,7 +215,11 @@ exit(1); } +#if LIBAVFORMAT_VERSION_MAJOR > 52 + av_dump_format(oc, 0, input, 1); +#else dump_format(oc, 0, input, 1); +#endif if (video_st) { codec = avcodec_find_decoder(video_st->codec->codec_id); @@ -208,7 +232,11 @@ } } +#if LIBAVFORMAT_VERSION_MAJOR > 52 + if (avio_open(&oc->pb, output_filename, URL_WRONLY) < 0) { +#else if (url_fopen(&oc->pb, output_filename, URL_WRONLY) < 0) { +#endif fprintf(stderr, "Could not open '%s'\n", output_filename); exit(1); } @@ -234,7 +262,11 @@ break; } +#if LIBAVFORMAT_VERSION_MAJOR > 52 + if (packet.stream_index == video_index && (packet.flags & AV_PKT_FLAG_KEY)) { +#else if (packet.stream_index == video_index && (packet.flags & PKT_FLAG_KEY)) { +#endif segment_time = (double)video_st->pts.val * video_st->time_base.num / video_st->time_base.den; } else if (video_index < 0) { @@ -245,10 +277,17 @@ } if (segment_time - prev_segment_time >= segment_duration) { +#if LIBAVFORMAT_VERSION_MAJOR > 52 + avio_flush(oc->pb); + avio_close(oc->pb); + + if (avio_open(&oc->pb, output_filename, URL_WRONLY) < 0) { +#else put_flush_packet(oc->pb); url_fclose(oc->pb); if (url_fopen(&oc->pb, output_filename, URL_WRONLY) < 0) { +#endif fprintf(stderr, "Could not open '%s'\n", output_filename); break; } @@ -278,7 +317,11 @@ av_freep(&oc->streams[i]); } +#if LIBAVFORMAT_VERSION_MAJOR > 52 + avio_close(oc->pb); +#else url_fclose(oc->pb); +#endif av_free(oc); return 0;