History

vaapi_encode_mpeg2: Move common structure into context

Mark Thompson committed 8 years ago

Commit 537d6aa1 parent 2c3ad161 file · +25 −28Browse files

Showing the changes to libavcodec/vaapi_encode_mpeg2.c (1 of 1 file). Show all

Unified · Split

libavcodec/vaapi_encode_mpeg2.c+25−28
@@ -28,6 +28,9 @@ · 27 unmodified lines
2828 #include "vaapi_encode.h"
2929
3030 typedef struct VAAPIEncodeMPEG2Context {
31+ VAAPIEncodeContext common;
32+
33+ // Derived settings.
3134 int mb_width;
3235 int mb_height;
3336
@@ -35,15 +38,6 @@ typedef struct VAAPIEncodeMPEG2Context { · 1 unmodified line
3538 int quant_p;
3639 int quant_b;
3740
38− MPEG2RawSequenceHeader sequence_header;
39− MPEG2RawExtensionData sequence_extension;
40− MPEG2RawExtensionData sequence_display_extension;
41− MPEG2RawGroupOfPicturesHeader gop_header;
42− MPEG2RawPictureHeader picture_header;
43− MPEG2RawExtensionData picture_coding_extension;
44−
45− int64_t last_i_frame;
46−
4741 unsigned int bit_rate;
4842 unsigned int vbv_buffer_size;
4943
@@ -52,6 +46,17 @@ typedef struct VAAPIEncodeMPEG2Context { · 2 unmodified lines
5246 unsigned int f_code_horizontal;
5347 unsigned int f_code_vertical;
5448
49+ // Stream state.
50+ int64_t last_i_frame;
51+
52+ // Writer structures.
53+ MPEG2RawSequenceHeader sequence_header;
54+ MPEG2RawExtensionData sequence_extension;
55+ MPEG2RawExtensionData sequence_display_extension;
56+ MPEG2RawGroupOfPicturesHeader gop_header;
57+ MPEG2RawPictureHeader picture_header;
58+ MPEG2RawExtensionData picture_coding_extension;
59+
5560 CodedBitstreamContext *cbc;
5661 CodedBitstreamFragment current_fragment;
5762 } VAAPIEncodeMPEG2Context;
@@ -61,8 +66,7 @@ static int vaapi_encode_mpeg2_write_fragment(AVCodecContext *avctx, · 3 unmodified lines
6166 char *data, size_t *data_len,
6267 CodedBitstreamFragment *frag)
6368 {
64− VAAPIEncodeContext *ctx = avctx->priv_data;
65− VAAPIEncodeMPEG2Context *priv = ctx->priv_data;
69+ VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
6670 int err;
6771
6872 err = ff_cbs_write_fragment_data(priv->cbc, frag);
@@ -88,8 +92,7 @@ static int vaapi_encode_mpeg2_add_header(AVCodecContext *avctx, · 19 unmodified lines
8892 CodedBitstreamFragment *frag,
8993 int type, void *header)
9094 {
91− VAAPIEncodeContext *ctx = avctx->priv_data;
92− VAAPIEncodeMPEG2Context *priv = ctx->priv_data;
95+ VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
9396 int err;
9497
9598 err = ff_cbs_insert_unit_content(priv->cbc, frag, -1, type, header, NULL);
@@ -105,8 +108,7 @@ static int vaapi_encode_mpeg2_add_header(AVCodecContext *avctx, · 9 unmodified lines
105108 static int vaapi_encode_mpeg2_write_sequence_header(AVCodecContext *avctx,
106109 char *data, size_t *data_len)
107110 {
108− VAAPIEncodeContext *ctx = avctx->priv_data;
109− VAAPIEncodeMPEG2Context *priv = ctx->priv_data;
111+ VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
110112 CodedBitstreamFragment *frag = &priv->current_fragment;
111113 int err;
112114
@@ -140,8 +142,7 @@ static int vaapi_encode_mpeg2_write_picture_header(AVCodecContext *avctx, · 27 unmodified lines
140142 VAAPIEncodePicture *pic,
141143 char *data, size_t *data_len)
142144 {
143− VAAPIEncodeContext *ctx = avctx->priv_data;
144− VAAPIEncodeMPEG2Context *priv = ctx->priv_data;
145+ VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
145146 CodedBitstreamFragment *frag = &priv->current_fragment;
146147 int err;
147148
@@ -164,7 +165,7 @@ fail: · 16 unmodified lines
164165 static int vaapi_encode_mpeg2_init_sequence_params(AVCodecContext *avctx)
165166 {
166167 VAAPIEncodeContext *ctx = avctx->priv_data;
167− VAAPIEncodeMPEG2Context *priv = ctx->priv_data;
168+ VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
168169 MPEG2RawSequenceHeader *sh = &priv->sequence_header;
169170 MPEG2RawSequenceExtension *se = &priv->sequence_extension.data.sequence;
170171 MPEG2RawSequenceDisplayExtension *sde = &priv->sequence_display_extension.data.sequence_display;
@@ -416,8 +417,7 @@ static int vaapi_encode_mpeg2_init_sequence_params(AVCodecContext *avctx) · 245 unmodified lines
416417 static int vaapi_encode_mpeg2_init_picture_params(AVCodecContext *avctx,
417418 VAAPIEncodePicture *pic)
418419 {
419− VAAPIEncodeContext *ctx = avctx->priv_data;
420− VAAPIEncodeMPEG2Context *priv = ctx->priv_data;
420+ VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
421421 MPEG2RawPictureHeader *ph = &priv->picture_header;
422422 MPEG2RawPictureCodingExtension *pce = &priv->picture_coding_extension.data.picture_coding;
423423 VAEncPictureParameterBufferMPEG2 *vpic = pic->codec_picture_params;
@@ -482,9 +482,8 @@ static int vaapi_encode_mpeg2_init_slice_params(AVCodecContext *avctx, · 58 unmodified lines
482482 VAAPIEncodePicture *pic,
483483 VAAPIEncodeSlice *slice)
484484 {
485− VAAPIEncodeContext *ctx = avctx->priv_data;
485+ VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
486486 VAEncSliceParameterBufferMPEG2 *vslice = slice->codec_slice_params;
487− VAAPIEncodeMPEG2Context *priv = ctx->priv_data;
488487 int qp;
489488
490489 vslice->macroblock_address = priv->mb_width * slice->index;
@@ -515,7 +514,7 @@ static int vaapi_encode_mpeg2_init_slice_params(AVCodecContext *avctx, · 24 unmodified lines
515514 static av_cold int vaapi_encode_mpeg2_configure(AVCodecContext *avctx)
516515 {
517516 VAAPIEncodeContext *ctx = avctx->priv_data;
518− VAAPIEncodeMPEG2Context *priv = ctx->priv_data;
517+ VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
519518 int err;
520519
521520 err = ff_cbs_init(&priv->cbc, AV_CODEC_ID_MPEG2VIDEO, avctx);
@@ -638,11 +637,9 @@ static av_cold int vaapi_encode_mpeg2_init(AVCodecContext *avctx) · 116 unmodified lines
638637
639638 static av_cold int vaapi_encode_mpeg2_close(AVCodecContext *avctx)
640639 {
641− VAAPIEncodeContext *ctx = avctx->priv_data;
642− VAAPIEncodeMPEG2Context *priv = ctx->priv_data;
640+ VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
643641
644− if (priv)
645− ff_cbs_close(&priv->cbc);
642+ ff_cbs_close(&priv->cbc);
646643
647644 return ff_vaapi_encode_close(avctx);
648645 }
@@ -665,7 +662,7 @@ AVCodec ff_mpeg2_vaapi_encoder = { · 16 unmodified lines
665662 .long_name = NULL_IF_CONFIG_SMALL("MPEG-2 (VAAPI)"),
666663 .type = AVMEDIA_TYPE_VIDEO,
667664 .id = AV_CODEC_ID_MPEG2VIDEO,
668− .priv_data_size = sizeof(VAAPIEncodeContext),
665+ .priv_data_size = sizeof(VAAPIEncodeMPEG2Context),
669666 .init = &vaapi_encode_mpeg2_init,
670667 .encode2 = &ff_vaapi_encode2,
671668 .close = &vaapi_encode_mpeg2_close,

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t