diffstat for ffmpeg2theora_0.27-1.1 ffmpeg2theora_0.27-1.1ubuntu1 ffmpeg2theora-0.27/debian/changelog | 9 +++++++ ffmpeg2theora-0.27/debian/control | 3 +- src/avinfo.c | 34 +++++++++++++++++++-------- src/ffmpeg2theora.c | 44 ++++++++++++++++++------------------ 4 files changed, 58 insertions(+), 32 deletions(-) diff -u ffmpeg2theora-0.27/debian/control ffmpeg2theora-0.27/debian/control --- ffmpeg2theora-0.27/debian/control +++ ffmpeg2theora-0.27/debian/control @@ -1,7 +1,8 @@ Source: ffmpeg2theora Section: video Priority: optional -Maintainer: RISKO Gergely +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: RISKO Gergely Uploaders: Tiago Bortoletto Vaz Vcs-Browser: http://git.debian.org/?p=collab-maint/ffmpeg2theora.git;a=summary Vcs-Git: git://git.debian.org/collab-maint/ffmpeg2theora.git diff -u ffmpeg2theora-0.27/debian/changelog ffmpeg2theora-0.27/debian/changelog --- ffmpeg2theora-0.27/debian/changelog +++ ffmpeg2theora-0.27/debian/changelog @@ -1,3 +1,12 @@ +ffmpeg2theora (0.27-1.1ubuntu1) oneiric; urgency=low + + * src/avinfo.c, src/ffmpeg2theora.c: patch taken from upstream (r17967) to + fix a FTBFS with libav 0.7 + * src/ffmpeg2theora.c: replace pp_mode_t by pp_mode to fix other FTBFS + with libav 0.7. This fix is not yet applied upstream. + + -- Fabrice Coutadeur Thu, 14 Jul 2011 07:55:19 +0200 + ffmpeg2theora (0.27-1.1) unstable; urgency=low * Non-maintainer upload. only in patch2: unchanged: --- ffmpeg2theora-0.27.orig/src/ffmpeg2theora.c +++ ffmpeg2theora-0.27/src/ffmpeg2theora.c @@ -341,7 +341,7 @@ static const char *find_category_for_subtitle_stream (ff2theora this, int idx, int included_subtitles) { AVCodecContext *enc = this->context->streams[idx]->codec; - if (enc->codec_type != CODEC_TYPE_SUBTITLE) return 0; + if (enc->codec_type != AVMEDIA_TYPE_SUBTITLE) return 0; switch (enc->codec_id) { case CODEC_ID_TEXT: case CODEC_ID_SSA: @@ -500,9 +500,11 @@ static const char *find_language_for_subtitle_stream(const AVStream *s) { - const char *lang=find_iso639_1(s->language); + AVMetadataTag *language = av_metadata_get(s->metadata, "language", NULL, 0); + const char *lang=find_iso639_1(language->value); if (!lang) { - fprintf(stderr,"WARNING - unrecognized ISO 639-2 language code: %s\n",s->language); + fprintf(stderr, "WARNING - unrecognized ISO 639-2 language code: %s\n", + language->value); } return lang; } @@ -516,8 +518,8 @@ AVStream *vstream = NULL; AVCodec *acodec = NULL; AVCodec *vcodec = NULL; - pp_mode_t *ppMode = NULL; - pp_context_t *ppContext = NULL; + pp_mode *ppMode = NULL; + pp_context *ppContext = NULL; int sws_flags; float frame_aspect = 0; double fps = 0.0; @@ -530,7 +532,7 @@ if (this->audiostream >= 0 && this->context->nb_streams > this->audiostream) { AVCodecContext *enc = this->context->streams[this->audiostream]->codec; - if (enc->codec_type == CODEC_TYPE_AUDIO) { + if (enc->codec_type == AVMEDIA_TYPE_AUDIO) { this->audio_index = this->audiostream; fprintf(stderr, " Using stream #0.%d as audio input\n",this->audio_index); } @@ -540,7 +542,7 @@ } if (this->videostream >= 0 && this->context->nb_streams > this->videostream) { AVCodecContext *enc = this->context->streams[this->videostream]->codec; - if (enc->codec_type == CODEC_TYPE_VIDEO) { + if (enc->codec_type == AVMEDIA_TYPE_VIDEO) { this->video_index = this->videostream; fprintf(stderr, " Using stream #0.%d as video input\n",this->video_index); } @@ -552,11 +554,11 @@ for (i = 0; i < this->context->nb_streams; i++) { AVCodecContext *enc = this->context->streams[i]->codec; switch (enc->codec_type) { - case CODEC_TYPE_VIDEO: + case AVMEDIA_TYPE_VIDEO: if (this->video_index < 0 && !this->disable_video) this->video_index = i; break; - case CODEC_TYPE_AUDIO: + case AVMEDIA_TYPE_AUDIO: if (this->audio_index < 0 && !this->disable_audio) this->audio_index = i; break; @@ -980,7 +982,7 @@ AVStream *stream = this->context->streams[i]; AVCodecContext *enc = stream->codec; const char *category; - if (enc->codec_type == CODEC_TYPE_SUBTITLE) { + if (enc->codec_type == AVMEDIA_TYPE_SUBTITLE) { AVCodec *codec = avcodec_find_decoder (enc->codec_id); if (codec && avcodec_open (enc, codec) >= 0) { subtitles_opened[i] = 1; @@ -1451,9 +1453,11 @@ } if (this->sws_scale_ctx) { sws_scale(this->sws_scale_ctx, - output_cropped->data, output_cropped->linesize, 0, - display_height - (this->frame_topBand + this->frame_bottomBand), - output_resized->data, output_resized->linesize); + output_cropped->data, + output_cropped->linesize, 0, + display_height - (this->frame_topBand + this->frame_bottomBand), + output_resized->data, + output_resized->linesize); } else{ output_resized = output_cropped; @@ -1512,7 +1516,7 @@ int samples=0; int samples_out=0; int data_size = 4*AVCODEC_MAX_AUDIO_FRAME_SIZE; - int bytes_per_sample = av_get_bits_per_sample_format(aenc->sample_fmt)/8; + int bytes_per_sample = av_get_bits_per_sample_fmt(aenc->sample_fmt)/8; if (avpkt.size > 0) { len1 = avcodec_decode_audio3(astream->codec, audio_buf, &data_size, &avpkt); @@ -2726,8 +2730,7 @@ for(info.passno=(info.twopass==3?1:info.twopass);info.passno<=(info.twopass==3?2:info.twopass);info.passno++){ //detect image sequences and set framerate if provided - if (av_guess_image2_codec(inputfile_name) != CODEC_ID_NONE || \ - (input_fmt != NULL && strcmp(input_fmt->name, "video4linux") >= 0)) { + if (input_fmt != NULL && strcmp(input_fmt->name, "video4linux") >= 0) { formatParams = ¶ms; memset(formatParams, 0, sizeof(*formatParams)); if (input_fmt != NULL && strcmp(input_fmt->name, "video4linux") >= 0) { @@ -2748,7 +2751,6 @@ formatParams->time_base.den = convert->framerate_new.num; formatParams->time_base.num = convert->framerate_new.den; } - formatParams->video_codec_id = av_guess_image2_codec(inputfile_name); } if (av_open_input_file(&convert->context, inputfile_name, input_fmt, 0, formatParams) >= 0) { if (av_find_stream_info(convert->context) >= 0) { @@ -2760,9 +2762,9 @@ for (i = 0; i < convert->context->nb_streams; i++) { AVCodecContext *enc = convert->context->streams[i]->codec; switch (enc->codec_type) { - case CODEC_TYPE_VIDEO: has_video = 1; break; - case CODEC_TYPE_AUDIO: has_audio = 1; break; - case CODEC_TYPE_SUBTITLE: if (is_supported_subtitle_stream(convert, i, convert->included_subtitles)) has_kate = 1; break; + case AVMEDIA_TYPE_VIDEO: has_video = 1; break; + case AVMEDIA_TYPE_AUDIO: has_audio = 1; break; + case AVMEDIA_TYPE_SUBTITLE: if (is_supported_subtitle_stream(convert, i, convert->included_subtitles)) has_kate = 1; break; default: break; } } @@ -2828,7 +2830,7 @@ if (!info.frontend) { if (info.twopass!=3 || info.passno==1) { - dump_format(convert->context, 0,inputfile_name, 0); + av_dump_format(convert->context, 0,inputfile_name, 0); } } if (convert->disable_audio) { only in patch2: unchanged: --- ffmpeg2theora-0.27.orig/src/avinfo.c +++ ffmpeg2theora-0.27/src/avinfo.c @@ -196,7 +196,7 @@ } switch(enc->codec_type) { - case CODEC_TYPE_VIDEO: + case AVMEDIA_TYPE_VIDEO: codec_name = fix_codec_name(codec_name); json_add_key_value(output, "codec", (void *)codec_name, JSON_STRING, 0, indent); if (enc->pix_fmt != PIX_FMT_NONE) { @@ -224,7 +224,7 @@ json_add_key_value(output, "bitrate", &t, JSON_FLOAT, 0, indent); } break; - case CODEC_TYPE_AUDIO: + case AVMEDIA_TYPE_AUDIO: codec_name = fix_codec_name(codec_name); json_add_key_value(output, "codec", (void *)codec_name, JSON_STRING, 0, indent); if (enc->sample_rate) { @@ -277,15 +277,15 @@ } break; /* - case CODEC_TYPE_DATA: + case AVMEDIA_TYPE_DATA: fprintf(output, "datacodec: %s\n", codec_name); bitrate = enc->bit_rate; break; - case CODEC_TYPE_SUBTITLE: + case AVMEDIA_TYPE_SUBTITLE: fprintf(output, "subtitle: %s\n", codec_name); bitrate = enc->bit_rate; break; - case CODEC_TYPE_ATTACHMENT: + case AVMEDIA_TYPE_ATTACHMENT: fprintf(output, "attachment: : %s\n", codec_name); bitrate = enc->bit_rate; break; @@ -330,7 +330,7 @@ display_aspect_ratio.num, display_aspect_ratio.den); json_add_key_value(output, "display_aspect_ratio", buf1, JSON_STRING, 0, indent + 1); } - if(st->codec->codec_type == CODEC_TYPE_VIDEO){ + if(st->codec->codec_type == AVMEDIA_TYPE_VIDEO){ if (st->time_base.den && st->time_base.num && av_q2d(st->time_base) > 0.001) { snprintf(buf1, sizeof(buf1), "%d:%d", st->time_base.den, st->time_base.num); @@ -340,6 +340,20 @@ st->r_frame_rate.num, st->r_frame_rate.den); json_add_key_value(output, "framerate", buf1, JSON_STRING, 0, indent + 1); } + if (st->sample_aspect_ratio.num && // default + av_cmp_q(st->sample_aspect_ratio, st->codec->sample_aspect_ratio)) { + AVRational display_aspect_ratio; + av_reduce(&display_aspect_ratio.num, &display_aspect_ratio.den, + st->codec->width*st->sample_aspect_ratio.num, + st->codec->height*st->sample_aspect_ratio.den, + 1024*1024); + snprintf(buf1, sizeof(buf1), "%d:%d", + st->sample_aspect_ratio.num, st->sample_aspect_ratio.den); + json_add_key_value(output, "pixel_aspect_ratio", buf1, JSON_STRING, 0, indent+1); + snprintf(buf1, sizeof(buf1), "%d:%d", + display_aspect_ratio.num, display_aspect_ratio.den); + json_add_key_value(output, "display_aspect_ratio", buf1, JSON_STRING, 0, indent+1); + } } json_add_key_value(output, "id", &i, JSON_INT, 1, indent + 1); do_indent(output, indent-1); @@ -484,11 +498,11 @@ int j, k; for(j=0; jnb_programs; j++) { for(k=0; kprograms[j]->nb_stream_indexes; k++) - json_stream_format(output, ic, ic->programs[j]->stream_index[k], 2, !k && !j, CODEC_TYPE_VIDEO); + json_stream_format(output, ic, ic->programs[j]->stream_index[k], 2, !k && !j, AVMEDIA_TYPE_VIDEO); } } else { for(i=0;inb_streams;i++) { - json_stream_format(output, ic, i, 2, !i, CODEC_TYPE_VIDEO); + json_stream_format(output, ic, i, 2, !i, AVMEDIA_TYPE_VIDEO); } } fprintf(output, "],\n"); @@ -499,11 +513,11 @@ int j, k; for(j=0; jnb_programs; j++) { for(k=0; kprograms[j]->nb_stream_indexes; k++) - json_stream_format(output, ic, ic->programs[j]->stream_index[k], 2, !k && !j, CODEC_TYPE_AUDIO); + json_stream_format(output, ic, ic->programs[j]->stream_index[k], 2, !k && !j, AVMEDIA_TYPE_AUDIO); } } else { for(i=0;inb_streams;i++) { - json_stream_format(output, ic, i, 2, !i, CODEC_TYPE_AUDIO); + json_stream_format(output, ic, i, 2, !i, AVMEDIA_TYPE_AUDIO); } } fprintf(output, "],\n");