mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-24 10:02:29 +01:00
8630ff272e
Signed-off-by: Niels Horn <niels.horn@slackbuilds.org>
76 lines
2.3 KiB
Diff
76 lines
2.3 KiB
Diff
Fix build with ffmpeg/libav trunk / 0.7
|
|
|
|
Index: cinelerra/cinelerra/ffmpeg.C
|
|
===================================================================
|
|
--- cinelerra.orig/cinelerra/ffmpeg.C
|
|
+++ cinelerra/cinelerra/ffmpeg.C
|
|
@@ -364,12 +364,15 @@ int FFMPEG::decode(uint8_t *data, long d
|
|
|
|
// NOTE: frame must already have data space allocated
|
|
|
|
+ AVPacket pkt;
|
|
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,
|
|
- data,
|
|
- data_size);
|
|
+ &pkt);
|
|
|
|
if (length < 0) {
|
|
printf("FFMPEG::decode error decoding frame\n");
|
|
Index: cinelerra/quicktime/qtffmpeg.c
|
|
===================================================================
|
|
--- cinelerra.orig/quicktime/qtffmpeg.c
|
|
+++ cinelerra/quicktime/qtffmpeg.c
|
|
@@ -181,6 +181,7 @@ static int decode_wrapper(quicktime_t *f
|
|
|
|
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;
|
|
- 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,
|
|
- ffmpeg->work_buffer,
|
|
- bytes + header_bytes);
|
|
+ &pkt);
|
|
|
|
|
|
|
|
Index: cinelerra/quicktime/wma.c
|
|
===================================================================
|
|
--- cinelerra.orig/quicktime/wma.c
|
|
+++ cinelerra/quicktime/wma.c
|
|
@@ -195,11 +195,14 @@ printf("decode 2 %x %llx %llx\n", chunk_
|
|
chunk_size);
|
|
#else
|
|
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,
|
|
- codec->packet_buffer,
|
|
- chunk_size);
|
|
+ &pkt);
|
|
#endif
|
|
|
|
pthread_mutex_unlock(&ffmpeg_lock);
|