diff --git a/imageshack-uploader/ffmpeg_fas.c b/imageshack-uploader/ffmpeg_fas.c index 5f1cd81..2141a51 100644 --- a/imageshack-uploader/ffmpeg_fas.c +++ b/imageshack-uploader/ffmpeg_fas.c @@ -96,7 +96,7 @@ static char *gbl_error_strings[NUM_POSSIBLE_ERRORS] = char* fas_error_message(fas_error_type error) { - if ((error < 0) || (error >= NUM_POSSIBLE_ERRORS)) + if (error >= NUM_POSSIBLE_ERRORS) return invalid_error_code; return gbl_error_strings[error]; @@ -111,6 +111,9 @@ fas_error_type private_complete_seek_table (fas_context_ref_type contex void fas_set_logging (fas_boolean_type logging) { +#ifndef _WIN32 + int av_log_level; +#endif if (logging == FAS_TRUE) { SHOW_ERROR_MESSAGES = 1; @@ -223,7 +226,7 @@ fas_error_type fas_open_video (fas_context_ref_type *context_ptr, char *file_pat if (SHOW_WARNING_MESSAGES) dump_format(fas_context->format_context, 0, file_path, 0); - int stream_idx; + unsigned int stream_idx; for (stream_idx = 0; stream_idx < fas_context->format_context->nb_streams; stream_idx++) { if (fas_context->format_context->streams[stream_idx]->codec->codec_type == CODEC_TYPE_VIDEO) @@ -373,7 +376,7 @@ fas_error_type fas_step_forward (fas_context_ref_type context) context->current_dts = packet.dts; /* seek support: set first_dts */ - if (context->first_dts == AV_NOPTS_VALUE) + if (context->first_dts == (unsigned)AV_NOPTS_VALUE) context->first_dts = packet.dts; /* seek support: set key-packet info to previous packet's dts, when possible */ @@ -384,7 +387,7 @@ fas_error_type fas_step_forward (fas_context_ref_type context) { //fprintf(stderr, "Packet: (F:%d %lld %lld)\n", context->current_frame_index, packet.pts, packet.dts); - if (context->previous_dts == AV_NOPTS_VALUE) + if (context->previous_dts == (unsigned)AV_NOPTS_VALUE) context->keyframe_packet_dts = packet.dts; else context->keyframe_packet_dts = context->previous_dts; @@ -497,6 +500,116 @@ fas_error_type fas_get_frame (fas_context_ref_type context, fas_raw_image_type * image_ptr->bytes_per_line = context->codec_context->width * 3; image_ptr->color_space = FAS_YUV444P; break; + case PIX_FMT_NONE: + break; + case PIX_FMT_RGB32: + break; + case PIX_FMT_YUV410P: + break; + case PIX_FMT_YUV411P: + break; + case PIX_FMT_RGB565: + break; + case PIX_FMT_RGB555: + break; + case PIX_FMT_GRAY8: + break; + case PIX_FMT_MONOWHITE: + break; + case PIX_FMT_MONOBLACK: + break; + case PIX_FMT_PAL8: + break; + case PIX_FMT_YUVJ420P: + break; + case PIX_FMT_YUVJ422P: + break; + case PIX_FMT_YUVJ444P: + break; + case PIX_FMT_XVMC_MPEG2_MC: + break; + case PIX_FMT_XVMC_MPEG2_IDCT: + break; + case PIX_FMT_UYYVYY411: + break; + case PIX_FMT_BGR32: + break; + case PIX_FMT_BGR565: + break; + case PIX_FMT_BGR555: + break; + case PIX_FMT_BGR8: + break; + case PIX_FMT_BGR4: + break; + case PIX_FMT_BGR4_BYTE: + break; + case PIX_FMT_RGB8: + break; + case PIX_FMT_RGB4: + break; + case PIX_FMT_RGB4_BYTE: + break; + case PIX_FMT_NV12: + break; + case PIX_FMT_NV21: + break; + case PIX_FMT_GRAY16BE: + break; + case PIX_FMT_GRAY16LE: + break; + case PIX_FMT_YUV440P: + break; + case PIX_FMT_YUVJ440P: + break; + case PIX_FMT_YUVA420P: + break; + case PIX_FMT_VDPAU_H264: + break; + case PIX_FMT_VDPAU_MPEG1: + break; + case PIX_FMT_VDPAU_MPEG2: + break; + case PIX_FMT_VDPAU_WMV3: + break; + case PIX_FMT_VDPAU_VC1: + break; + case PIX_FMT_RGB48BE: + break; + case PIX_FMT_RGB48LE: + break; + case PIX_FMT_VAAPI_MOCO: + break; + case PIX_FMT_VAAPI_IDCT: + break; + case PIX_FMT_VAAPI_VLD: + break; + case PIX_FMT_NB: + break; + case PIX_FMT_RGB565BE: + break; + case PIX_FMT_RGB555BE: + break; + case PIX_FMT_BGR565BE: + break; + case PIX_FMT_BGR555BE: + break; + case PIX_FMT_YUV420P16LE: + break; + case PIX_FMT_YUV420P16BE: + break; + case PIX_FMT_YUV422P16LE: + break; + case PIX_FMT_YUV422P16BE: + break; + case PIX_FMT_YUV444P16LE: + break; + case PIX_FMT_YUV444P16BE: + break; + case PIX_FMT_VDPAU_MPEG4: + break; + case PIX_FMT_DXVA2_VLD: + break; } buffer_size = image_ptr->bytes_per_line * context->codec_context->height; @@ -827,8 +940,9 @@ fas_error_type private_convert_to_rgb (fas_context_ref_type ctx) pCodecCtx->pix_fmt, pCodecCtx->width, pCodecCtx->height, PIX_FMT_RGB24, SWS_FAST_BILINEAR, NULL, NULL, NULL); - - sws_scale(img_convert_ctx, pFrame->data, pFrame->linesize, 0, + /*Workaround... data structure should be adapted*/ + const uint8_t * const* ppData = (const uint8_t * const *) pFrame->data; + sws_scale(img_convert_ctx, ppData, pFrame->linesize, 0, pCodecCtx->height, pFrameRGB->data, pFrameRGB->linesize); ctx->rgb_already_converted = FAS_TRUE; @@ -862,8 +976,9 @@ fas_error_type private_convert_to_gray8 (fas_context_ref_type ctx) pCodecCtx->pix_fmt, pCodecCtx->width, pCodecCtx->height, PIX_FMT_GRAY8, SWS_FAST_BILINEAR, NULL, NULL, NULL); - - sws_scale(img_convert_ctx, pFrameRGB->data, pFrame->linesize, 0, + /*Workaround... data's structure should be adapted*/ + const uint8_t * const* ppData = (const uint8_t * const *) pFrame->data; + sws_scale(img_convert_ctx, ppData, pFrame->linesize, 0, pCodecCtx->height, pFrame->data, pFrame->linesize); ctx->gray8_already_converted = FAS_TRUE;