mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-03-19 00:21:40 +00:00
community/gpac to 0.7.1-4
This commit is contained in:
parent
fae9fd074d
commit
5df0589fa3
3 changed files with 51 additions and 443 deletions
|
@ -7,10 +7,10 @@
|
||||||
|
|
||||||
pkgname=gpac
|
pkgname=gpac
|
||||||
pkgver=0.7.1
|
pkgver=0.7.1
|
||||||
pkgrel=3
|
pkgrel=4
|
||||||
epoch=1
|
epoch=1
|
||||||
pkgdesc='A multimedia framework based on the MPEG-4 Systems standard'
|
pkgdesc='A multimedia framework based on the MPEG-4 Systems standard'
|
||||||
arch=('i686' 'x86_64')
|
arch=('x86_64')
|
||||||
url='https://gpac.wp.imt.fr/'
|
url='https://gpac.wp.imt.fr/'
|
||||||
license=('LGPL')
|
license=('LGPL')
|
||||||
depends=('ffmpeg' 'glu' 'libxv')
|
depends=('ffmpeg' 'glu' 'libxv')
|
||||||
|
@ -22,14 +22,18 @@ optdepends=('jack: for jack support'
|
||||||
'sdl2: for sdl support')
|
'sdl2: for sdl support')
|
||||||
provides=('libgpac.so')
|
provides=('libgpac.so')
|
||||||
options=('staticlibs' '!makeflags')
|
options=('staticlibs' '!makeflags')
|
||||||
source=("gpac-${pkgver}.tar.gz::https://github.com/gpac/gpac/archive/v${pkgver}.tar.gz" gpac-openssl-1.1.patch)
|
source=("gpac-${pkgver}.tar.gz::https://github.com/gpac/gpac/archive/v${pkgver}.tar.gz"
|
||||||
|
'gpac-openssl-1.1.patch'
|
||||||
|
'gpac-ffmpeg-4.0.patch')
|
||||||
sha256sums=('c7a18b9eea1264fee392e7222d16b180e0acdd6bb173ff6b8baadbf50b3b1d7f'
|
sha256sums=('c7a18b9eea1264fee392e7222d16b180e0acdd6bb173ff6b8baadbf50b3b1d7f'
|
||||||
'3a8b7b51192424df5aee3bf11a0207c9374aabcfba4db90522af2e3bbc37bbbe')
|
'3a8b7b51192424df5aee3bf11a0207c9374aabcfba4db90522af2e3bbc37bbbe'
|
||||||
|
'23e8555ae2d21a587d6a796acef7b96eff6ce01afd148eff5beb6370f830b316')
|
||||||
|
|
||||||
prepare() {
|
prepare() {
|
||||||
cd gpac-${pkgver}
|
cd gpac-${pkgver}
|
||||||
# fix build with openssl 1.1 (rpmfusion)
|
|
||||||
patch -p1 -i ../gpac-openssl-1.1.patch
|
patch -p1 -i ../gpac-openssl-1.1.patch
|
||||||
|
patch -p1 -i ../gpac-ffmpeg-4.0.patch
|
||||||
}
|
}
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
|
|
42
community/gpac/gpac-ffmpeg-4.0.patch
Normal file
42
community/gpac/gpac-ffmpeg-4.0.patch
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
diff -rupN gpac-0.7.1.orig/applications/dashcast/video_encoder.c gpac-0.7.1/applications/dashcast/video_encoder.c
|
||||||
|
--- gpac-0.7.1.orig/applications/dashcast/video_encoder.c 2018-04-26 09:19:52.938118328 +0200
|
||||||
|
+++ gpac-0.7.1/applications/dashcast/video_encoder.c 2018-04-26 09:20:03.165170164 +0200
|
||||||
|
@@ -144,7 +144,7 @@ int dc_video_encoder_open(VideoOutputFil
|
||||||
|
}
|
||||||
|
|
||||||
|
//the global header gives access to the extradata (SPS/PPS)
|
||||||
|
- video_output_file->codec_ctx->flags |= CODEC_FLAG_GLOBAL_HEADER;
|
||||||
|
+ video_output_file->codec_ctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
|
||||||
|
|
||||||
|
video_output_file->vstream_idx = 0;//video_stream->index;
|
||||||
|
|
||||||
|
diff -rupN gpac-0.7.1.orig/modules/ffmpeg_in/ffmpeg_decode.c gpac-0.7.1/modules/ffmpeg_in/ffmpeg_decode.c
|
||||||
|
--- gpac-0.7.1.orig/modules/ffmpeg_in/ffmpeg_decode.c 2018-04-26 09:19:53.034788555 +0200
|
||||||
|
+++ gpac-0.7.1/modules/ffmpeg_in/ffmpeg_decode.c 2018-04-26 09:30:09.739463486 +0200
|
||||||
|
@@ -49,7 +49,7 @@
|
||||||
|
static uint8_t * ffmpeg_realloc_buffer(uint8_t * oldBuffer, u32 size) {
|
||||||
|
uint8_t * buffer;
|
||||||
|
/* Size of buffer must be larger, see avcodec_decode_video2 documentation */
|
||||||
|
- u32 allocatedSz = sizeof( char ) * (FF_INPUT_BUFFER_PADDING_SIZE + size);
|
||||||
|
+ u32 allocatedSz = sizeof( char ) * (AV_INPUT_BUFFER_PADDING_SIZE + size);
|
||||||
|
if (oldBuffer)
|
||||||
|
gf_free(oldBuffer);
|
||||||
|
buffer = (uint8_t*)gf_malloc( allocatedSz );
|
||||||
|
@@ -577,7 +577,7 @@ static GF_Err FFDEC_GetCapabilities(GF_B
|
||||||
|
capability->cap.valueInt = 1;
|
||||||
|
return GF_OK;
|
||||||
|
case GF_CODEC_PADDING_BYTES:
|
||||||
|
- capability->cap.valueInt = FF_INPUT_BUFFER_PADDING_SIZE;
|
||||||
|
+ capability->cap.valueInt = AV_INPUT_BUFFER_PADDING_SIZE;
|
||||||
|
return GF_OK;
|
||||||
|
case GF_CODEC_REORDER:
|
||||||
|
capability->cap.valueInt = 1;
|
||||||
|
@@ -669,7 +669,7 @@ static GF_Err FFDEC_GetCapabilities(GF_B
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GF_CODEC_PADDING_BYTES:
|
||||||
|
- capability->cap.valueInt = FF_INPUT_BUFFER_PADDING_SIZE;
|
||||||
|
+ capability->cap.valueInt = AV_INPUT_BUFFER_PADDING_SIZE;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
capability->cap.valueInt = 0;
|
|
@ -1,438 +0,0 @@
|
||||||
Index: gpac-0.5.2/modules/ffmpeg_in/ffmpeg_decode.c
|
|
||||||
===================================================================
|
|
||||||
--- gpac-0.5.2.orig/modules/ffmpeg_in/ffmpeg_decode.c
|
|
||||||
+++ gpac-0.5.2/modules/ffmpeg_in/ffmpeg_decode.c
|
|
||||||
@@ -102,7 +102,7 @@ static void FFDEC_LoadDSI(FFDec *ffd, GF
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (codec->id) {
|
|
||||||
- case CODEC_ID_SVQ3:
|
|
||||||
+ case AV_CODEC_ID_SVQ3:
|
|
||||||
{
|
|
||||||
u32 at_type, size;
|
|
||||||
size = gf_bs_read_u32(bs);
|
|
||||||
@@ -240,10 +240,10 @@ static GF_Err FFDEC_AttachStream(GF_Base
|
|
||||||
(*ctx)->codec_type = AVMEDIA_TYPE_VIDEO;
|
|
||||||
switch (ffd->oti) {
|
|
||||||
case GPAC_OTI_VIDEO_MPEG4_PART2:
|
|
||||||
- codec_id = CODEC_ID_MPEG4;
|
|
||||||
+ codec_id = AV_CODEC_ID_MPEG4;
|
|
||||||
break;
|
|
||||||
case GPAC_OTI_VIDEO_AVC:
|
|
||||||
- codec_id = CODEC_ID_H264;
|
|
||||||
+ codec_id = AV_CODEC_ID_H264;
|
|
||||||
break;
|
|
||||||
#ifdef HAS_HEVC
|
|
||||||
case GPAC_OTI_VIDEO_HEVC:
|
|
||||||
@@ -257,14 +257,14 @@ static GF_Err FFDEC_AttachStream(GF_Base
|
|
||||||
case GPAC_OTI_VIDEO_MPEG2_SPATIAL:
|
|
||||||
case GPAC_OTI_VIDEO_MPEG2_HIGH:
|
|
||||||
case GPAC_OTI_VIDEO_MPEG2_422:
|
|
||||||
- codec_id = CODEC_ID_MPEG2VIDEO;
|
|
||||||
+ codec_id = AV_CODEC_ID_MPEG2VIDEO;
|
|
||||||
break;
|
|
||||||
case GPAC_OTI_IMAGE_JPEG:
|
|
||||||
- codec_id = CODEC_ID_MJPEG;
|
|
||||||
+ codec_id = AV_CODEC_ID_MJPEG;
|
|
||||||
ffd->is_image=1;
|
|
||||||
break;
|
|
||||||
case 0xFF:
|
|
||||||
- codec_id = CODEC_ID_SVQ3;
|
|
||||||
+ codec_id = AV_CODEC_ID_SVQ3;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else if (ffd->st==GF_STREAM_AUDIO) {
|
|
||||||
@@ -273,18 +273,18 @@ static GF_Err FFDEC_AttachStream(GF_Base
|
|
||||||
case GPAC_OTI_AUDIO_MPEG2_PART3:
|
|
||||||
case GPAC_OTI_AUDIO_MPEG1:
|
|
||||||
(*ctx)->frame_size = 1152;
|
|
||||||
- codec_id = CODEC_ID_MP2;
|
|
||||||
+ codec_id = AV_CODEC_ID_MP2;
|
|
||||||
break;
|
|
||||||
case GPAC_OTI_AUDIO_AC3:
|
|
||||||
- codec_id = CODEC_ID_AC3;
|
|
||||||
+ codec_id = AV_CODEC_ID_AC3;
|
|
||||||
break;
|
|
||||||
case GPAC_OTI_AUDIO_EAC3:
|
|
||||||
- codec_id = CODEC_ID_EAC3;
|
|
||||||
+ codec_id = AV_CODEC_ID_EAC3;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if ((ffd->st==GF_STREAM_ND_SUBPIC) && (ffd->oti==0xe0)) {
|
|
||||||
- codec_id = CODEC_ID_DVD_SUBTITLE;
|
|
||||||
+ codec_id = AV_CODEC_ID_DVD_SUBTITLE;
|
|
||||||
}
|
|
||||||
*codec = avcodec_find_decoder(codec_id);
|
|
||||||
}
|
|
||||||
@@ -375,8 +375,8 @@ static GF_Err FFDEC_AttachStream(GF_Base
|
|
||||||
#endif //HAS_HEVC
|
|
||||||
if (!ffd->output_cb_size) ffd->output_cb_size = 4;
|
|
||||||
|
|
||||||
- if (codec_id == CODEC_ID_RAWVIDEO) {
|
|
||||||
- (*ctx)->codec_id = CODEC_ID_RAWVIDEO;
|
|
||||||
+ if (codec_id == AV_CODEC_ID_RAWVIDEO) {
|
|
||||||
+ (*ctx)->codec_id = AV_CODEC_ID_RAWVIDEO;
|
|
||||||
(*ctx)->pix_fmt = ffd->raw_pix_fmt;
|
|
||||||
if ((*ctx)->extradata && strstr((char *) (*ctx)->extradata, "BottomUp")) ffd->flipped = 1;
|
|
||||||
} else {
|
|
||||||
@@ -388,7 +388,7 @@ static GF_Err FFDEC_AttachStream(GF_Base
|
|
||||||
}
|
|
||||||
/*setup audio streams*/
|
|
||||||
if (ffd->st==GF_STREAM_AUDIO) {
|
|
||||||
- if ((*codec)->id == CODEC_ID_MP2) {
|
|
||||||
+ if ((*codec)->id == AV_CODEC_ID_MP2) {
|
|
||||||
(*ctx)->frame_size = ((*ctx)->sample_rate > 24000) ? 1152 : 576;
|
|
||||||
}
|
|
||||||
/*may be 0 (cfg not known yet)*/
|
|
||||||
@@ -408,17 +408,17 @@ static GF_Err FFDEC_AttachStream(GF_Base
|
|
||||||
|
|
||||||
} else {
|
|
||||||
switch ((*codec)->id) {
|
|
||||||
- case CODEC_ID_MJPEG:
|
|
||||||
- case CODEC_ID_MJPEGB:
|
|
||||||
- case CODEC_ID_LJPEG:
|
|
||||||
+ case AV_CODEC_ID_MJPEG:
|
|
||||||
+ case AV_CODEC_ID_MJPEGB:
|
|
||||||
+ case AV_CODEC_ID_LJPEG:
|
|
||||||
#if (LIBAVCODEC_VERSION_INT > AV_VERSION_INT(51, 20, 0))
|
|
||||||
- case CODEC_ID_GIF:
|
|
||||||
+ case AV_CODEC_ID_GIF:
|
|
||||||
#endif
|
|
||||||
- case CODEC_ID_RAWVIDEO:
|
|
||||||
+ case AV_CODEC_ID_RAWVIDEO:
|
|
||||||
ffd->pix_fmt = GF_PIXEL_RGB_24;
|
|
||||||
break;
|
|
||||||
|
|
||||||
- case CODEC_ID_DVD_SUBTITLE:
|
|
||||||
+ case AV_CODEC_ID_DVD_SUBTITLE:
|
|
||||||
#if !defined(FF_API_AVFRAME_LAVC)
|
|
||||||
*frame = avcodec_alloc_frame();
|
|
||||||
#else
|
|
||||||
@@ -843,7 +843,7 @@ redecode:
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- if ( ctx->codec_id == CODEC_ID_RAWVIDEO) {
|
|
||||||
+ if ( ctx->codec_id == AV_CODEC_ID_RAWVIDEO) {
|
|
||||||
if (*outBufferLength != ffd->out_size) {
|
|
||||||
*outBufferLength = ffd->out_size;
|
|
||||||
return GF_BUFFER_TOO_SMALL;
|
|
||||||
@@ -852,7 +852,7 @@ redecode:
|
|
||||||
*outBufferLength = ffd->out_size;
|
|
||||||
assert(inBufferLength==ffd->out_size);
|
|
||||||
|
|
||||||
- if (ffd->raw_pix_fmt==PIX_FMT_BGR24) {
|
|
||||||
+ if (ffd->raw_pix_fmt==AV_PIX_FMT_BGR24) {
|
|
||||||
s32 i, j;
|
|
||||||
for (j=0; j<ctx->height; j++) {
|
|
||||||
u8 *src = (u8 *) inBuffer + j*3*ctx->width;
|
|
||||||
@@ -940,7 +940,7 @@ redecode:
|
|
||||||
/*OK we loose the DSI stored in the codec context, but H263 doesn't need any, and if we're
|
|
||||||
here this means the DSI was broken, so no big deal*/
|
|
||||||
avcodec_close(ctx);
|
|
||||||
- *codec = avcodec_find_decoder(CODEC_ID_H263);
|
|
||||||
+ *codec = avcodec_find_decoder(AV_CODEC_ID_H263);
|
|
||||||
|
|
||||||
#ifdef USE_AVCTX3
|
|
||||||
if (! (*codec) || (avcodec_open2(ctx, *codec, NULL)<0)) return GF_NON_COMPLIANT_BITSTREAM;
|
|
||||||
@@ -991,7 +991,7 @@ redecode:
|
|
||||||
|
|
||||||
stride = frame->linesize[0];
|
|
||||||
#ifndef NO_10bit
|
|
||||||
- if ((ctx->pix_fmt == PIX_FMT_YUV420P10LE) && ffd->output_as_8bit && (frame->linesize[0] >= 2*w) ) {
|
|
||||||
+ if ((ctx->pix_fmt == AV_PIX_FMT_YUV420P10LE) && ffd->output_as_8bit && (frame->linesize[0] >= 2*w) ) {
|
|
||||||
ffd->conv_to_8bit = 1;
|
|
||||||
stride=w;
|
|
||||||
}
|
|
||||||
@@ -1000,7 +1000,7 @@ redecode:
|
|
||||||
/*recompute outsize in case on-the-fly change*/
|
|
||||||
if ((w != ctx->width) || (h != ctx->height)
|
|
||||||
|| (ffd->direct_output && (stride != ffd->stride))
|
|
||||||
- || ((ffd->out_pix_fmt==GF_PIXEL_YV12) && (ctx->pix_fmt != PIX_FMT_YUV420P) && !ffd->output_as_8bit )
|
|
||||||
+ || ((ffd->out_pix_fmt==GF_PIXEL_YV12) && (ctx->pix_fmt != AV_PIX_FMT_YUV420P) && !ffd->output_as_8bit )
|
|
||||||
//need to realloc the conversion buffer
|
|
||||||
|| (ffd->conv_to_8bit && !ffd->conv_buffer && ffd->direct_output)
|
|
||||||
) {
|
|
||||||
@@ -1011,7 +1011,7 @@ redecode:
|
|
||||||
}
|
|
||||||
#ifndef NO_10bit
|
|
||||||
//this YUV format is handled natively in GPAC
|
|
||||||
- else if ((ctx->pix_fmt == PIX_FMT_YUV420P10LE) && !ffd->output_as_8bit) {
|
|
||||||
+ else if ((ctx->pix_fmt == AV_PIX_FMT_YUV420P10LE) && !ffd->output_as_8bit) {
|
|
||||||
ffd->stride = ffd->direct_output ? frame->linesize[0] : ctx->width*2;
|
|
||||||
outsize = ffd->stride * ctx->height * 3 / 2;
|
|
||||||
ffd->out_pix_fmt = GF_PIXEL_YV12_10;
|
|
||||||
@@ -1157,23 +1157,20 @@ redecode:
|
|
||||||
if (ffd->out_pix_fmt==GF_PIXEL_RGB_24) {
|
|
||||||
pict.data[0] = (uint8_t *)outBuffer;
|
|
||||||
pict.linesize[0] = 3*ctx->width;
|
|
||||||
- pix_out = PIX_FMT_RGB24;
|
|
||||||
+ pix_out = AV_PIX_FMT_RGB24;
|
|
||||||
} else {
|
|
||||||
pict.data[0] = (uint8_t *)outBuffer;
|
|
||||||
pict.data[1] = (uint8_t *)outBuffer + ffd->stride * ctx->height;
|
|
||||||
pict.data[2] = (uint8_t *)outBuffer + 5 * ffd->stride * ctx->height / 4;
|
|
||||||
pict.linesize[0] = ffd->stride;
|
|
||||||
pict.linesize[1] = pict.linesize[2] = ffd->stride/2;
|
|
||||||
- pix_out = PIX_FMT_YUV420P;
|
|
||||||
+ pix_out = AV_PIX_FMT_YUV420P;
|
|
||||||
#ifndef NO_10bit
|
|
||||||
//this YUV format is handled natively in GPAC
|
|
||||||
- if (ctx->pix_fmt==PIX_FMT_YUV420P10LE) {
|
|
||||||
- pix_out = PIX_FMT_YUV420P10LE;
|
|
||||||
+ if (ctx->pix_fmt==AV_PIX_FMT_YUV420P10LE) {
|
|
||||||
+ pix_out = AV_PIX_FMT_YUV420P10LE;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
- if (!mmlevel && frame->interlaced_frame) {
|
|
||||||
- avpicture_deinterlace((AVPicture *) frame, (AVPicture *) frame, ctx->pix_fmt, ctx->width, ctx->height);
|
|
||||||
- }
|
|
||||||
}
|
|
||||||
pict.data[3] = 0;
|
|
||||||
pict.linesize[3] = 0;
|
|
||||||
@@ -1263,13 +1260,13 @@ static u32 FFDEC_CanHandleStream(GF_Base
|
|
||||||
switch (ffd->oti) {
|
|
||||||
case GPAC_OTI_AUDIO_MPEG2_PART3:
|
|
||||||
case GPAC_OTI_AUDIO_MPEG1:
|
|
||||||
- codec_id = CODEC_ID_MP2;
|
|
||||||
+ codec_id = AV_CODEC_ID_MP2;
|
|
||||||
break;
|
|
||||||
case GPAC_OTI_AUDIO_AC3:
|
|
||||||
- codec_id = CODEC_ID_AC3;
|
|
||||||
+ codec_id = AV_CODEC_ID_AC3;
|
|
||||||
break;
|
|
||||||
case GPAC_OTI_AUDIO_EAC3:
|
|
||||||
- codec_id = CODEC_ID_EAC3;
|
|
||||||
+ codec_id = AV_CODEC_ID_EAC3;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1309,11 +1306,11 @@ static u32 FFDEC_CanHandleStream(GF_Base
|
|
||||||
switch (ffd->oti) {
|
|
||||||
/*MPEG-4 v1 simple profile*/
|
|
||||||
case GPAC_OTI_VIDEO_MPEG4_PART2:
|
|
||||||
- codec_id = CODEC_ID_MPEG4;
|
|
||||||
+ codec_id = AV_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;
|
|
||||||
+ codec_id = AV_CODEC_ID_H264;
|
|
||||||
break;
|
|
||||||
#ifdef HAS_HEVC
|
|
||||||
case GPAC_OTI_VIDEO_HEVC:
|
|
||||||
@@ -1329,11 +1326,11 @@ static u32 FFDEC_CanHandleStream(GF_Base
|
|
||||||
case GPAC_OTI_VIDEO_MPEG2_SPATIAL:
|
|
||||||
case GPAC_OTI_VIDEO_MPEG2_HIGH:
|
|
||||||
case GPAC_OTI_VIDEO_MPEG2_422:
|
|
||||||
- codec_id = CODEC_ID_MPEG2VIDEO;
|
|
||||||
+ codec_id = AV_CODEC_ID_MPEG2VIDEO;
|
|
||||||
break;
|
|
||||||
/*JPEG*/
|
|
||||||
case GPAC_OTI_IMAGE_JPEG:
|
|
||||||
- codec_id = CODEC_ID_MJPEG;
|
|
||||||
+ codec_id = AV_CODEC_ID_MJPEG;
|
|
||||||
/*return maybe supported as FFMPEG JPEG decoder has some issues with many files, so let's use it only if no
|
|
||||||
other dec is available*/
|
|
||||||
if (avcodec_find_decoder(codec_id) != NULL)
|
|
||||||
Index: gpac-0.5.2/modules/ffmpeg_in/ffmpeg_demux.c
|
|
||||||
===================================================================
|
|
||||||
--- gpac-0.5.2.orig/modules/ffmpeg_in/ffmpeg_demux.c
|
|
||||||
+++ gpac-0.5.2/modules/ffmpeg_in/ffmpeg_demux.c
|
|
||||||
@@ -333,13 +333,13 @@ static GF_ESD *FFD_GetESDescriptor(FFDem
|
|
||||||
AVCodecContext *dec = ffd->ctx->streams[ffd->audio_st]->codec;
|
|
||||||
esd->slConfig->timestampResolution = ffd->audio_tscale.den;
|
|
||||||
switch (dec->codec_id) {
|
|
||||||
- case CODEC_ID_MP2:
|
|
||||||
+ case AV_CODEC_ID_MP2:
|
|
||||||
esd->decoderConfig->objectTypeIndication = GPAC_OTI_AUDIO_MPEG1;
|
|
||||||
break;
|
|
||||||
- case CODEC_ID_MP3:
|
|
||||||
+ case AV_CODEC_ID_MP3:
|
|
||||||
esd->decoderConfig->objectTypeIndication = GPAC_OTI_AUDIO_MPEG2_PART3;
|
|
||||||
break;
|
|
||||||
- case CODEC_ID_AAC:
|
|
||||||
+ case AV_CODEC_ID_AAC:
|
|
||||||
if (!dec->extradata_size) goto opaque_audio;
|
|
||||||
esd->decoderConfig->objectTypeIndication = GPAC_OTI_AUDIO_AAC_MPEG4;
|
|
||||||
esd->decoderConfig->decoderSpecificInfo->dataLength = dec->extradata_size;
|
|
||||||
@@ -374,25 +374,25 @@ opaque_audio:
|
|
||||||
AVCodecContext *dec = ffd->ctx->streams[ffd->video_st]->codec;
|
|
||||||
esd->slConfig->timestampResolution = ffd->video_tscale.den;
|
|
||||||
switch (dec->codec_id) {
|
|
||||||
- case CODEC_ID_MPEG4:
|
|
||||||
+ case AV_CODEC_ID_MPEG4:
|
|
||||||
/*there is a bug in fragmentation of raw H264 in ffmpeg, the NALU startcode (0x00000001) is split across
|
|
||||||
two frames - we therefore force internal ffmpeg codec ID to avoid NALU size recompute
|
|
||||||
at the decoder level*/
|
|
||||||
-// case CODEC_ID_H264:
|
|
||||||
+// case AV_CODEC_ID_H264:
|
|
||||||
/*if dsi not detected force use ffmpeg*/
|
|
||||||
if (!dec->extradata_size) goto opaque_video;
|
|
||||||
/*otherwise use any MPEG-4 Visual*/
|
|
||||||
- esd->decoderConfig->objectTypeIndication = (dec->codec_id==CODEC_ID_H264) ? GPAC_OTI_VIDEO_AVC : GPAC_OTI_VIDEO_MPEG4_PART2;
|
|
||||||
+ esd->decoderConfig->objectTypeIndication = (dec->codec_id==AV_CODEC_ID_H264) ? GPAC_OTI_VIDEO_AVC : GPAC_OTI_VIDEO_MPEG4_PART2;
|
|
||||||
esd->decoderConfig->decoderSpecificInfo->dataLength = dec->extradata_size;
|
|
||||||
esd->decoderConfig->decoderSpecificInfo->data = gf_malloc(sizeof(char)*dec->extradata_size);
|
|
||||||
memcpy(esd->decoderConfig->decoderSpecificInfo->data,
|
|
||||||
dec->extradata,
|
|
||||||
sizeof(char)*dec->extradata_size);
|
|
||||||
break;
|
|
||||||
- case CODEC_ID_MPEG1VIDEO:
|
|
||||||
+ case AV_CODEC_ID_MPEG1VIDEO:
|
|
||||||
esd->decoderConfig->objectTypeIndication = GPAC_OTI_VIDEO_MPEG1;
|
|
||||||
break;
|
|
||||||
- case CODEC_ID_MPEG2VIDEO:
|
|
||||||
+ case AV_CODEC_ID_MPEG2VIDEO:
|
|
||||||
esd->decoderConfig->objectTypeIndication = GPAC_OTI_VIDEO_MPEG2_422;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
Index: gpac-0.5.2/modules/Makefile
|
|
||||||
===================================================================
|
|
||||||
--- gpac-0.5.2.orig/modules/Makefile
|
|
||||||
+++ gpac-0.5.2/modules/Makefile
|
|
||||||
@@ -100,12 +100,10 @@ endif
|
|
||||||
|
|
||||||
|
|
||||||
ifneq ($(CONFIG_FFMPEG), no)
|
|
||||||
-ifneq ($(CONFIG_LIBAV), new) #we don't support libav newest APIs
|
|
||||||
ifeq ($(CONFIG_OPENHEVC),no)
|
|
||||||
PLUGDIRS+=ffmpeg_in
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
-endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_OPENHEVC), yes)
|
|
||||||
ifeq ($(CONFIG_FFMPEG), no)
|
|
||||||
--- gpac/applications/dashcast/video_encoder.c.orig 2016-02-17 19:57:23.772138846 +0000
|
|
||||||
+++ gpac/applications/dashcast/video_encoder.c 2016-02-17 19:57:52.468686697 +0000
|
|
||||||
@@ -86,7 +86,7 @@
|
|
||||||
video_output_file->codec_ctx->time_base.den = video_data_conf->time_base.den;
|
|
||||||
video_output_file->codec_ctx->time_base.num = video_data_conf->time_base.num * video_data_conf->time_base.den / video_data_conf->framerate;
|
|
||||||
}
|
|
||||||
- video_output_file->codec_ctx->pix_fmt = PIX_FMT_YUV420P;
|
|
||||||
+ video_output_file->codec_ctx->pix_fmt = AV_PIX_FMT_YUV420P;
|
|
||||||
video_output_file->codec_ctx->gop_size = video_data_conf->framerate;
|
|
||||||
|
|
||||||
// video_output_file->codec_ctx->codec_id = video_codec->id;
|
|
||||||
@@ -96,7 +96,7 @@
|
|
||||||
// video_output_file->codec_ctx->height = video_data_conf->height;
|
|
||||||
// video_output_file->codec_ctx->time_base = (AVRational) {1 ,
|
|
||||||
// video_output_file->video_data_conf->framerate};
|
|
||||||
-// video_output_file->codec_ctx->codec->pix_fmt = PIX_FMT_YUV420P;
|
|
||||||
+// video_output_file->codec_ctx->codec->pix_fmt = AV_PIX_FMT_YUV420P;
|
|
||||||
video_output_file->codec_ctx->gop_size = video_data_conf->framerate;
|
|
||||||
//
|
|
||||||
// av_opt_set(video_output_file->codec_ctx->priv_data, "preset", "ultrafast", 0);
|
|
||||||
--- gpac/applications/dashcast/video_muxer.c.orig 2016-02-17 20:03:52.017158010 +0000
|
|
||||||
+++ gpac/applications/dashcast/video_muxer.c 2016-02-17 20:04:03.557099981 +0000
|
|
||||||
@@ -643,7 +643,7 @@
|
|
||||||
|
|
||||||
video_stream->codec->time_base = video_codec_ctx->time_base;
|
|
||||||
|
|
||||||
- video_stream->codec->pix_fmt = PIX_FMT_YUV420P;
|
|
||||||
+ video_stream->codec->pix_fmt = AV_PIX_FMT_YUV420P;
|
|
||||||
video_stream->codec->gop_size = video_codec_ctx->time_base.den; //video_output_file->video_data_conf->framerate;
|
|
||||||
|
|
||||||
av_opt_set(video_stream->codec->priv_data, "preset", "ultrafast", 0);
|
|
||||||
--- gpac/applications/dashcast/video_scaler.c.orig 2016-02-17 20:07:47.372652006 +0000
|
|
||||||
+++ gpac/applications/dashcast/video_scaler.c 2016-02-17 20:08:02.545910489 +0000
|
|
||||||
@@ -125,7 +125,7 @@
|
|
||||||
dc_consumer_init(&video_scaled_data->consumer, video_cb_size, name);
|
|
||||||
|
|
||||||
video_scaled_data->num_producers = max_source;
|
|
||||||
- video_scaled_data->out_pix_fmt = PIX_FMT_YUV420P;
|
|
||||||
+ video_scaled_data->out_pix_fmt = AV_PIX_FMT_YUV420P;
|
|
||||||
GF_SAFE_ALLOC_N(video_scaled_data->vsprop, max_source, VideoScaledProp);
|
|
||||||
memset(video_scaled_data->vsprop, 0, max_source * sizeof(VideoScaledProp));
|
|
||||||
|
|
||||||
@@ -198,7 +198,7 @@
|
|
||||||
video_scaled_data_node->cropped_frame->width = video_input_data->vprop[index].width - video_input_data->vprop[index].crop_x;
|
|
||||||
video_scaled_data_node->cropped_frame->height = video_input_data->vprop[index].height - video_input_data->vprop[index].crop_y;
|
|
||||||
#endif
|
|
||||||
- if (av_picture_crop((AVPicture*)video_scaled_data_node->cropped_frame, (AVPicture*)video_data_node->vframe, PIX_FMT_YUV420P, video_input_data->vprop[index].crop_y, video_input_data->vprop[index].crop_x) < 0) {
|
|
||||||
+ if (av_picture_crop((AVPicture*)video_scaled_data_node->cropped_frame, (AVPicture*)video_data_node->vframe, AV_PIX_FMT_YUV420P, video_input_data->vprop[index].crop_y, video_input_data->vprop[index].crop_x) < 0) {
|
|
||||||
GF_LOG(GF_LOG_ERROR, GF_LOG_DASH, ("Video scaler: error while cropping picture.\n"));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
--- gpac/applications/dashcast/audio_encoder.c.orig 2016-02-17 20:14:56.797231896 +0000
|
|
||||||
+++ gpac/applications/dashcast/audio_encoder.c 2016-02-17 20:16:23.033486783 +0000
|
|
||||||
@@ -85,7 +85,7 @@
|
|
||||||
audio_output_file->frame_bytes = audio_output_file->codec_ctx->frame_size * av_get_bytes_per_sample(DC_AUDIO_SAMPLE_FORMAT) * DC_AUDIO_NUM_CHANNELS;
|
|
||||||
|
|
||||||
#ifndef FF_API_AVFRAME_LAVC
|
|
||||||
- avcodec_get_frame_defaults(audio_output_file->aframe);
|
|
||||||
+ av_frame_unref(audio_output_file->aframe);
|
|
||||||
#else
|
|
||||||
av_frame_unref(audio_output_file->aframe);
|
|
||||||
#endif
|
|
||||||
--- gpac/applications/dashcast/audio_decoder.c.orig 2016-02-17 20:15:09.517171017 +0000
|
|
||||||
+++ gpac/applications/dashcast/audio_decoder.c 2016-02-17 20:16:23.030153465 +0000
|
|
||||||
@@ -205,7 +205,7 @@
|
|
||||||
packet.size = 0;
|
|
||||||
|
|
||||||
#ifndef FF_API_AVFRAME_LAVC
|
|
||||||
- avcodec_get_frame_defaults(audio_input_data->aframe);
|
|
||||||
+ av_frame_unref(audio_input_data->aframe);
|
|
||||||
#else
|
|
||||||
av_frame_unref(audio_input_data->aframe);
|
|
||||||
#endif
|
|
||||||
@@ -240,7 +240,7 @@
|
|
||||||
/* Set audio frame to default */
|
|
||||||
|
|
||||||
#ifndef FF_API_AVFRAME_LAVC
|
|
||||||
- avcodec_get_frame_defaults(audio_input_data->aframe);
|
|
||||||
+ av_frame_unref(audio_input_data->aframe);
|
|
||||||
#else
|
|
||||||
av_frame_unref(audio_input_data->aframe);
|
|
||||||
#endif
|
|
||||||
--- gpac/applications/dashcast/video_decoder.c.orig 2016-02-17 20:15:23.863769072 +0000
|
|
||||||
+++ gpac/applications/dashcast/video_decoder.c 2016-02-17 20:16:23.033486783 +0000
|
|
||||||
@@ -247,7 +247,7 @@
|
|
||||||
/* Flush decoder */
|
|
||||||
memset(&packet, 0, sizeof(AVPacket));
|
|
||||||
#ifndef FF_API_AVFRAME_LAVC
|
|
||||||
- avcodec_get_frame_defaults(video_data_node->vframe);
|
|
||||||
+ av_frame_unref(video_data_node->vframe);
|
|
||||||
#else
|
|
||||||
av_frame_unref(video_data_node->vframe);
|
|
||||||
#endif
|
|
||||||
@@ -286,7 +286,7 @@
|
|
||||||
|
|
||||||
/* Set video frame to default */
|
|
||||||
#ifndef FF_API_AVFRAME_LAVC
|
|
||||||
- avcodec_get_frame_defaults(video_data_node->vframe);
|
|
||||||
+ av_frame_unref(video_data_node->vframe);
|
|
||||||
#else
|
|
||||||
av_frame_unref(video_data_node->vframe);
|
|
||||||
#endif
|
|
||||||
--- gpac/modules/ffmpeg_in/ffmpeg_decode.c.orig 2016-02-17 20:21:45.081958730 +0000
|
|
||||||
+++ gpac/modules/ffmpeg_in/ffmpeg_decode.c 2016-02-17 20:23:37.511418275 +0000
|
|
||||||
@@ -328,7 +328,7 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#if !defined(FF_API_AVFRAME_LAVC)
|
|
||||||
- *frame = avcodec_alloc_frame();
|
|
||||||
+ *frame = av_frame_alloc();
|
|
||||||
#else
|
|
||||||
*frame = av_frame_alloc();
|
|
||||||
#endif
|
|
||||||
@@ -399,7 +399,7 @@
|
|
||||||
#if defined(USE_AVCTX3)
|
|
||||||
|
|
||||||
#if !defined(FF_API_AVFRAME_LAVC)
|
|
||||||
- ffd->audio_frame = avcodec_alloc_frame();
|
|
||||||
+ ffd->audio_frame = av_frame_alloc();
|
|
||||||
#else
|
|
||||||
ffd->audio_frame = av_frame_alloc();
|
|
||||||
#endif
|
|
||||||
@@ -420,7 +420,7 @@
|
|
||||||
|
|
||||||
case AV_CODEC_ID_DVD_SUBTITLE:
|
|
||||||
#if !defined(FF_API_AVFRAME_LAVC)
|
|
||||||
- *frame = avcodec_alloc_frame();
|
|
||||||
+ *frame = av_frame_alloc();
|
|
||||||
#else
|
|
||||||
*frame = av_frame_alloc();
|
|
||||||
#endif
|
|
Loading…
Reference in a new issue