diff options
Diffstat (limited to 'contrib/ffmpeg/vhook/watermark.c')
-rw-r--r-- | contrib/ffmpeg/vhook/watermark.c | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/contrib/ffmpeg/vhook/watermark.c b/contrib/ffmpeg/vhook/watermark.c index 4d2acd2aa..aa6fee63c 100644 --- a/contrib/ffmpeg/vhook/watermark.c +++ b/contrib/ffmpeg/vhook/watermark.c @@ -208,23 +208,23 @@ static void Process0(void *ctx, int thrG = ci->thrG; int thrB = ci->thrB; - if (pix_fmt != PIX_FMT_RGBA32) { + if (pix_fmt != PIX_FMT_RGB32) { int size; - size = avpicture_get_size(PIX_FMT_RGBA32, src_width, src_height); + size = avpicture_get_size(PIX_FMT_RGB32, src_width, src_height); buf = av_malloc(size); - avpicture_fill(&picture1, buf, PIX_FMT_RGBA32, src_width, src_height); + avpicture_fill(&picture1, buf, PIX_FMT_RGB32, src_width, src_height); // if we already got a SWS context, let's realloc if is not re-useable ci->toRGB_convert_ctx = sws_getCachedContext(ci->toRGB_convert_ctx, src_width, src_height, pix_fmt, - src_width, src_height, PIX_FMT_RGBA32, + src_width, src_height, PIX_FMT_RGB32, sws_flags, NULL, NULL, NULL); if (ci->toRGB_convert_ctx == NULL) { av_log(NULL, AV_LOG_ERROR, "Cannot initialize the toRGB conversion context\n"); - exit(1); + return; } // img_convert parameters are 2 first destination, then 4 source @@ -248,7 +248,7 @@ static void Process0(void *ctx, ym_size = ci->y_size; // I'll do the *4 => <<2 crap later. Most compilers understand that anyway. - // According to avcodec.h PIX_FMT_RGBA32 is handled in endian specific manner. + // According to avcodec.h PIX_FMT_RGB32 is handled in endian specific manner. for (y=0; y<src_height; y++) { offs = y * (src_width * 4); offsm = (((y * ym_size) / src_height) * 4) * xm_size; // offsm first in maskline. byteoffs! @@ -291,15 +291,15 @@ static void Process0(void *ctx, - if (pix_fmt != PIX_FMT_RGBA32) { + if (pix_fmt != PIX_FMT_RGB32) { ci->fromRGB_convert_ctx = sws_getCachedContext(ci->fromRGB_convert_ctx, - src_width, src_height, PIX_FMT_RGBA32, + src_width, src_height, PIX_FMT_RGB32, src_width, src_height, pix_fmt, sws_flags, NULL, NULL, NULL); if (ci->fromRGB_convert_ctx == NULL) { av_log(NULL, AV_LOG_ERROR, "Cannot initialize the fromRGB conversion context\n"); - exit(1); + return; } // img_convert parameters are 2 first destination, then 4 source // sws_scale parameters are context, 4 first source, then 2 destination @@ -339,23 +339,23 @@ static void Process1(void *ctx, uint32_t pixel; uint32_t pixelm; - if (pix_fmt != PIX_FMT_RGBA32) { + if (pix_fmt != PIX_FMT_RGB32) { int size; - size = avpicture_get_size(PIX_FMT_RGBA32, src_width, src_height); + size = avpicture_get_size(PIX_FMT_RGB32, src_width, src_height); buf = av_malloc(size); - avpicture_fill(&picture1, buf, PIX_FMT_RGBA32, src_width, src_height); + avpicture_fill(&picture1, buf, PIX_FMT_RGB32, src_width, src_height); // if we already got a SWS context, let's realloc if is not re-useable ci->toRGB_convert_ctx = sws_getCachedContext(ci->toRGB_convert_ctx, src_width, src_height, pix_fmt, - src_width, src_height, PIX_FMT_RGBA32, + src_width, src_height, PIX_FMT_RGB32, sws_flags, NULL, NULL, NULL); if (ci->toRGB_convert_ctx == NULL) { av_log(NULL, AV_LOG_ERROR, "Cannot initialize the toRGB conversion context\n"); - exit(1); + return; } // img_convert parameters are 2 first destination, then 4 source @@ -379,7 +379,7 @@ static void Process1(void *ctx, ym_size = ci->y_size; // I'll do the *4 => <<2 crap later. Most compilers understand that anyway. - // According to avcodec.h PIX_FMT_RGBA32 is handled in endian specific manner. + // According to avcodec.h PIX_FMT_RGB32 is handled in endian specific manner. for (y=0; y<src_height; y++) { offs = y * (src_width * 4); offsm = (((y * ym_size) / src_height) * 4) * xm_size; // offsm first in maskline. byteoffs! @@ -402,15 +402,15 @@ static void Process1(void *ctx, } // foreach X } // foreach Y - if (pix_fmt != PIX_FMT_RGBA32) { + if (pix_fmt != PIX_FMT_RGB32) { ci->fromRGB_convert_ctx = sws_getCachedContext(ci->fromRGB_convert_ctx, - src_width, src_height, PIX_FMT_RGBA32, + src_width, src_height, PIX_FMT_RGB32, src_width, src_height, pix_fmt, sws_flags, NULL, NULL, NULL); if (ci->fromRGB_convert_ctx == NULL) { av_log(NULL, AV_LOG_ERROR, "Cannot initialize the fromRGB conversion context\n"); - exit(1); + return; } // img_convert parameters are 2 first destination, then 4 source // sws_scale parameters are context, 4 first source, then 2 destination @@ -577,12 +577,12 @@ int get_watermark_picture(ContextInfo *ci, int cleanup) } // Determine required buffer size and allocate buffer - ci->numBytes = avpicture_get_size(PIX_FMT_RGBA32, ci->pCodecCtx->width, + ci->numBytes = avpicture_get_size(PIX_FMT_RGB32, ci->pCodecCtx->width, ci->pCodecCtx->height); ci->buffer = av_malloc(ci->numBytes); // Assign appropriate parts of buffer to image planes in pFrameRGB - avpicture_fill((AVPicture *)ci->pFrameRGB, ci->buffer, PIX_FMT_RGBA32, + avpicture_fill((AVPicture *)ci->pFrameRGB, ci->buffer, PIX_FMT_RGB32, ci->pCodecCtx->width, ci->pCodecCtx->height); } // TODO loop, pingpong etc? @@ -601,16 +601,16 @@ int get_watermark_picture(ContextInfo *ci, int cleanup) // Did we get a video frame? if(ci->frameFinished) { - // Convert the image from its native format to RGBA32 + // Convert the image from its native format to RGB32 ci->watermark_convert_ctx = sws_getCachedContext(ci->watermark_convert_ctx, ci->pCodecCtx->width, ci->pCodecCtx->height, ci->pCodecCtx->pix_fmt, - ci->pCodecCtx->width, ci->pCodecCtx->height, PIX_FMT_RGBA32, + ci->pCodecCtx->width, ci->pCodecCtx->height, PIX_FMT_RGB32, sws_flags, NULL, NULL, NULL); if (ci->watermark_convert_ctx == NULL) { av_log(NULL, AV_LOG_ERROR, "Cannot initialize the watermark conversion context\n"); - exit(1); + return -1; } // img_convert parameters are 2 first destination, then 4 source // sws_scale parameters are context, 4 first source, then 2 destination |