* H.261 encoder.
*/
-#include "dsputil.h"
#include "avcodec.h"
#include "mpegvideo.h"
#include "h263.h"
extern uint8_t ff_h261_rl_table_store[2][2*MAX_RUN + MAX_LEVEL + 3];
-static void h261_encode_block(H261Context * h, DCTELEM * block,
+static void h261_encode_block(H261Context * h, int16_t * block,
int n);
int ff_h261_get_picture_format(int width, int height){
}
static inline int get_cbp(MpegEncContext * s,
- DCTELEM block[6][64])
+ int16_t block[6][64])
{
int i, cbp;
cbp= 0;
return cbp;
}
void ff_h261_encode_mb(MpegEncContext * s,
- DCTELEM block[6][64],
+ int16_t block[6][64],
int motion_x, int motion_y)
{
H261Context * h = (H261Context *)s;
if (!done) {
done = 1;
- init_rl(&h261_rl_tcoeff, ff_h261_rl_table_store);
+ ff_init_rl(&h261_rl_tcoeff, ff_h261_rl_table_store);
}
s->min_qcoeff= -127;
* @param block the 8x8 block
* @param n block index (0-3 are luma, 4-5 are chroma)
*/
-static void h261_encode_block(H261Context * h, DCTELEM * block, int n){
+static void h261_encode_block(H261Context * h, int16_t * block, int n){
MpegEncContext * const s = &h->s;
int level, run, i, j, last_index, last_non_zero, sign, slevel, code;
RLTable *rl;
}
}
+FF_MPV_GENERIC_CLASS(h261)
+
AVCodec ff_h261_encoder = {
.name = "h261",
.type = AVMEDIA_TYPE_VIDEO,
- .id = CODEC_ID_H261,
+ .id = AV_CODEC_ID_H261,
.priv_data_size = sizeof(H261Context),
- .init = MPV_encode_init,
- .encode = MPV_encode_picture,
- .close = MPV_encode_end,
- .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
- .long_name= NULL_IF_CONFIG_SMALL("H.261"),
+ .init = ff_MPV_encode_init,
+ .encode2 = ff_MPV_encode_picture,
+ .close = ff_MPV_encode_end,
+ .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
+ .long_name = NULL_IF_CONFIG_SMALL("H.261"),
+ .priv_class = &h261_class,
};
-