mirror of
https://git.videolan.org/git/ffmpeg.git
synced 2024-09-11 18:07:56 +02:00
libmpcodecs: some hunks from mplayer HEAD
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
65655a0499
commit
5aa18fed84
@ -27,7 +27,6 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include "mp_msg.h"
|
#include "mp_msg.h"
|
||||||
#include "cpudetect.h"
|
|
||||||
|
|
||||||
#include "img_format.h"
|
#include "img_format.h"
|
||||||
#include "mp_image.h"
|
#include "mp_image.h"
|
||||||
|
@ -92,7 +92,6 @@ struct vf_priv_s {
|
|||||||
|
|
||||||
static void filter(struct vf_priv_s *p, uint8_t *dst[3], uint8_t *src[3], int dst_stride[3], int src_stride[3], int width, int height){
|
static void filter(struct vf_priv_s *p, uint8_t *dst[3], uint8_t *src[3], int dst_stride[3], int src_stride[3], int width, int height){
|
||||||
int x, y, i;
|
int x, y, i;
|
||||||
int out_size;
|
|
||||||
|
|
||||||
for(i=0; i<3; i++){
|
for(i=0; i<3; i++){
|
||||||
p->frame->data[i]= src[i];
|
p->frame->data[i]= src[i];
|
||||||
@ -102,7 +101,7 @@ static void filter(struct vf_priv_s *p, uint8_t *dst[3], uint8_t *src[3], int ds
|
|||||||
p->avctx_enc->me_cmp=
|
p->avctx_enc->me_cmp=
|
||||||
p->avctx_enc->me_sub_cmp= FF_CMP_SAD /*| (p->parity ? FF_CMP_ODD : FF_CMP_EVEN)*/;
|
p->avctx_enc->me_sub_cmp= FF_CMP_SAD /*| (p->parity ? FF_CMP_ODD : FF_CMP_EVEN)*/;
|
||||||
p->frame->quality= p->qp*FF_QP2LAMBDA;
|
p->frame->quality= p->qp*FF_QP2LAMBDA;
|
||||||
out_size = avcodec_encode_video(p->avctx_enc, p->outbuf, p->outbuf_size, p->frame);
|
avcodec_encode_video(p->avctx_enc, p->outbuf, p->outbuf_size, p->frame);
|
||||||
p->frame_dec = p->avctx_enc->coded_frame;
|
p->frame_dec = p->avctx_enc->coded_frame;
|
||||||
|
|
||||||
for(i=0; i<3; i++){
|
for(i=0; i<3; i++){
|
||||||
|
@ -32,6 +32,8 @@
|
|||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "libavutil/mem.h"
|
||||||
|
|
||||||
#include "img_format.h"
|
#include "img_format.h"
|
||||||
#include "mp_image.h"
|
#include "mp_image.h"
|
||||||
#include "vf.h"
|
#include "vf.h"
|
||||||
|
@ -34,6 +34,8 @@
|
|||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "libavutil/mem.h"
|
||||||
|
|
||||||
#include "img_format.h"
|
#include "img_format.h"
|
||||||
#include "mp_image.h"
|
#include "mp_image.h"
|
||||||
#include "vf.h"
|
#include "vf.h"
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \file vf_remove_logo.c
|
* \file
|
||||||
*
|
*
|
||||||
* \brief Advanced blur-based logo removing filter.
|
* \brief Advanced blur-based logo removing filter.
|
||||||
|
|
||||||
|
@ -66,6 +66,8 @@ struct vf_priv_s {
|
|||||||
//FIXME stupid code duplication
|
//FIXME stupid code duplication
|
||||||
static void getSubSampleFactors(int *h, int *v, int format){
|
static void getSubSampleFactors(int *h, int *v, int format){
|
||||||
switch(format){
|
switch(format){
|
||||||
|
default:
|
||||||
|
assert(0);
|
||||||
case IMGFMT_YV12:
|
case IMGFMT_YV12:
|
||||||
case IMGFMT_I420:
|
case IMGFMT_I420:
|
||||||
*h=1;
|
*h=1;
|
||||||
|
@ -53,6 +53,8 @@ struct vf_priv_s {
|
|||||||
//FIXME stupid code duplication
|
//FIXME stupid code duplication
|
||||||
static void getSubSampleFactors(int *h, int *v, int format){
|
static void getSubSampleFactors(int *h, int *v, int format){
|
||||||
switch(format){
|
switch(format){
|
||||||
|
default:
|
||||||
|
assert(0);
|
||||||
case IMGFMT_YV12:
|
case IMGFMT_YV12:
|
||||||
case IMGFMT_I420:
|
case IMGFMT_I420:
|
||||||
*h=1;
|
*h=1;
|
||||||
|
@ -175,12 +175,12 @@ static void filter(struct vf_priv_s *p, uint8_t *dst[3], uint8_t *src[3], int ds
|
|||||||
for(i=0; i<count; i++){
|
for(i=0; i<count; i++){
|
||||||
const int x1= offset[i+count-1][0];
|
const int x1= offset[i+count-1][0];
|
||||||
const int y1= offset[i+count-1][1];
|
const int y1= offset[i+count-1][1];
|
||||||
int offset, out_size;
|
int offset;
|
||||||
p->frame->data[0]= p->src[0] + x1 + y1 * p->frame->linesize[0];
|
p->frame->data[0]= p->src[0] + x1 + y1 * p->frame->linesize[0];
|
||||||
p->frame->data[1]= p->src[1] + x1/2 + y1/2 * p->frame->linesize[1];
|
p->frame->data[1]= p->src[1] + x1/2 + y1/2 * p->frame->linesize[1];
|
||||||
p->frame->data[2]= p->src[2] + x1/2 + y1/2 * p->frame->linesize[2];
|
p->frame->data[2]= p->src[2] + x1/2 + y1/2 * p->frame->linesize[2];
|
||||||
|
|
||||||
out_size = avcodec_encode_video(p->avctx_enc[i], p->outbuf, p->outbuf_size, p->frame);
|
avcodec_encode_video(p->avctx_enc[i], p->outbuf, p->outbuf_size, p->frame);
|
||||||
p->frame_dec = p->avctx_enc[i]->coded_frame;
|
p->frame_dec = p->avctx_enc[i]->coded_frame;
|
||||||
|
|
||||||
offset= (BLOCK-x1) + (BLOCK-y1)*p->frame_dec->linesize[0];
|
offset= (BLOCK-x1) + (BLOCK-y1)*p->frame_dec->linesize[0];
|
||||||
|
Loading…
Reference in New Issue
Block a user