commit 3504b5e1cc8a8f79a2d29ebf00b5310cf2785fb2
Author: Jan Rękorajski <[email protected]>
Date:   Wed Aug 28 21:38:35 2013 +0200

    - ffmpeg2 fixes from upstream svn

 gpac-ffmpeg2.patch | 193 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 gpac.spec          |   2 +-
 2 files changed, 187 insertions(+), 8 deletions(-)
---
diff --git a/gpac.spec b/gpac.spec
index eb0594b..8f48fc8 100644
--- a/gpac.spec
+++ b/gpac.spec
@@ -164,7 +164,7 @@ Wtyczka GPAC dla przeglądarek WWW zgodnych z Netscape.
 %patch6 -p1
 %patch7 -p1
 %patch8 -p1
-%patch9 -p1
+%patch9 -p0
 
 sed -i -e 's/wx-config/wx-gtk2-unicode-config/' configure
 chmod a+x configure
diff --git a/gpac-ffmpeg2.patch b/gpac-ffmpeg2.patch
index 248f0f7..c5ad0ae 100644
--- a/gpac-ffmpeg2.patch
+++ b/gpac-ffmpeg2.patch
@@ -1,15 +1,194 @@
-Index: gpac/modules/ffmpeg_in/ffmpeg_in.h
+Index: modules/ffmpeg_in/ffmpeg_in.h
 ===================================================================
---- gpac.orig/modules/ffmpeg_in/ffmpeg_in.h
-+++ gpac/modules/ffmpeg_in/ffmpeg_in.h
-@@ -96,6 +96,10 @@ void gf_av_vlog(void* avcl, int level, c
+--- modules/ffmpeg_in/ffmpeg_in.h      (revision 4282)
++++ modules/ffmpeg_in/ffmpeg_in.h      (revision 4451)
+@@ -120,7 +120,7 @@
+ 
+       /*for audio packed frames*/
+       u32 frame_start;
+-      char audio_buf[AVCODEC_MAX_AUDIO_FRAME_SIZE];
++      char audio_buf[192000];
+       Bool check_h264_isma;
+ 
+       u32 base_ES_ID;
+Index: modules/ffmpeg_in/ffmpeg_load.c
+===================================================================
+--- modules/ffmpeg_in/ffmpeg_load.c    (revision 4282)
++++ modules/ffmpeg_in/ffmpeg_load.c    (revision 4451)
+@@ -44,7 +44,7 @@
  #endif
  
  
-+#ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE
-+#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio
+-GF_EXPORT
++GPAC_MODULE_EXPORT
+ const u32 *QueryInterfaces()
+ {
+       static u32 si [] = {
+@@ -57,7 +57,7 @@
+       return si;
+ }
+ 
+-GF_EXPORT
++GPAC_MODULE_EXPORT
+ GF_BaseInterface *LoadInterface(u32 InterfaceType)
+ {
+       if (InterfaceType == GF_MEDIA_DECODER_INTERFACE) return FFDEC_Load();
+@@ -67,7 +67,7 @@
+       return NULL;
+ }
+ 
+-GF_EXPORT
++GPAC_MODULE_EXPORT
+ void ShutdownInterface(GF_BaseInterface *ifce)
+ {
+       switch (ifce->InterfaceType) {
+@@ -81,3 +81,6 @@
+ #endif
+       }
+ }
++
++
++GPAC_MODULE_STATIC_DELARATION( ffmpeg )
+Index: modules/ffmpeg_in/ffmpeg_demux.c
+===================================================================
+--- modules/ffmpeg_in/ffmpeg_demux.c   (revision 4282)
++++ modules/ffmpeg_in/ffmpeg_demux.c   (revision 4451)
+@@ -53,6 +53,18 @@
+ #define AVERROR_NOFMT AVERROR(EINVAL)
+ #endif /* AVERROR_NOFMT */
+ 
++
++#if (LIBAVFORMAT_VERSION_MAJOR >= 54) && (LIBAVFORMAT_VERSION_MINOR >= 20)
++
++#define av_find_stream_info(__c)      avformat_find_stream_info(__c, NULL)
++#ifndef FF_API_FORMAT_PARAMETERS
++#define FF_API_FORMAT_PARAMETERS      1
++#endif
++
 +#endif
 +
++
++
+ static u32 FFDemux_Run(void *par)
+ {
+       AVPacket pkt;
+@@ -76,7 +88,7 @@
+       seek_to = (s64) (AV_TIME_BASE*ffd->seek_time);
+       map_video_time = !ffd->seekable;
+ 
+-      video_init = (seek_to && ffd->video_ch) ? 0 : 1;
++      video_init = (seek_to && ffd->video_ch) ? GF_FALSE : GF_TRUE;
+       seek_audio = seek_video = 0;
+       if (ffd->seekable && (ffd->audio_st>=0)) seek_audio = (u64) (s64) 
(ffd->seek_time*ffd->audio_tscale.den);
+       if (ffd->seekable && (ffd->video_st>=0)) seek_video = (u64) (s64) 
(ffd->seek_time*ffd->video_tscale.den);
+Index: modules/ffmpeg_in/ffmpeg_decode.c
+===================================================================
+--- modules/ffmpeg_in/ffmpeg_decode.c  (revision 4282)
++++ modules/ffmpeg_in/ffmpeg_decode.c  (revision 4451)
+@@ -38,8 +38,14 @@
+ #undef USE_AVCODEC2
+ #endif
+ 
++#if (LIBAVCODEC_VERSION_MAJOR >= 55) 
++#define USE_AVCTX3
++#elif (LIBAVCODEC_VERSION_MAJOR >= 54) && (LIBAVCODEC_VERSION_MINOR >= 35)
++#define USE_AVCTX3
++#endif
+ 
+ 
++
+ /**
+  * Allocates data for FFMPEG decoding
+  * \param oldBuffer The oldBuffer (freed if not NULL)
+@@ -170,7 +176,12 @@
+               frame = &ffd->base_frame;
+       }
+       if (!(*ctx)){
++
++#ifdef USE_AVCTX3
++        *ctx = avcodec_alloc_context3(NULL);
++#else
+         *ctx = avcodec_alloc_context();
++#endif
+       }
+ 
+       /*private FFMPEG DSI*/
+@@ -318,7 +329,11 @@
+               (*ctx)->pix_fmt = ffd->raw_pix_fmt;
+               if ((*ctx)->extradata && strstr((*ctx)->extradata, "BottomUp")) 
ffd->flipped = 1;
+       } else {
++#ifdef USE_AVCTX3
++              if (avcodec_open2((*ctx), (*codec), NULL )<0) return 
GF_NON_COMPLIANT_BITSTREAM;
++#else
+               if (avcodec_open((*ctx), (*codec) )<0) return 
GF_NON_COMPLIANT_BITSTREAM;
++#endif
+       }
+ 
+       /*setup audio streams*/
+@@ -612,10 +627,11 @@
+               if (ffd->frame_start>inBufferLength) ffd->frame_start = 0;
+ 
+ redecode:
+-              gotpic = AVCODEC_MAX_AUDIO_FRAME_SIZE;
+ #ifdef USE_AVCODEC2
++              gotpic = 0;
+               len = avcodec_decode_audio3(ctx, (short *)ffd->audio_buf, 
&gotpic, &pkt);
+ #else
++              gotpic = AVCODEC_MAX_AUDIO_FRAME_SIZE;
+               len = avcodec_decode_audio2(ctx, (short *)ffd->audio_buf, 
&gotpic, inBuffer + ffd->frame_start, inBufferLength - ffd->frame_start);
+ #endif
+               if (len<0) { ffd->frame_start = 0; return 
GF_NON_COMPLIANT_BITSTREAM; }
+@@ -755,7 +771,13 @@
+                       here this means the DSI was broken, so no big deal*/
+                       avcodec_close(ctx);
+                       *codec = avcodec_find_decoder(CODEC_ID_H263);
++
++#ifdef USE_AVCTX3
++                      if (! (*codec) || (avcodec_open2(ctx, *codec, NULL)<0)) 
return GF_NON_COMPLIANT_BITSTREAM;
++#else
+                       if (! (*codec) || (avcodec_open(ctx, *codec)<0)) return 
GF_NON_COMPLIANT_BITSTREAM;
++#endif
++
+ #if USE_AVCODEC2
+                       if (avcodec_decode_video2(ctx, frame, &gotpic, &pkt) < 
0) {
+ #else
+@@ -765,7 +787,11 @@
+                               avcodec_close(ctx);
+                               *codec = avcodec_find_decoder(old_codec);
+                               assert(*codec);
++#ifdef USE_AVCTX3
++                              avcodec_open2(ctx, *codec, NULL);
++#else
+                               avcodec_open(ctx, *codec);
++#endif
+                               return GF_NON_COMPLIANT_BITSTREAM;
+                       }
+               }
+@@ -979,7 +1005,7 @@
+       else if (StreamType==GF_STREAM_VISUAL) {
  
+               /*fixme - we should use some priority rather than declare 
ffmpeg can't handle svc*/
+-              if (esd->decoderConfig->objectTypeIndication == 
GPAC_OTI_VIDEO_AVC) {
++              if (esd->decoderConfig->objectTypeIndication == 
GPAC_OTI_VIDEO_AVC){
+                       if (esd->decoderConfig->decoderSpecificInfo && 
esd->decoderConfig->decoderSpecificInfo->data) {
+                               Bool is_svc = 0;
+                               u32 i, count;
+@@ -1003,7 +1029,7 @@
+                               gf_odf_avc_cfg_del(cfg);
+                               return (is_svc || 
esd->decoderConfig->rvc_config || esd->decoderConfig->predefined_rvc_config) ? 
GF_CODEC_MAYBE_SUPPORTED : GF_CODEC_SUPPORTED;
+                       }
+-                      if (esd->decoderConfig->rvc_config || 
esd->decoderConfig->predefined_rvc_config) return GF_CODEC_MAYBE_SUPPORTED;
++                      if (esd->decoderConfig->rvc_config || 
esd->decoderConfig->predefined_rvc_config || esd->has_ref_base) return 
GF_CODEC_MAYBE_SUPPORTED;
+                       return GF_CODEC_SUPPORTED;
+               }
  
- /*FFMPEG decoder module */
+@@ -1011,7 +1037,8 @@
+               /*MPEG-4 v1 simple profile*/
+               case GPAC_OTI_VIDEO_MPEG4_PART2: codec_id = CODEC_ID_MPEG4; 
break;
+               /*H264 (not std OTI, just the way we use it internally)*/
+-              case GPAC_OTI_VIDEO_AVC: codec_id = CODEC_ID_H264; break;
++              case GPAC_OTI_VIDEO_AVC:
++                      codec_id = CODEC_ID_H264; break;
+               /*MPEG1 video*/
+               case GPAC_OTI_VIDEO_MPEG1:
+               /*MPEG2 video*/
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/gpac.git/commitdiff/3504b5e1cc8a8f79a2d29ebf00b5310cf2785fb2

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to