Ow, it was quite easy to fix.
Can anyone review the patch to fix cinelerra w/ the newer ffmpeg API?
I think the fix is correct, as I got it looking at the ffmpeg svn diff.

ps: how will I version my cinelerra packages? git has no revision number!
ps2: can anyone make a tag that represents the svn r1061 in the git repo?

Bye,
Rafael Diniz

Em Saturday 27 September 2008, rafael2k escreveu:
> Hello Frans,
> I think we can fix the x264 and ffmpeg api changes.
> In my opinion, put more outside code inside our repo is not the way to go.
>
> my first play w/ git (fix for quicktime/mpeg4.c):
>
>
> --- a/quicktime/mpeg4.c
> +++ b/quicktime/mpeg4.c
> @@ -671,7 +671,7 @@ static int encode(quicktime_t *file, unsigned char
> **row_pointers, int track)
>
>                 context->b_quant_factor = 1.25;
>                 context->b_quant_offset = 1.25;
> -                       context->error_resilience = FF_ER_CAREFUL;
> +                       context->error_recognition = FF_ER_CAREFUL;
>                         context->error_concealment = 3;
>                         context->frame_skip_cmp = FF_CMP_DCTMAX;
>                         context->ildct_cmp = FF_CMP_VSAD;
>
>
>
> Bye,
> Rafael Diniz
>
> Em Wednesday 24 September 2008, Frans de Boer escreveu:
> > Dear Readers,
> >
> > In case you have not noticed it yet, FFmpeg, x264 and maybe other
> > packages have changed (and are still changing) their API/ABI as well as
> > some structures. This causes that Cinelerra can't be compiled with
> > FFmpeg SVN version 15262 and higher. The x264 libraries have changed
> > too, but I still have to figure out which version is still usable. For
> > now I am using the tarball of 20080825-2245. Note: the 2245 is probably
> > a version number of some kind, but until this date, that number stays
> > the same while the library is not backwards compatible anymore.
> >
> > Side Note: This causes also that the compilation of the most recent
> > mplayer (out of SVN) will fail if you use FFmpeg SVN r15261 or younger.
> >
> > Q: Will there be any changes in the cinelerra SVN just to cope with
> > these changes?
> > Q: If not, is it not better to collect dependent libraries and place
> > them in some repository - with a clear notice - to be used with the
> > current SVN r1061? I know I will collect those functional sources to the
> > latest working versions and probably will offer them online in the near
> > future on my private server (no warranty about up-time).
> >
> > Kind Regards,
> > Frans de Boer.
> >
> > PS: cinelerra-4 is affected too by these changes, so it will put more
> > burden on the migration process.



-- 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Ciência da Computação @  Unicamp
Rádio Muda, radiolivre.org, TV Piolho, tvlivre.org, www.midiaindependente.org
Chave PGP: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x2FF86098
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

diff --git a/quicktime/mpeg4.c b/quicktime/mpeg4.c
index d418f66..09b7a85 100644
--- a/quicktime/mpeg4.c
+++ b/quicktime/mpeg4.c
@@ -671,7 +671,7 @@ static int encode(quicktime_t *file, unsigned char **row_pointers, int track)
 
         	context->b_quant_factor = 1.25;
         	context->b_quant_offset = 1.25;
-			context->error_resilience = FF_ER_CAREFUL;
+			context->error_recognition = FF_ER_CAREFUL;
 			context->error_concealment = 3;
 			context->frame_skip_cmp = FF_CMP_DCTMAX;
 			context->ildct_cmp = FF_CMP_VSAD;
diff --git a/quicktime/wma.c b/quicktime/wma.c
index 6ceefe5..deb6056 100644
--- a/quicktime/wma.c
+++ b/quicktime/wma.c
@@ -187,10 +187,11 @@ printf("decode 2 %x %llx %llx\n", chunk_size, chunk_offset, chunk_offset + chunk
 
 // Decode chunk into work buffer.
 		pthread_mutex_lock(&ffmpeg_lock);
-		result = avcodec_decode_audio(codec->decoder_context, 
+		bytes_decoded = AVCODEC_MAX_AUDIO_FRAME_SIZE;
+		result = avcodec_decode_audio2(codec->decoder_context, 
 			(int16_t*)(codec->work_buffer + codec->output_size * sample_size), 
-            &bytes_decoded,
-            codec->packet_buffer, 
+                        &bytes_decoded,
+                        codec->packet_buffer, 
 			chunk_size);
 		pthread_mutex_unlock(&ffmpeg_lock);
 		if(bytes_decoded <= 0)

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to