Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 477990 Details for
Bug 609716
=media-gfx/blender-2.72b-r4 fails to build with media-video/ffmpeg-3 - error: ‘avcodec_alloc_frame’ was not declared in this scope
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
blender-2.72b-ffmpeg3.patch
blender-2.72b-ffmpeg3.patch (text/plain), 17.71 KB, created by
Marco Genasci
on 2017-06-25 16:11:01 UTC
(
hide
)
Description:
blender-2.72b-ffmpeg3.patch
Filename:
MIME Type:
Creator:
Marco Genasci
Created:
2017-06-25 16:11:01 UTC
Size:
17.71 KB
patch
obsolete
>diff -Naur blender-2.72b.orig/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp blender-2.72b/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp >--- blender-2.72b.orig/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp 2017-06-25 17:36:31.465052736 +0200 >+++ blender-2.72b/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp 2017-06-25 17:37:23.433053898 +0200 >@@ -58,9 +58,9 @@ > got_frame = 0; > > if(!frame) >- frame = avcodec_alloc_frame(); >+ frame = av_frame_alloc(); > else >- avcodec_get_frame_defaults(frame); >+ av_frame_unref(frame); > > read_length = avcodec_decode_audio4(m_codecCtx, frame, &got_frame, &packet); > if(read_length < 0) >diff -Naur blender-2.72b.orig/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp blender-2.72b/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp >--- blender-2.72b.orig/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp 2017-06-25 17:36:31.465052736 +0200 >+++ blender-2.72b/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp 2017-06-25 17:37:23.433053898 +0200 >@@ -202,7 +202,7 @@ > m_frame = av_frame_alloc(); > if (!m_frame) > AUD_THROW(AUD_ERROR_FFMPEG, codec_error); >- avcodec_get_frame_defaults(m_frame); >+ av_frame_unref(m_frame); > m_frame->linesize[0] = m_input_size * samplesize; > m_frame->format = m_codecCtx->sample_fmt; > m_frame->nb_samples = m_input_size; >@@ -224,7 +224,9 @@ > if(avio_open(&m_formatCtx->pb, filename.c_str(), AVIO_FLAG_WRITE)) > AUD_THROW(AUD_ERROR_FILE, file_error); > >- avformat_write_header(m_formatCtx, NULL); >+ if(avformat_write_header(m_formatCtx, NULL) < 0) { >+ throw; >+ } > } > catch(AUD_Exception&) > { >diff -Naur blender-2.72b.orig/intern/ffmpeg/ffmpeg_compat.h blender-2.72b/intern/ffmpeg/ffmpeg_compat.h >--- blender-2.72b.orig/intern/ffmpeg/ffmpeg_compat.h 2017-06-25 17:36:31.475052736 +0200 >+++ blender-2.72b/intern/ffmpeg/ffmpeg_compat.h 2017-06-25 17:38:19.723055158 +0200 >@@ -446,4 +446,230 @@ > # define FFMPEG_HAVE_DEPRECATED_FLAGS2 > #endif > >+/* Since FFmpeg-1.1 this constant have AV_ prefix. */ >+#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(52, 13, 100) >+# define AV_PIX_FMT_BGR32 PIX_FMT_BGR32 >+# define AV_PIX_FMT_YUV422P PIX_FMT_YUV422P >+# define AV_PIX_FMT_BGRA PIX_FMT_BGRA >+# define AV_PIX_FMT_ARGB PIX_FMT_ARGB >+# define AV_PIX_FMT_RGBA PIX_FMT_RGBA >+#endif >+ >+/* New API from FFmpeg-2.0 which soon became recommended one. */ >+#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(52, 38, 100) >+# define av_frame_alloc avcodec_alloc_frame >+# define av_frame_free avcodec_free_frame >+# define av_frame_unref avcodec_get_frame_defaults >+#endif >+ >+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 24, 102) >+ >+/* NOTE: The code in this block are from FFmpeg 2.6.4, which is licensed by LGPL. */ >+ >+#define MAX_NEG_CROP 1024 >+ >+#define times4(x) x, x, x, x >+#define times256(x) times4(times4(times4(times4(times4(x))))) >+ >+static const uint8_t ff_compat_crop_tab[256 + 2 * MAX_NEG_CROP] = { >+times256(0x00), >+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, >+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, >+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, >+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, >+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, >+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, >+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, >+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, >+0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, >+0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, >+0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, >+0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, >+0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, >+0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, >+0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, >+0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, >+times256(0xFF) >+}; >+ >+#undef times4 >+#undef times256 >+ >+/* filter parameters: [-1 4 2 4 -1] // 8 */ >+FFMPEG_INLINE >+void deinterlace_line(uint8_t *dst, >+ const uint8_t *lum_m4, const uint8_t *lum_m3, >+ const uint8_t *lum_m2, const uint8_t *lum_m1, >+ const uint8_t *lum, >+ int size) >+{ >+ const uint8_t *cm = ff_compat_crop_tab + MAX_NEG_CROP; >+ int sum; >+ >+ for(;size > 0;size--) { >+ sum = -lum_m4[0]; >+ sum += lum_m3[0] << 2; >+ sum += lum_m2[0] << 1; >+ sum += lum_m1[0] << 2; >+ sum += -lum[0]; >+ dst[0] = cm[(sum + 4) >> 3]; >+ lum_m4++; >+ lum_m3++; >+ lum_m2++; >+ lum_m1++; >+ lum++; >+ dst++; >+ } >+} >+ >+FFMPEG_INLINE >+void deinterlace_line_inplace(uint8_t *lum_m4, uint8_t *lum_m3, >+ uint8_t *lum_m2, uint8_t *lum_m1, >+ uint8_t *lum, int size) >+{ >+ const uint8_t *cm = ff_compat_crop_tab + MAX_NEG_CROP; >+ int sum; >+ >+ for(;size > 0;size--) { >+ sum = -lum_m4[0]; >+ sum += lum_m3[0] << 2; >+ sum += lum_m2[0] << 1; >+ lum_m4[0]=lum_m2[0]; >+ sum += lum_m1[0] << 2; >+ sum += -lum[0]; >+ lum_m2[0] = cm[(sum + 4) >> 3]; >+ lum_m4++; >+ lum_m3++; >+ lum_m2++; >+ lum_m1++; >+ lum++; >+ } >+} >+ >+/* deinterlacing : 2 temporal taps, 3 spatial taps linear filter. The >+ top field is copied as is, but the bottom field is deinterlaced >+ against the top field. */ >+FFMPEG_INLINE >+void deinterlace_bottom_field(uint8_t *dst, int dst_wrap, >+ const uint8_t *src1, int src_wrap, >+ int width, int height) >+{ >+ const uint8_t *src_m2, *src_m1, *src_0, *src_p1, *src_p2; >+ int y; >+ >+ src_m2 = src1; >+ src_m1 = src1; >+ src_0=&src_m1[src_wrap]; >+ src_p1=&src_0[src_wrap]; >+ src_p2=&src_p1[src_wrap]; >+ for(y=0;y<(height-2);y+=2) { >+ memcpy(dst,src_m1,width); >+ dst += dst_wrap; >+ deinterlace_line(dst,src_m2,src_m1,src_0,src_p1,src_p2,width); >+ src_m2 = src_0; >+ src_m1 = src_p1; >+ src_0 = src_p2; >+ src_p1 += 2*src_wrap; >+ src_p2 += 2*src_wrap; >+ dst += dst_wrap; >+ } >+ memcpy(dst,src_m1,width); >+ dst += dst_wrap; >+ /* do last line */ >+ deinterlace_line(dst,src_m2,src_m1,src_0,src_0,src_0,width); >+} >+ >+FFMPEG_INLINE >+int deinterlace_bottom_field_inplace(uint8_t *src1, int src_wrap, >+ int width, int height) >+{ >+ uint8_t *src_m1, *src_0, *src_p1, *src_p2; >+ int y; >+ uint8_t *buf = (uint8_t *)av_malloc(width); >+ if (!buf) >+ return AVERROR(ENOMEM); >+ >+ src_m1 = src1; >+ memcpy(buf,src_m1,width); >+ src_0=&src_m1[src_wrap]; >+ src_p1=&src_0[src_wrap]; >+ src_p2=&src_p1[src_wrap]; >+ for(y=0;y<(height-2);y+=2) { >+ deinterlace_line_inplace(buf,src_m1,src_0,src_p1,src_p2,width); >+ src_m1 = src_p1; >+ src_0 = src_p2; >+ src_p1 += 2*src_wrap; >+ src_p2 += 2*src_wrap; >+ } >+ /* do last line */ >+ deinterlace_line_inplace(buf,src_m1,src_0,src_0,src_0,width); >+ av_free(buf); >+ return 0; >+} >+ >+#ifdef __GNUC__ >+# pragma GCC diagnostic push >+# pragma GCC diagnostic ignored "-Wdeprecated-declarations" >+#endif >+ >+FFMPEG_INLINE >+int avpicture_deinterlace(AVPicture *dst, const AVPicture *src, >+ enum AVPixelFormat pix_fmt, int width, int height) >+{ >+ int i, ret; >+ >+ if (pix_fmt != AV_PIX_FMT_YUV420P && >+ pix_fmt != AV_PIX_FMT_YUVJ420P && >+ pix_fmt != AV_PIX_FMT_YUV422P && >+ pix_fmt != AV_PIX_FMT_YUVJ422P && >+ pix_fmt != AV_PIX_FMT_YUV444P && >+ pix_fmt != AV_PIX_FMT_YUV411P && >+ pix_fmt != AV_PIX_FMT_GRAY8) >+ return -1; >+ if ((width & 3) != 0 || (height & 3) != 0) >+ return -1; >+ >+ for(i=0;i<3;i++) { >+ if (i == 1) { >+ switch(pix_fmt) { >+ case AV_PIX_FMT_YUVJ420P: >+ case AV_PIX_FMT_YUV420P: >+ width >>= 1; >+ height >>= 1; >+ break; >+ case AV_PIX_FMT_YUV422P: >+ case AV_PIX_FMT_YUVJ422P: >+ width >>= 1; >+ break; >+ case AV_PIX_FMT_YUV411P: >+ width >>= 2; >+ break; >+ default: >+ break; >+ } >+ if (pix_fmt == AV_PIX_FMT_GRAY8) { >+ break; >+ } >+ } >+ if (src == dst) { >+ ret = deinterlace_bottom_field_inplace(dst->data[i], >+ dst->linesize[i], >+ width, height); >+ if (ret < 0) >+ return ret; >+ } else { >+ deinterlace_bottom_field(dst->data[i],dst->linesize[i], >+ src->data[i], src->linesize[i], >+ width, height); >+ } >+ } >+ return 0; >+} >+ >+#ifdef __GNUC__ >+# pragma GCC diagnostic pop >+#endif >+ >+#endif >+ > #endif >diff -Naur blender-2.72b.orig/source/blender/blenkernel/intern/writeffmpeg.c blender-2.72b/source/blender/blenkernel/intern/writeffmpeg.c >--- blender-2.72b.orig/source/blender/blenkernel/intern/writeffmpeg.c 2017-06-25 17:36:31.559052738 +0200 >+++ blender-2.72b/source/blender/blenkernel/intern/writeffmpeg.c 2017-06-25 17:37:23.435053899 +0200 >@@ -134,8 +134,8 @@ > audio_time += (double) audio_input_samples / (double) c->sample_rate; > > #ifdef FFMPEG_HAVE_ENCODE_AUDIO2 >- frame = avcodec_alloc_frame(); >- avcodec_get_frame_defaults(frame); >+ frame = av_frame_alloc(); >+ av_frame_unref(frame); > frame->pts = audio_time / av_q2d(c->time_base); > frame->nb_samples = audio_input_samples; > frame->format = c->sample_fmt; >@@ -168,7 +168,7 @@ > } > > if (!got_output) { >- avcodec_free_frame(&frame); >+ av_frame_free(&frame); > return 0; > } > #else >@@ -198,7 +198,7 @@ > if (av_interleaved_write_frame(outfile, &pkt) != 0) { > fprintf(stderr, "Error writing audio packet!\n"); > if (frame) >- avcodec_free_frame(&frame); >+ av_frame_free(&frame); > return -1; > } > >@@ -206,7 +206,7 @@ > } > > if (frame) >- avcodec_free_frame(&frame); >+ av_frame_free(&frame); > > return 0; > } >@@ -220,7 +220,7 @@ > int size; > > /* allocate space for the struct */ >- f = avcodec_alloc_frame(); >+ f = av_frame_alloc(); > if (!f) return NULL; > size = avpicture_get_size(pix_fmt, width, height); > /* allocate the actual picture buffer */ >@@ -359,8 +359,8 @@ > int height = c->height; > AVFrame *rgb_frame; > >- if (c->pix_fmt != PIX_FMT_BGR32) { >- rgb_frame = alloc_picture(PIX_FMT_BGR32, width, height); >+ if (c->pix_fmt != AV_PIX_FMT_BGR32) { >+ rgb_frame = alloc_picture(AV_PIX_FMT_BGR32, width, height); > if (!rgb_frame) { > BKE_report(reports, RPT_ERROR, "Could not allocate temporary frame"); > return NULL; >@@ -410,14 +410,14 @@ > } > } > >- if (c->pix_fmt != PIX_FMT_BGR32) { >+ if (c->pix_fmt != AV_PIX_FMT_BGR32) { > sws_scale(img_convert_ctx, (const uint8_t *const *) rgb_frame->data, > rgb_frame->linesize, 0, c->height, > current_frame->data, current_frame->linesize); > delete_picture(rgb_frame); > } > >- current_frame->format = PIX_FMT_BGR32; >+ current_frame->format = AV_PIX_FMT_BGR32; > current_frame->width = width; > current_frame->height = height; > >@@ -585,12 +585,12 @@ > } > else { > /* makes HuffYUV happy ... */ >- c->pix_fmt = PIX_FMT_YUV422P; >+ c->pix_fmt = AV_PIX_FMT_YUV422P; > } > > if (ffmpeg_type == FFMPEG_XVID) { > /* arghhhh ... */ >- c->pix_fmt = PIX_FMT_YUV420P; >+ c->pix_fmt = AV_PIX_FMT_YUV420P; > c->codec_tag = (('D' << 24) + ('I' << 16) + ('V' << 8) + 'X'); > } > >@@ -603,22 +603,22 @@ > /* Keep lossless encodes in the RGB domain. */ > if (codec_id == AV_CODEC_ID_HUFFYUV) { > /* HUFFYUV was PIX_FMT_YUV422P before */ >- c->pix_fmt = PIX_FMT_RGB32; >+ c->pix_fmt = AV_PIX_FMT_RGB32; > } > > if (codec_id == AV_CODEC_ID_FFV1) { >- c->pix_fmt = PIX_FMT_RGB32; >+ c->pix_fmt = AV_PIX_FMT_RGB32; > } > > if (codec_id == AV_CODEC_ID_QTRLE) { > if (rd->im_format.planes == R_IMF_PLANES_RGBA) { >- c->pix_fmt = PIX_FMT_ARGB; >+ c->pix_fmt = AV_PIX_FMT_ARGB; > } > } > > if (codec_id == AV_CODEC_ID_PNG) { > if (rd->im_format.planes == R_IMF_PLANES_RGBA) { >- c->pix_fmt = PIX_FMT_RGBA; >+ c->pix_fmt = AV_PIX_FMT_RGBA; > } > } > >@@ -656,7 +656,7 @@ > > current_frame = alloc_picture(c->pix_fmt, c->width, c->height); > >- img_convert_ctx = sws_getContext(c->width, c->height, PIX_FMT_BGR32, c->width, c->height, c->pix_fmt, SWS_BICUBIC, >+ img_convert_ctx = sws_getContext(c->width, c->height, AV_PIX_FMT_BGR32, c->width, c->height, c->pix_fmt, SWS_BICUBIC, > NULL, NULL, NULL); > return st; > } >diff -Naur blender-2.72b.orig/source/blender/imbuf/intern/anim_movie.c blender-2.72b/source/blender/imbuf/intern/anim_movie.c >--- blender-2.72b.orig/source/blender/imbuf/intern/anim_movie.c 2017-06-25 17:36:31.583052739 +0200 >+++ blender-2.72b/source/blender/imbuf/intern/anim_movie.c 2017-06-25 17:37:23.436053899 +0200 >@@ -565,12 +565,12 @@ > anim->next_pts = -1; > anim->next_packet.stream_index = -1; > >- anim->pFrame = avcodec_alloc_frame(); >+ anim->pFrame = av_frame_alloc(); > anim->pFrameComplete = false; >- anim->pFrameDeinterlaced = avcodec_alloc_frame(); >- anim->pFrameRGB = avcodec_alloc_frame(); >+ anim->pFrameDeinterlaced = av_frame_alloc(); >+ anim->pFrameRGB = av_frame_alloc(); > >- if (avpicture_get_size(PIX_FMT_RGBA, anim->x, anim->y) != >+ if (avpicture_get_size(AV_PIX_FMT_RGBA, anim->x, anim->y) != > anim->x * anim->y * 4) > { > fprintf(stderr, >@@ -609,7 +609,7 @@ > anim->pCodecCtx->pix_fmt, > anim->x, > anim->y, >- PIX_FMT_RGBA, >+ AV_PIX_FMT_RGBA, > SWS_FAST_BILINEAR | SWS_PRINT_INFO | SWS_FULL_CHR_H_INT, > NULL, NULL, NULL); > >@@ -698,7 +698,7 @@ > > avpicture_fill((AVPicture *) anim->pFrameRGB, > (unsigned char *) ibuf->rect, >- PIX_FMT_RGBA, anim->x, anim->y); >+ AV_PIX_FMT_RGBA, anim->x, anim->y); > > if (ENDIAN_ORDER == B_ENDIAN) { > int *dstStride = anim->pFrameRGB->linesize; >diff -Naur blender-2.72b.orig/source/blender/imbuf/intern/indexer.c blender-2.72b/source/blender/imbuf/intern/indexer.c >--- blender-2.72b.orig/source/blender/imbuf/intern/indexer.c 2017-06-25 17:36:31.584052739 +0200 >+++ blender-2.72b/source/blender/imbuf/intern/indexer.c 2017-06-25 17:37:23.436053899 +0200 >@@ -515,7 +515,7 @@ > rv->c->pix_fmt = rv->codec->pix_fmts[0]; > } > else { >- rv->c->pix_fmt = PIX_FMT_YUVJ420P; >+ rv->c->pix_fmt = AV_PIX_FMT_YUVJ420P; > } > > rv->c->sample_aspect_ratio = >@@ -550,7 +550,7 @@ > if (st->codec->width != width || st->codec->height != height || > st->codec->pix_fmt != rv->c->pix_fmt) > { >- rv->frame = avcodec_alloc_frame(); >+ rv->frame = av_frame_alloc(); > avpicture_fill((AVPicture *) rv->frame, > MEM_mallocN(avpicture_get_size( > rv->c->pix_fmt, >@@ -901,7 +901,7 @@ > > memset(&next_packet, 0, sizeof(AVPacket)); > >- in_frame = avcodec_alloc_frame(); >+ in_frame = av_frame_alloc(); > > stream_size = avio_size(context->iFormatCtx->pb); > >diff -Naur blender-2.72b.orig/source/gameengine/VideoTexture/VideoFFmpeg.cpp blender-2.72b/source/gameengine/VideoTexture/VideoFFmpeg.cpp >--- blender-2.72b.orig/source/gameengine/VideoTexture/VideoFFmpeg.cpp 2017-06-25 17:36:31.598052739 +0200 >+++ blender-2.72b/source/gameengine/VideoTexture/VideoFFmpeg.cpp 2017-06-25 17:37:23.436053899 +0200 >@@ -133,23 +133,23 @@ > AVFrame *VideoFFmpeg::allocFrameRGB() > { > AVFrame *frame; >- frame = avcodec_alloc_frame(); >+ frame = av_frame_alloc(); > if (m_format == RGBA32) > { > avpicture_fill((AVPicture*)frame, > (uint8_t*)MEM_callocN(avpicture_get_size( >- PIX_FMT_RGBA, >+ AV_PIX_FMT_RGBA, > m_codecCtx->width, m_codecCtx->height), > "ffmpeg rgba"), >- PIX_FMT_RGBA, m_codecCtx->width, m_codecCtx->height); >+ AV_PIX_FMT_RGBA, m_codecCtx->width, m_codecCtx->height); > } else > { > avpicture_fill((AVPicture*)frame, > (uint8_t*)MEM_callocN(avpicture_get_size( >- PIX_FMT_RGB24, >+ AV_PIX_FMT_RGB24, > m_codecCtx->width, m_codecCtx->height), > "ffmpeg rgb"), >- PIX_FMT_RGB24, m_codecCtx->width, m_codecCtx->height); >+ AV_PIX_FMT_RGB24, m_codecCtx->width, m_codecCtx->height); > } > return frame; > } >@@ -229,8 +229,8 @@ > m_codecCtx = codecCtx; > m_formatCtx = formatCtx; > m_videoStream = videoStream; >- m_frame = avcodec_alloc_frame(); >- m_frameDeinterlaced = avcodec_alloc_frame(); >+ m_frame = av_frame_alloc(); >+ m_frameDeinterlaced = av_frame_alloc(); > > // allocate buffer if deinterlacing is required > avpicture_fill((AVPicture*)m_frameDeinterlaced, >@@ -241,10 +241,10 @@ > m_codecCtx->pix_fmt, m_codecCtx->width, m_codecCtx->height); > > // check if the pixel format supports Alpha >- if (m_codecCtx->pix_fmt == PIX_FMT_RGB32 || >- m_codecCtx->pix_fmt == PIX_FMT_BGR32 || >- m_codecCtx->pix_fmt == PIX_FMT_RGB32_1 || >- m_codecCtx->pix_fmt == PIX_FMT_BGR32_1) >+ if (m_codecCtx->pix_fmt == AV_PIX_FMT_RGB32 || >+ m_codecCtx->pix_fmt == AV_PIX_FMT_BGR32 || >+ m_codecCtx->pix_fmt == AV_PIX_FMT_RGB32_1 || >+ m_codecCtx->pix_fmt == AV_PIX_FMT_BGR32_1) > { > // allocate buffer to store final decoded frame > m_format = RGBA32; >@@ -255,7 +255,7 @@ > m_codecCtx->pix_fmt, > m_codecCtx->width, > m_codecCtx->height, >- PIX_FMT_RGBA, >+ AV_PIX_FMT_RGBA, > SWS_FAST_BILINEAR, > NULL, NULL, NULL); > } else >@@ -269,7 +269,7 @@ > m_codecCtx->pix_fmt, > m_codecCtx->width, > m_codecCtx->height, >- PIX_FMT_RGB24, >+ AV_PIX_FMT_RGB24, > SWS_FAST_BILINEAR, > NULL, NULL, NULL); > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 609716
:
464218
| 477990