mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Deprecate AFD field and add AFD as side-data
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
2793b218bd
commit
2a3c36e920
@ -15,6 +15,10 @@ libavutil: 2012-10-22
|
||||
|
||||
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
|
||||
Add get_pixels() to AVDCT
|
||||
|
||||
|
@ -1690,6 +1690,7 @@ typedef struct AVCodecContext {
|
||||
*/
|
||||
int me_subpel_quality;
|
||||
|
||||
#if FF_API_AFD
|
||||
/**
|
||||
* DTG active format information (additional aspect ratio
|
||||
* information only used in DVB MPEG-2 transport streams)
|
||||
@ -1697,8 +1698,9 @@ typedef struct AVCodecContext {
|
||||
*
|
||||
* - encoding: unused
|
||||
* - 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_4_3 9
|
||||
#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_16_9_SP_14_9 14
|
||||
#define FF_DTG_AFD_SP_4_3 15
|
||||
#endif
|
||||
|
||||
/**
|
||||
* maximum motion estimation search range in subpel units
|
||||
|
@ -56,6 +56,8 @@ typedef struct Mpeg1Context {
|
||||
int has_stereo3d;
|
||||
uint8_t *a53_caption;
|
||||
int a53_caption_size;
|
||||
uint8_t afd;
|
||||
int has_afd;
|
||||
int slice_count;
|
||||
int save_aspect_info;
|
||||
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;
|
||||
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))
|
||||
ff_thread_finish_setup(avctx);
|
||||
} else { // second field
|
||||
@ -2264,6 +2278,7 @@ static void mpeg_decode_user_data(AVCodecContext *avctx,
|
||||
{
|
||||
Mpeg1Context *s = avctx->priv_data;
|
||||
const uint8_t *buf_end = p + buf_size;
|
||||
Mpeg1Context *s1 = avctx->priv_data;
|
||||
|
||||
if (buf_size > 29){
|
||||
int i;
|
||||
@ -2290,7 +2305,11 @@ static void mpeg_decode_user_data(AVCodecContext *avctx,
|
||||
if (flags & 0x40) {
|
||||
if (buf_end - p < 1)
|
||||
return;
|
||||
#if FF_API_AFD
|
||||
avctx->dtg_active_format = p[0] & 0x0f;
|
||||
#endif
|
||||
s1->has_afd = 1;
|
||||
s1->afd = p[0] & 0x0f;
|
||||
}
|
||||
} else if (buf_end - p >= 6 &&
|
||||
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 == 0x08 ||
|
||||
S3D_video_format_type == 0x23) {
|
||||
Mpeg1Context *s1 = avctx->priv_data;
|
||||
|
||||
s1->has_stereo3d = 1;
|
||||
|
||||
|
@ -30,7 +30,7 @@
|
||||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 55
|
||||
#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, \
|
||||
LIBAVCODEC_VERSION_MINOR, \
|
||||
@ -168,5 +168,8 @@
|
||||
#ifndef FF_API_CODEC_NAME
|
||||
#define FF_API_CODEC_NAME (LIBAVCODEC_VERSION_MAJOR < 57)
|
||||
#endif
|
||||
#ifndef FF_API_AFD
|
||||
#define FF_API_AFD (LIBAVCODEC_VERSION_MAJOR < 57)
|
||||
#endif
|
||||
|
||||
#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_display_rotation_get((int32_t *)sd->data));
|
||||
break;
|
||||
case AV_FRAME_DATA_AFD:
|
||||
av_log(ctx, AV_LOG_INFO, "afd: value of %u", sd->data[0]);
|
||||
break;
|
||||
default:
|
||||
av_log(ctx, AV_LOG_WARNING, "unknown side data type %d (%d bytes)",
|
||||
sd->type, sd->size);
|
||||
|
@ -82,6 +82,22 @@ enum AVFrameSideDataType {
|
||||
* See libavutil/display.h for a detailed description of the data.
|
||||
*/
|
||||
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 {
|
||||
|
@ -56,7 +56,7 @@
|
||||
*/
|
||||
|
||||
#define LIBAVUTIL_VERSION_MAJOR 52
|
||||
#define LIBAVUTIL_VERSION_MINOR 94
|
||||
#define LIBAVUTIL_VERSION_MINOR 95
|
||||
#define LIBAVUTIL_VERSION_MICRO 100
|
||||
|
||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||
|
Loading…
Reference in New Issue
Block a user