* commit '1c5805521c3e406886341d752ebf38f8d41e1d13': PGS subtitles: Set AVSubtitle pts value configure: Refactor CPPFLAGS settings for glibc/uclibc configure: add basic support for ARM AArch64 build: set -U__STRICT_ANSI__ for newlib Conflicts: configure libavcodec/pgssubdec.c Merged-by: Michael Niedermayer <michaelni@gmx.at>tags/n1.1
| @@ -1199,6 +1199,7 @@ THREADS_LIST=' | |||
| ' | |||
| ARCH_LIST=' | |||
| aarch64 | |||
| alpha | |||
| arm | |||
| avr32 | |||
| @@ -2738,6 +2739,9 @@ fi | |||
| # Deal with common $arch aliases | |||
| case "$arch" in | |||
| aarch64|arm64) | |||
| arch="aarch64" | |||
| ;; | |||
| arm*|iPad*) | |||
| arch="arm" | |||
| ;; | |||
| @@ -2935,6 +2939,17 @@ elif enabled avr32; then | |||
| ;; | |||
| esac | |||
| elif enabled aarch64; then | |||
| case $cpu in | |||
| armv*) | |||
| cpuflags="-march=$cpu" | |||
| ;; | |||
| *) | |||
| cpuflags="-mcpu=$cpu" | |||
| ;; | |||
| esac | |||
| fi | |||
| add_cflags $cpuflags | |||
| @@ -3148,7 +3163,6 @@ case $target_os in | |||
| SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(FULLNAME).dll.a' | |||
| objformat="win32" | |||
| enable dos_paths | |||
| add_cppflags -U__STRICT_ANSI__ | |||
| ;; | |||
| *-dos|freedos|opendos) | |||
| network_extralibs="-lsocket" | |||
| @@ -3157,7 +3171,6 @@ case $target_os in | |||
| add_cppflags -U__STRICT_ANSI__ | |||
| ;; | |||
| linux) | |||
| add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 | |||
| enable dv1394 | |||
| ;; | |||
| irix*) | |||
| @@ -3190,10 +3203,9 @@ case $target_os in | |||
| enable_weak os2threads | |||
| ;; | |||
| gnu/kfreebsd) | |||
| add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_BSD_SOURCE | |||
| add_cppflags -D_BSD_SOURCE | |||
| ;; | |||
| gnu) | |||
| add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 | |||
| ;; | |||
| qnx) | |||
| add_cppflags -D_QNX_SOURCE | |||
| @@ -3241,8 +3253,10 @@ esac | |||
| if check_cpp_condition features.h "defined __UCLIBC__"; then | |||
| libc_type=uclibc | |||
| add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 | |||
| elif check_cpp_condition features.h "defined __GLIBC__"; then | |||
| libc_type=glibc | |||
| add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 | |||
| elif check_header _mingw.h; then | |||
| libc_type=mingw | |||
| check_cpp_condition _mingw.h \ | |||
| @@ -3256,6 +3270,7 @@ elif check_header _mingw.h; then | |||
| fi | |||
| elif check_cpp_condition newlib.h "defined _NEWLIB_VERSION"; then | |||
| libc_type=newlib | |||
| add_cppflags -U__STRICT_ANSI__ | |||
| elif check_func_headers stdlib.h _get_doserrno; then | |||
| libc_type=msvcrt | |||
| add_compat strtod.o strtod=avpriv_strtod | |||
| @@ -52,6 +52,7 @@ typedef struct PGSSubPresentation { | |||
| int id_number; | |||
| int object_count; | |||
| PGSSubPictureReference *objects; | |||
| int64_t pts; | |||
| } PGSSubPresentation; | |||
| typedef struct PGSSubPicture { | |||
| @@ -67,7 +68,6 @@ typedef struct PGSSubContext { | |||
| PGSSubPresentation presentation; | |||
| uint32_t clut[256]; | |||
| PGSSubPicture pictures[UINT16_MAX]; | |||
| int64_t pts; | |||
| int forced_subs_only; | |||
| } PGSSubContext; | |||
| @@ -295,7 +295,8 @@ static void parse_palette_segment(AVCodecContext *avctx, | |||
| * @todo TODO: Implement cropping | |||
| */ | |||
| static void parse_presentation_segment(AVCodecContext *avctx, | |||
| const uint8_t *buf, int buf_size) | |||
| const uint8_t *buf, int buf_size, | |||
| int64_t pts) | |||
| { | |||
| PGSSubContext *ctx = avctx->priv_data; | |||
| @@ -304,6 +305,8 @@ static void parse_presentation_segment(AVCodecContext *avctx, | |||
| uint16_t object_index; | |||
| ctx->presentation.pts = pts; | |||
| av_dlog(avctx, "Video Dimensions %dx%d\n", | |||
| w, h); | |||
| if (av_image_check_size(w, h, 0, avctx) >= 0) | |||
| @@ -394,10 +397,10 @@ static int display_end_segment(AVCodecContext *avctx, void *data, | |||
| * not been cleared by a subsequent empty display command. | |||
| */ | |||
| pts = ctx->pts != AV_NOPTS_VALUE ? ctx->pts : sub->pts; | |||
| pts = ctx->presentation.pts != AV_NOPTS_VALUE ? ctx->presentation.pts : sub->pts; | |||
| memset(sub, 0, sizeof(*sub)); | |||
| sub->pts = pts; | |||
| ctx->pts = AV_NOPTS_VALUE; | |||
| ctx->presentation.pts = AV_NOPTS_VALUE; | |||
| // Blank if last object_count was 0. | |||
| if (!ctx->presentation.object_count) | |||
| @@ -493,8 +496,7 @@ static int decode(AVCodecContext *avctx, void *data, int *data_size, | |||
| parse_picture_segment(avctx, buf, segment_length); | |||
| break; | |||
| case PRESENTATION_SEGMENT: | |||
| parse_presentation_segment(avctx, buf, segment_length); | |||
| ctx->pts = sub->pts; | |||
| parse_presentation_segment(avctx, buf, segment_length, sub->pts); | |||
| break; | |||
| case WINDOW_SEGMENT: | |||
| /* | |||