]> git.pld-linux.org Git - packages/gpac.git/commitdiff
- rel 11; libpng fix auto/th/gpac-0_4_5-11
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Fri, 10 Feb 2012 20:06:11 +0000 (20:06 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    240_all_libpng15.patch -> 1.1
    250_all_openjpeg14.patch -> 1.1
    260_all_ffmpeg_bump.patch -> 1.1
    270_all_ffmpeg_trunk.patch -> 1.1
    gpac.spec -> 1.48

240_all_libpng15.patch [new file with mode: 0644]
250_all_openjpeg14.patch [new file with mode: 0644]
260_all_ffmpeg_bump.patch [new file with mode: 0644]
270_all_ffmpeg_trunk.patch [new file with mode: 0644]
gpac.spec

diff --git a/240_all_libpng15.patch b/240_all_libpng15.patch
new file mode 100644 (file)
index 0000000..4991f8f
--- /dev/null
@@ -0,0 +1,118 @@
+Index: gpac/src/media_tools/img.c
+===================================================================
+--- gpac.orig/src/media_tools/img.c
++++ gpac/src/media_tools/img.c
+@@ -388,7 +388,7 @@ typedef struct
+ static void user_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
+ {
+-      GFpng *ctx = (GFpng*)png_ptr->io_ptr;
++      GFpng *ctx = (GFpng*)png_get_io_ptr(png_ptr);
+       if (ctx->pos + length > ctx->size) {
+               png_error(png_ptr, "Read Error");
+@@ -399,7 +399,7 @@ static void user_read_data(png_structp p
+ }
+ static void user_error_fn(png_structp png_ptr,png_const_charp error_msg)
+ {
+-      longjmp(png_ptr->jmpbuf, 1);
++      longjmp(png_jmpbuf(png_ptr), 1);
+ }
+ GF_EXPORT
+@@ -409,7 +409,11 @@ GF_Err gf_img_png_dec(char *png, u32 png
+       png_struct *png_ptr;
+       png_info *info_ptr;
+       png_byte **rows;
+-      u32 i, stride, bpp;
++      u32 i, stride;
++      int num_trans;
++      png_bytep trans_alpha;
++      png_color_16p trans_color;
++      int bit_depth, color_type;
+       if ((png_size<8) || png_sig_cmp(png, 0, 8) ) return GF_NON_COMPLIANT_BITSTREAM;
+@@ -424,7 +428,7 @@ GF_Err gf_img_png_dec(char *png, u32 png
+               png_destroy_read_struct(&png_ptr, (png_infopp)NULL, (png_infopp)NULL);
+               return GF_IO_ERR;
+       }
+-      if (setjmp(png_ptr->jmpbuf)) {
++      if (setjmp(png_jmpbuf(png_ptr))) {
+               png_destroy_info_struct(png_ptr,(png_infopp) & info_ptr);
+               png_destroy_read_struct(&png_ptr, (png_infopp)NULL, (png_infopp)NULL);
+               return GF_IO_ERR;
+@@ -434,31 +438,31 @@ GF_Err gf_img_png_dec(char *png, u32 png
+       png_read_info(png_ptr, info_ptr);
++      png_get_IHDR(png_ptr,info_ptr,width,height,&bit_depth,&color_type,NULL,NULL,NULL);
+       /*unpaletize*/
+-      if (info_ptr->color_type==PNG_COLOR_TYPE_PALETTE) {
++      if (color_type==PNG_COLOR_TYPE_PALETTE) {
+               png_set_expand(png_ptr);
+               png_read_update_info(png_ptr, info_ptr);
+       }
+-      if (info_ptr->num_trans) {
++      png_get_tRNS(png_ptr,info_ptr,&trans_alpha,&num_trans,&trans_color);
++      if (num_trans) {
+               png_set_tRNS_to_alpha(png_ptr);
+               png_read_update_info(png_ptr, info_ptr);
+       }
+-      bpp = info_ptr->pixel_depth / 8;
+-      *width = info_ptr->width;
+-      *height = info_ptr->height;
++      png_get_IHDR(png_ptr,info_ptr,width,height,&bit_depth,&color_type,NULL,NULL,NULL);
+-      switch (info_ptr->pixel_depth) {
+-      case 8:
++      switch (color_type) {
++      case PNG_COLOR_TYPE_GRAY:
+               *pixel_format = GF_PIXEL_GREYSCALE;
+               break;
+-      case 16:
++      case PNG_COLOR_TYPE_GRAY_ALPHA:
+               *pixel_format = GF_PIXEL_ALPHAGREY;
+               break;
+-      case 24:
++      case PNG_COLOR_TYPE_RGB:
+               *pixel_format = GF_PIXEL_RGB_24;
+               break;
+-      case 32:
++      case PNG_COLOR_TYPE_RGB_ALPHA:
+               *pixel_format = GF_PIXEL_RGBA;
+               break;
+       default:
+@@ -469,18 +473,17 @@ GF_Err gf_img_png_dec(char *png, u32 png
+       }
+       /*new cfg, reset*/
+-      if (*dst_size != info_ptr->width * info_ptr->height * bpp) {
+-              *dst_size  = info_ptr->width * info_ptr->height * bpp;
++      if (*dst_size != png_get_rowbytes(png_ptr, info_ptr) * png_get_image_height(png_ptr,info_ptr)) {
++              *dst_size  = png_get_rowbytes(png_ptr, info_ptr) * png_get_image_height(png_ptr,info_ptr);
+               png_destroy_info_struct(png_ptr,(png_infopp) & info_ptr);
+               png_destroy_read_struct(&png_ptr, (png_infopp)NULL, (png_infopp)NULL);
+               return GF_BUFFER_TOO_SMALL;
+       }
+-      *dst_size  = info_ptr->width * info_ptr->height * bpp;
+       /*read*/
+       stride = png_get_rowbytes(png_ptr, info_ptr);
+-      rows = (png_bytepp) malloc(sizeof(png_bytep) * info_ptr->height);
+-      for (i=0; i<info_ptr->height; i++) {
++      rows = (png_bytepp) malloc(sizeof(png_bytep) * png_get_image_height(png_ptr,info_ptr));
++      for (i=0; i<png_get_image_height(png_ptr,info_ptr); i++) {
+               rows[i] = dst + i*stride;
+       }
+       png_read_image(png_ptr, rows);
+@@ -495,7 +498,7 @@ GF_Err gf_img_png_dec(char *png, u32 png
+ void my_png_write(png_structp png, png_bytep data, png_size_t size)
+ {
+-      GFpng *p = (GFpng *)png->io_ptr;
++      GFpng *p = (GFpng *)png_get_io_ptr(png);
+       memcpy(p->buffer+p->pos, data, sizeof(char)*size);
+       p->pos += size;
+ }
diff --git a/250_all_openjpeg14.patch b/250_all_openjpeg14.patch
new file mode 100644 (file)
index 0000000..68a625e
--- /dev/null
@@ -0,0 +1,23 @@
+https://bugs.gentoo.org/show_bug.cgi?id=361359
+
+Index: gpac/modules/img_in/jp2_dec.c
+===================================================================
+--- gpac.orig/modules/img_in/jp2_dec.c
++++ gpac/modules/img_in/jp2_dec.c
+@@ -340,9 +340,16 @@ static GF_Err JP2_ProcessData(GF_MediaDe
+       return GF_OK;
+ }
++char opj_version_buffer[500];
++
+ static const char *JP2_GetCodecName(GF_BaseDecoder *dec)
+ {
++#ifndef OPENJPEG_VERSION
++      snprintf(opj_version_buffer, sizeof(opj_version_buffer), "OpenJPEG %s", opj_version());
++      return opj_version_buffer;
++#else
+       return "OpenJPEG "OPENJPEG_VERSION ;
++#endif
+ }
diff --git a/260_all_ffmpeg_bump.patch b/260_all_ffmpeg_bump.patch
new file mode 100644 (file)
index 0000000..e8a82c3
--- /dev/null
@@ -0,0 +1,134 @@
+Index: gpac/modules/ffmpeg_in/ffmpeg_decode.c
+===================================================================
+--- gpac.orig/modules/ffmpeg_in/ffmpeg_decode.c
++++ gpac/modules/ffmpeg_in/ffmpeg_decode.c
+@@ -111,7 +111,7 @@ static GF_Err FFDEC_AttachStream(GF_Base
+               bs = gf_bs_new(esd->decoderConfig->decoderSpecificInfo->data, esd->decoderConfig->decoderSpecificInfo->dataLength, GF_BITSTREAM_READ);
+               codec_id = gf_bs_read_u32(bs);
+               if (ffd->st==GF_STREAM_AUDIO) {
+-                      ffd->ctx->codec_type = CODEC_TYPE_AUDIO;
++                      ffd->ctx->codec_type = AVMEDIA_TYPE_AUDIO;
+                       ffd->ctx->sample_rate = gf_bs_read_u32(bs);
+                       ffd->ctx->channels = gf_bs_read_u16(bs);
+                       ffd->ctx->frame_size = gf_bs_read_u16(bs);
+@@ -121,7 +121,7 @@ static GF_Err FFDEC_AttachStream(GF_Base
+                       /*ffmpeg specific*/
+                       ffd->ctx->block_align = gf_bs_read_u16(bs);
+               } else if (ffd->st==GF_STREAM_VISUAL) {
+-                      ffd->ctx->codec_type = CODEC_TYPE_VIDEO;
++                      ffd->ctx->codec_type = AVMEDIA_TYPE_VIDEO;
+                       ffd->ctx->width = gf_bs_read_u16(bs);
+                       ffd->ctx->height = gf_bs_read_u16(bs);
+               }
+@@ -138,7 +138,7 @@ static GF_Err FFDEC_AttachStream(GF_Base
+               bs = gf_bs_new(esd->decoderConfig->decoderSpecificInfo->data, esd->decoderConfig->decoderSpecificInfo->dataLength, GF_BITSTREAM_READ);
+               codec_id = gf_bs_read_u32(bs);
+               if (ffd->st==GF_STREAM_AUDIO) {
+-                      ffd->ctx->codec_type = CODEC_TYPE_AUDIO;
++                      ffd->ctx->codec_type = AVMEDIA_TYPE_AUDIO;
+                       ffd->ctx->sample_rate = gf_bs_read_u32(bs);
+                       ffd->ctx->channels = gf_bs_read_u16(bs);
+                       ffd->ctx->frame_size = gf_bs_read_u16(bs);
+@@ -151,7 +151,7 @@ static GF_Err FFDEC_AttachStream(GF_Base
+                         ffd->ctx->frame_size = 160;
+                       }
+               } else if (ffd->st==GF_STREAM_VISUAL) {
+-                      ffd->ctx->codec_type = CODEC_TYPE_VIDEO;
++                      ffd->ctx->codec_type = AVMEDIA_TYPE_VIDEO;
+                       ffd->ctx->width = gf_bs_read_u16(bs);
+                       ffd->ctx->height = gf_bs_read_u16(bs);
+               }
+@@ -163,7 +163,7 @@ static GF_Err FFDEC_AttachStream(GF_Base
+       else {
+               u32 codec_id = 0;
+               if (ffd->st==GF_STREAM_VISUAL) {
+-                      ffd->ctx->codec_type = CODEC_TYPE_VIDEO;
++                      ffd->ctx->codec_type = AVMEDIA_TYPE_VIDEO;
+                       switch (ffd->oti) {
+                       case 0x20:
+                               codec_id = CODEC_ID_MPEG4;
+@@ -190,7 +190,7 @@ static GF_Err FFDEC_AttachStream(GF_Base
+                               break;
+                       }
+               } else if (ffd->st==GF_STREAM_AUDIO) {
+-                      ffd->ctx->codec_type = CODEC_TYPE_AUDIO;
++                      ffd->ctx->codec_type = AVMEDIA_TYPE_AUDIO;
+                       switch (ffd->oti) {
+                       case 0x69:
+                       case 0x6B:
+@@ -412,20 +412,20 @@ static GF_Err FFDEC_ProcessData(GF_Media
+       /*WARNING: this breaks H264 (and maybe others) decoding, disabled for now*/
+ #if 1
+-      if (!ffd->ctx->hurry_up) {
++      if (ffd->ctx->skip_frame=AVDISCARD_DEFAULT) {
+               switch (mmlevel) {
+               case GF_CODEC_LEVEL_SEEK:
+               case GF_CODEC_LEVEL_DROP:
+                       /*skip as much as possible*/
+-                      ffd->ctx->hurry_up = 5;
++                      ffd->ctx->skip_frame = AVDISCARD_ALL;
+                       break;
+               case GF_CODEC_LEVEL_VERY_LATE:
+               case GF_CODEC_LEVEL_LATE:
+                       /*skip B-frames*/
+-                      ffd->ctx->hurry_up = 1;
++                      ffd->ctx->skip_frame = AVDISCARD_BIDIR;
+                       break;
+               default:
+-                      ffd->ctx->hurry_up = 0;
++                      ffd->ctx->skip_frame = AVDISCARD_DEFAULT;
+                       break;
+               }
+       }
+@@ -452,7 +452,7 @@ redecode:
+               if (len<0) { ffd->frame_start = 0; return GF_NON_COMPLIANT_BITSTREAM; }
+               if (gotpic<0) { ffd->frame_start = 0; return GF_OK; }
+-              ffd->ctx->hurry_up = 0;
++              ffd->ctx->skip_frame = AVDISCARD_DEFAULT;
+               if (ffd->ctx->frame_size < gotpic) ffd->ctx->frame_size = gotpic;
+@@ -553,7 +553,7 @@ redecode:
+                               }
+                       }
+               }
+-              ffd->ctx->hurry_up = 0;
++              ffd->ctx->skip_frame = AVDISCARD_DEFAULT;
+               /*recompute outsize in case on-the-fly change*/
+               if ((w != ffd->ctx->width) || (h != ffd->ctx->height)) {
+                       outsize = ffd->ctx->width * ffd->ctx->height * 3;
+Index: gpac/modules/ffmpeg_in/ffmpeg_demux.c
+===================================================================
+--- gpac.orig/modules/ffmpeg_in/ffmpeg_demux.c
++++ gpac/modules/ffmpeg_in/ffmpeg_demux.c
+@@ -233,10 +233,10 @@ static Bool FFD_CanHandleURL(GF_InputSer
+     for(i = 0; i < ctx->nb_streams; i++) {
+         AVCodecContext *enc = ctx->streams[i]->codec;
+         switch(enc->codec_type) {
+-        case CODEC_TYPE_AUDIO:
++        case AVMEDIA_TYPE_AUDIO:
+             if (!has_audio) has_audio = 1;
+             break;
+-        case CODEC_TYPE_VIDEO:
++        case AVMEDIA_TYPE_VIDEO:
+             if (!has_video) has_video= 1;
+             break;
+         default:
+@@ -552,13 +552,13 @@ static GF_Err FFD_ConnectService(GF_Inpu
+     for (i = 0; i < ffd->ctx->nb_streams; i++) {
+         AVCodecContext *enc = ffd->ctx->streams[i]->codec;
+         switch(enc->codec_type) {
+-        case CODEC_TYPE_AUDIO:
++        case AVMEDIA_TYPE_AUDIO:
+             if ((ffd->audio_st<0) && (ffd->service_type!=1)) {
+                               ffd->audio_st = i;
+                               ffd->audio_tscale = ffd->ctx->streams[i]->time_base;
+                       }
+             break;
+-        case CODEC_TYPE_VIDEO:
++        case AVMEDIA_TYPE_VIDEO:
+             if ((ffd->video_st<0) && (ffd->service_type!=2)) {
+                               ffd->video_st = i;
+                               ffd->video_tscale = ffd->ctx->streams[i]->time_base;
diff --git a/270_all_ffmpeg_trunk.patch b/270_all_ffmpeg_trunk.patch
new file mode 100644 (file)
index 0000000..d6153e6
--- /dev/null
@@ -0,0 +1,19 @@
+Index: gpac/modules/ffmpeg_in/ffmpeg_demux.c
+===================================================================
+--- gpac.orig/modules/ffmpeg_in/ffmpeg_demux.c
++++ gpac/modules/ffmpeg_in/ffmpeg_demux.c
+@@ -531,10 +531,10 @@ static GF_Err FFD_ConnectService(GF_Inpu
+       switch (i) {
+       case 0: e = GF_OK; break;
+-      case AVERROR_IO: e = GF_URL_ERROR; goto err_exit;
+-      case AVERROR_INVALIDDATA: e = GF_NON_COMPLIANT_BITSTREAM; goto err_exit;
+-      case AVERROR_NOMEM: e = GF_OUT_OF_MEM; goto err_exit;
+-      case AVERROR_NOFMT: e = GF_NOT_SUPPORTED; goto err_exit;
++      case AVERROR(EIO): e = GF_URL_ERROR; goto err_exit;
++      case AVERROR(EINVAL): e = GF_NON_COMPLIANT_BITSTREAM; goto err_exit;
++      case AVERROR(ENOMEM): e = GF_OUT_OF_MEM; goto err_exit;
++      case AVERROR(EILSEQ): e = GF_NOT_SUPPORTED; goto err_exit;
+       default: e = GF_SERVICE_ERROR; goto err_exit;
+       }
index ac5d94f08d7c19e54fec99f4d07231b14a5ce2aa..c3f06c769a9af67f012cfe3604450da6723f457b 100644 (file)
--- a/gpac.spec
+++ b/gpac.spec
@@ -15,7 +15,7 @@ Summary:      GPAC - an implementation of the MPEG-4 Systems standard (ISO/IEC 14496-
 Summary(pl.UTF-8):     GPAC - implementacja standardu MPEG-4 Systems (ISO/IEC 14496-1)
 Name:          gpac
 Version:       0.4.5
-Release:       10
+Release:       11
 License:       LGPL v2+
 Group:         Applications/Multimedia
 Source0:       http://downloads.sourceforge.net/gpac/%{name}-%{version}.tar.gz
@@ -28,8 +28,11 @@ Patch4:              %{name}-amr.patch
 Patch5:                %{name}-ffmpeg.patch
 Patch6:                %{name}-install-is-not-clean.patch
 Patch7:                %{name}-flags.patch
-Patch8:                %{name}-ffmpeg-0.8.patch
-Patch9:                %{name}-idl_uuid.patch
+Patch8:                %{name}-idl_uuid.patch
+Patch9:                240_all_libpng15.patch
+Patch10:       250_all_openjpeg14.patch
+Patch11:       260_all_ffmpeg_bump.patch
+Patch12:       270_all_ffmpeg_trunk.patch
 URL:           http://gpac.sourceforge.net/
 BuildRequires: SDL-devel
 BuildRequires: a52dec-libs-devel
@@ -141,6 +144,9 @@ Wtyczka GPAC dla przeglądarek WWW zgodnych z Netscape.
 %patch7 -p1
 %patch8 -p1
 %patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
 
 %if %{with amr}
 sed -i -e 's/amr_\([nw]b\)_ft/amr\1/' modules/amr_float_dec/amr_float_dec.c
This page took 0.201898 seconds and 4 git commands to generate.