From: Jan Rękorajski Date: Sun, 18 Nov 2012 13:03:53 +0000 (+0100) Subject: - updated from archlinux X-Git-Tag: auto/th/cinelerra-cv-2.2-0.20121104.3~2 X-Git-Url: http://git.pld-linux.org/?p=packages%2Fcinelerra-cv.git;a=commitdiff_plain;h=fa7708dfdd0a9d01d005b20118addeb4c00cac79 - updated from archlinux --- diff --git a/cinelerra-cv-ffmpeg.patch b/cinelerra-cv-ffmpeg.patch index 6f7962f..344407c 100644 --- a/cinelerra-cv-ffmpeg.patch +++ b/cinelerra-cv-ffmpeg.patch @@ -1,76 +1,163 @@ -Fix build with ffmpeg/libav trunk / 0.7 - -Index: cinelerra-20101104/cinelerra/ffmpeg.C -=================================================================== ---- cinelerra-20101104.orig/cinelerra/ffmpeg.C -+++ cinelerra-20101104/cinelerra/ffmpeg.C -@@ -364,12 +364,15 @@ int FFMPEG::decode(uint8_t *data, long d - - // NOTE: frame must already have data space allocated +diff --git a/cinelerra/ffmpeg.C b/cinelerra/ffmpeg.C +index 6ab6047..7cde503 100644 +--- a/cinelerra/ffmpeg.C ++++ b/cinelerra/ffmpeg.C +@@ -23,7 +23,6 @@ FFMPEG::FFMPEG(Asset *asset) { + + int FFMPEG::init(char *codec_string) { + +- avcodec_init(); + avcodec_register_all(); + + CodecID id = codec_id(codec_string); +@@ -364,12 +363,15 @@ int FFMPEG::decode(uint8_t *data, long data_size, VFrame *frame_out) { + + // NOTE: frame must already have data space allocated + AVPacket pkt; - got_picture = 0; + got_picture = 0; - int length = avcodec_decode_video(context, + av_init_packet( &pkt ); + pkt.data = data; + pkt.size = data_size; + int length = avcodec_decode_video2(context, - picture, - &got_picture, + picture, + &got_picture, - data, - data_size); + &pkt); - if (length < 0) { - printf("FFMPEG::decode error decoding frame\n"); -Index: cinelerra-20101104/quicktime/qtffmpeg.c -=================================================================== ---- cinelerra-20101104.orig/quicktime/qtffmpeg.c -+++ cinelerra-20101104/quicktime/qtffmpeg.c -@@ -181,6 +181,7 @@ static int decode_wrapper(quicktime_t *f - - if(!result) - { + if (length < 0) { + printf("FFMPEG::decode error decoding frame\n"); +diff --git a/cinelerra/fileac3.C b/cinelerra/fileac3.C +index a1ef61e..e56705f 100644 +--- a/cinelerra/fileac3.C ++++ b/cinelerra/fileac3.C +@@ -84,7 +84,6 @@ int FileAC3::open_file(int rd, int wr) + + if(wr) + { +- avcodec_init(); + avcodec_register_all(); + codec = avcodec_find_encoder(CODEC_ID_AC3); + if(!codec) +diff --git a/quicktime/mpeg4.c b/quicktime/mpeg4.c +index 81cb72b..67bcab8 100644 +--- a/quicktime/mpeg4.c ++++ b/quicktime/mpeg4.c +@@ -629,7 +629,6 @@ static int encode(quicktime_t *file, unsigned char **row_pointers, int track) + if(!ffmpeg_initialized) + { + ffmpeg_initialized = 1; +- avcodec_init(); + avcodec_register_all(); + } + +@@ -674,7 +673,7 @@ static int encode(quicktime_t *file, unsigned char **row_pointers, int track) + #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) + context->error_resilience = FF_ER_CAREFUL; + #else +- context->error_recognition = FF_ER_CAREFUL; ++ context->err_recognition = AV_EF_CRCCHECK; + #endif + context->error_concealment = 3; + context->frame_skip_cmp = FF_CMP_DCTMAX; +@@ -699,7 +698,6 @@ static int encode(quicktime_t *file, unsigned char **row_pointers, int track) + context->profile= FF_PROFILE_UNKNOWN; + context->rc_buffer_aggressivity = 1.0; + context->level= FF_LEVEL_UNKNOWN; +- context->flags |= CODEC_FLAG_H263P_UMV; + context->flags |= CODEC_FLAG_AC_PRED; + + // All the forbidden settings can be extracted from libavcodec/mpegvideo.c of ffmpeg... +@@ -717,10 +715,8 @@ static int encode(quicktime_t *file, unsigned char **row_pointers, int track) + (codec->ffmpeg_id == CODEC_ID_MPEG4 || + codec->ffmpeg_id == CODEC_ID_MPEG1VIDEO || + codec->ffmpeg_id == CODEC_ID_MPEG2VIDEO || +- codec->ffmpeg_id == CODEC_ID_H263P || +- codec->ffmpeg_id == CODEC_FLAG_H263P_SLICE_STRUCT)) ++ codec->ffmpeg_id == CODEC_ID_H263P)) + { +- avcodec_thread_init(context, file->cpus); + context->thread_count = file->cpus; + } + +diff --git a/quicktime/qtffmpeg.c b/quicktime/qtffmpeg.c +index 8c532c2..a2b51e9 100644 +--- a/quicktime/qtffmpeg.c ++++ b/quicktime/qtffmpeg.c +@@ -54,7 +54,6 @@ quicktime_ffmpeg_t* quicktime_new_ffmpeg(int cpus, + if(!ffmpeg_initialized) + { + ffmpeg_initialized = 1; +- avcodec_init(); + avcodec_register_all(); + } + +@@ -90,10 +89,8 @@ quicktime_ffmpeg_t* quicktime_new_ffmpeg(int cpus, + (ffmpeg_id == CODEC_ID_MPEG4 || + ffmpeg_id == CODEC_ID_MPEG1VIDEO || + ffmpeg_id == CODEC_ID_MPEG2VIDEO || +- ffmpeg_id == CODEC_ID_H263P || +- ffmpeg_id == CODEC_FLAG_H263P_SLICE_STRUCT)) ++ ffmpeg_id == CODEC_ID_H263P)) + { +- avcodec_thread_init(context, cpus); + context->thread_count = cpus; + } + if(avcodec_open(context, +@@ -181,6 +178,7 @@ static int decode_wrapper(quicktime_t *file, + + if(!result) + { + AVPacket pkt; - - + + // No way to determine if there was an error based on nonzero status. -@@ -189,11 +190,13 @@ static int decode_wrapper(quicktime_t *f - ffmpeg->decoder_context[current_field]->skip_frame = AVDISCARD_NONREF /* AVDISCARD_BIDIR */; - else - ffmpeg->decoder_context[current_field]->skip_frame = AVDISCARD_DEFAULT; +@@ -189,11 +187,13 @@ static int decode_wrapper(quicktime_t *file, + ffmpeg->decoder_context[current_field]->skip_frame = AVDISCARD_NONREF /* AVDISCARD_BIDIR */; + else + ffmpeg->decoder_context[current_field]->skip_frame = AVDISCARD_DEFAULT; - result = avcodec_decode_video(ffmpeg->decoder_context[current_field], + av_init_packet( &pkt ); + pkt.data = ffmpeg->work_buffer; + pkt.size = bytes + header_bytes; -+ result = avcodec_decode_video2(ffmpeg->decoder_context[current_field], - &ffmpeg->picture[current_field], - &got_picture, ++ result = avcodec_decode_video2(ffmpeg->decoder_context[current_field], + &ffmpeg->picture[current_field], + &got_picture, - ffmpeg->work_buffer, - bytes + header_bytes); + &pkt); - - - -Index: cinelerra-20101104/quicktime/wma.c -=================================================================== ---- cinelerra-20101104.orig/quicktime/wma.c -+++ cinelerra-20101104/quicktime/wma.c -@@ -195,11 +195,14 @@ printf("decode 2 %x %llx %llx\n", chunk_ - chunk_size); + + + +diff --git a/quicktime/wma.c b/quicktime/wma.c +index c045741..abc2dc8 100644 +--- a/quicktime/wma.c ++++ b/quicktime/wma.c +@@ -67,7 +67,6 @@ static int init_decode(quicktime_audio_map_t *track_map, + if(!ffmpeg_initialized) + { + ffmpeg_initialized = 1; +- avcodec_init(); + avcodec_register_all(); + } + +@@ -195,11 +194,14 @@ printf("decode 2 %x %llx %llx\n", chunk_size, chunk_offset, chunk_offset + chunk + chunk_size); #else - bytes_decoded = AVCODEC_MAX_AUDIO_FRAME_SIZE; + bytes_decoded = AVCODEC_MAX_AUDIO_FRAME_SIZE; - result = avcodec_decode_audio2(codec->decoder_context, + AVPacket pkt; + av_init_packet( &pkt ); + pkt.data = codec->packet_buffer; + pkt.size = chunk_size; + result = avcodec_decode_audio3(codec->decoder_context, - (int16_t*)(codec->work_buffer + codec->output_size * sample_size), - &bytes_decoded, + (int16_t*)(codec->work_buffer + codec->output_size * sample_size), + &bytes_decoded, - codec->packet_buffer, - chunk_size); + &pkt); #endif - - pthread_mutex_unlock(&ffmpeg_lock); + + pthread_mutex_unlock(&ffmpeg_lock);