Signed-off-by: Michael Niedermayer <michaelni@gmx.at>tags/n2.4
| @@ -15,6 +15,10 @@ libavutil: 2012-10-22 | |||||
| API changes, most recent first: | API changes, most recent first: | ||||
| 2014-08-04 - xxxxxxx - lavc 55.72.101 - avcodec.h | |||||
| 2014-08-04 - xxxxxxx - lavu 52.95.100 - frame.h | |||||
| Deprecate AVCodecContext.dtg_active_format and use side-data instead | |||||
| 2014-08-03 - xxxxxxx - lavc 55.72.100 - avcodec.h | 2014-08-03 - xxxxxxx - lavc 55.72.100 - avcodec.h | ||||
| Add get_pixels() to AVDCT | Add get_pixels() to AVDCT | ||||
| @@ -1690,6 +1690,7 @@ typedef struct AVCodecContext { | |||||
| */ | */ | ||||
| int me_subpel_quality; | int me_subpel_quality; | ||||
| #if FF_API_AFD | |||||
| /** | /** | ||||
| * DTG active format information (additional aspect ratio | * DTG active format information (additional aspect ratio | ||||
| * information only used in DVB MPEG-2 transport streams) | * information only used in DVB MPEG-2 transport streams) | ||||
| @@ -1697,8 +1698,9 @@ typedef struct AVCodecContext { | |||||
| * | * | ||||
| * - encoding: unused | * - encoding: unused | ||||
| * - decoding: Set by decoder. | * - decoding: Set by decoder. | ||||
| * @deprecated Deprecated in favour of AVSideData | |||||
| */ | */ | ||||
| int dtg_active_format; | |||||
| attribute_deprecated int dtg_active_format; | |||||
| #define FF_DTG_AFD_SAME 8 | #define FF_DTG_AFD_SAME 8 | ||||
| #define FF_DTG_AFD_4_3 9 | #define FF_DTG_AFD_4_3 9 | ||||
| #define FF_DTG_AFD_16_9 10 | #define FF_DTG_AFD_16_9 10 | ||||
| @@ -1706,6 +1708,7 @@ typedef struct AVCodecContext { | |||||
| #define FF_DTG_AFD_4_3_SP_14_9 13 | #define FF_DTG_AFD_4_3_SP_14_9 13 | ||||
| #define FF_DTG_AFD_16_9_SP_14_9 14 | #define FF_DTG_AFD_16_9_SP_14_9 14 | ||||
| #define FF_DTG_AFD_SP_4_3 15 | #define FF_DTG_AFD_SP_4_3 15 | ||||
| #endif | |||||
| /** | /** | ||||
| * maximum motion estimation search range in subpel units | * maximum motion estimation search range in subpel units | ||||
| @@ -56,6 +56,8 @@ typedef struct Mpeg1Context { | |||||
| int has_stereo3d; | int has_stereo3d; | ||||
| uint8_t *a53_caption; | uint8_t *a53_caption; | ||||
| int a53_caption_size; | int a53_caption_size; | ||||
| uint8_t afd; | |||||
| int has_afd; | |||||
| int slice_count; | int slice_count; | ||||
| int save_aspect_info; | int save_aspect_info; | ||||
| int save_width, save_height, save_progressive_seq; | int save_width, save_height, save_progressive_seq; | ||||
| @@ -1659,6 +1661,18 @@ static int mpeg_field_start(MpegEncContext *s, const uint8_t *buf, int buf_size) | |||||
| *stereo = s1->stereo3d; | *stereo = s1->stereo3d; | ||||
| s1->has_stereo3d = 0; | s1->has_stereo3d = 0; | ||||
| } | } | ||||
| if (s1->has_afd) { | |||||
| AVFrameSideData *sd = av_frame_new_side_data( | |||||
| s->current_picture_ptr->f, AV_FRAME_DATA_AFD, | |||||
| 1); | |||||
| if (!sd) | |||||
| return AVERROR(ENOMEM); | |||||
| *sd->data = s1->afd; | |||||
| s1->has_afd = 0; | |||||
| } | |||||
| if (HAVE_THREADS && (avctx->active_thread_type & FF_THREAD_FRAME)) | if (HAVE_THREADS && (avctx->active_thread_type & FF_THREAD_FRAME)) | ||||
| ff_thread_finish_setup(avctx); | ff_thread_finish_setup(avctx); | ||||
| } else { // second field | } else { // second field | ||||
| @@ -2264,6 +2278,7 @@ static void mpeg_decode_user_data(AVCodecContext *avctx, | |||||
| { | { | ||||
| Mpeg1Context *s = avctx->priv_data; | Mpeg1Context *s = avctx->priv_data; | ||||
| const uint8_t *buf_end = p + buf_size; | const uint8_t *buf_end = p + buf_size; | ||||
| Mpeg1Context *s1 = avctx->priv_data; | |||||
| if (buf_size > 29){ | if (buf_size > 29){ | ||||
| int i; | int i; | ||||
| @@ -2290,7 +2305,11 @@ static void mpeg_decode_user_data(AVCodecContext *avctx, | |||||
| if (flags & 0x40) { | if (flags & 0x40) { | ||||
| if (buf_end - p < 1) | if (buf_end - p < 1) | ||||
| return; | return; | ||||
| #if FF_API_AFD | |||||
| avctx->dtg_active_format = p[0] & 0x0f; | avctx->dtg_active_format = p[0] & 0x0f; | ||||
| #endif | |||||
| s1->has_afd = 1; | |||||
| s1->afd = p[0] & 0x0f; | |||||
| } | } | ||||
| } else if (buf_end - p >= 6 && | } else if (buf_end - p >= 6 && | ||||
| p[0] == 'J' && p[1] == 'P' && p[2] == '3' && p[3] == 'D' && | p[0] == 'J' && p[1] == 'P' && p[2] == '3' && p[3] == 'D' && | ||||
| @@ -2302,7 +2321,6 @@ static void mpeg_decode_user_data(AVCodecContext *avctx, | |||||
| S3D_video_format_type == 0x04 || | S3D_video_format_type == 0x04 || | ||||
| S3D_video_format_type == 0x08 || | S3D_video_format_type == 0x08 || | ||||
| S3D_video_format_type == 0x23) { | S3D_video_format_type == 0x23) { | ||||
| Mpeg1Context *s1 = avctx->priv_data; | |||||
| s1->has_stereo3d = 1; | s1->has_stereo3d = 1; | ||||
| @@ -30,7 +30,7 @@ | |||||
| #define LIBAVCODEC_VERSION_MAJOR 55 | #define LIBAVCODEC_VERSION_MAJOR 55 | ||||
| #define LIBAVCODEC_VERSION_MINOR 72 | #define LIBAVCODEC_VERSION_MINOR 72 | ||||
| #define LIBAVCODEC_VERSION_MICRO 100 | |||||
| #define LIBAVCODEC_VERSION_MICRO 101 | |||||
| #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ | #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ | ||||
| LIBAVCODEC_VERSION_MINOR, \ | LIBAVCODEC_VERSION_MINOR, \ | ||||
| @@ -168,5 +168,8 @@ | |||||
| #ifndef FF_API_CODEC_NAME | #ifndef FF_API_CODEC_NAME | ||||
| #define FF_API_CODEC_NAME (LIBAVCODEC_VERSION_MAJOR < 57) | #define FF_API_CODEC_NAME (LIBAVCODEC_VERSION_MAJOR < 57) | ||||
| #endif | #endif | ||||
| #ifndef FF_API_AFD | |||||
| #define FF_API_AFD (LIBAVCODEC_VERSION_MAJOR < 57) | |||||
| #endif | |||||
| #endif /* AVCODEC_VERSION_H */ | #endif /* AVCODEC_VERSION_H */ | ||||
| @@ -147,6 +147,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) | |||||
| av_log(ctx, AV_LOG_INFO, "displaymatrix: rotation of %.2f degrees", | av_log(ctx, AV_LOG_INFO, "displaymatrix: rotation of %.2f degrees", | ||||
| av_display_rotation_get((int32_t *)sd->data)); | av_display_rotation_get((int32_t *)sd->data)); | ||||
| break; | break; | ||||
| case AV_FRAME_DATA_AFD: | |||||
| av_log(ctx, AV_LOG_INFO, "afd: value of %u", sd->data[0]); | |||||
| break; | |||||
| default: | default: | ||||
| av_log(ctx, AV_LOG_WARNING, "unknown side data type %d (%d bytes)", | av_log(ctx, AV_LOG_WARNING, "unknown side data type %d (%d bytes)", | ||||
| sd->type, sd->size); | sd->type, sd->size); | ||||
| @@ -82,6 +82,22 @@ enum AVFrameSideDataType { | |||||
| * See libavutil/display.h for a detailed description of the data. | * See libavutil/display.h for a detailed description of the data. | ||||
| */ | */ | ||||
| AV_FRAME_DATA_DISPLAYMATRIX, | AV_FRAME_DATA_DISPLAYMATRIX, | ||||
| /** | |||||
| * Active Format Description data consisting of a single byte as specified in ETSI TS 101 154 | |||||
| * using AVActiveFormatDescription enum | |||||
| */ | |||||
| AV_FRAME_DATA_AFD, | |||||
| }; | |||||
| enum AVActiveFormatDescription | |||||
| { | |||||
| AV_AFD_SAME = 8, | |||||
| AV_AFD_4_3 = 9, | |||||
| AV_AFD_16_9 = 10, | |||||
| AV_AFD_14_9 = 11, | |||||
| AV_AFD_4_3_SP_14_9 = 13, | |||||
| AV_AFD_16_9_SP_14_9 = 14, | |||||
| AV_AFD_SP_4_3 = 15 | |||||
| }; | }; | ||||
| typedef struct AVFrameSideData { | typedef struct AVFrameSideData { | ||||
| @@ -56,7 +56,7 @@ | |||||
| */ | */ | ||||
| #define LIBAVUTIL_VERSION_MAJOR 52 | #define LIBAVUTIL_VERSION_MAJOR 52 | ||||
| #define LIBAVUTIL_VERSION_MINOR 94 | |||||
| #define LIBAVUTIL_VERSION_MINOR 95 | |||||
| #define LIBAVUTIL_VERSION_MICRO 100 | #define LIBAVUTIL_VERSION_MICRO 100 | ||||
| #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ | #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ | ||||