mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-05 09:06:50 +08:00
[dec_utils]: Fix jpeg reader error
Signed-off-by: Herman Chen <herman.chen@rock-chips.com> Change-Id: I04ef9e4f6ae3bb9ccd683a0c0e439b5ff4c7d4f5
This commit is contained in:
@@ -135,7 +135,7 @@ static MPP_RET mpi_rc_init(MpiRc2TestCtx *ctx)
|
||||
MpiEncTestArgs* enc_cmd = ctx->enc_cmd;
|
||||
|
||||
if (enc_cmd->file_input)
|
||||
reader_init(&ctx->reader, enc_cmd->file_input);
|
||||
reader_init(&ctx->reader, enc_cmd->file_input, enc_cmd->type_src);
|
||||
|
||||
if (NULL == ctx->reader) {
|
||||
mpp_err("failed to open dec input file %s\n", enc_cmd->file_input);
|
||||
|
@@ -49,6 +49,7 @@ typedef struct FileReader_t {
|
||||
FILE *fp_input;
|
||||
size_t file_size;
|
||||
|
||||
MppCodingType type;
|
||||
FileType file_type;
|
||||
char *buf;
|
||||
size_t buf_size;
|
||||
@@ -204,7 +205,7 @@ static FileBufSlot *read_normal_file(FileReader data)
|
||||
return slot;
|
||||
}
|
||||
|
||||
static void check_file_type(FileReader data, char *file_in)
|
||||
static void check_file_type(FileReader data, char *file_in, MppCodingType type)
|
||||
{
|
||||
FileReaderImpl *impl = (FileReaderImpl*)data;
|
||||
|
||||
@@ -220,7 +221,8 @@ static void check_file_type(FileReader data, char *file_in)
|
||||
impl->read_total = impl->seek_base;
|
||||
} else if (strstr(file_in, ".jpg") ||
|
||||
strstr(file_in, ".jpeg") ||
|
||||
strstr(file_in, ".mjpeg")) {
|
||||
strstr(file_in, ".mjpeg") ||
|
||||
type == MPP_VIDEO_CodingMJPEG) {
|
||||
impl->file_type = FILE_JPEG_TYPE;
|
||||
impl->buf_size = impl->file_size;
|
||||
impl->stuff_size = 0;
|
||||
@@ -321,7 +323,7 @@ void reader_rewind(FileReader reader)
|
||||
impl->slot_rd_idx = 0;
|
||||
}
|
||||
|
||||
void reader_init(FileReader* reader, char* file_in)
|
||||
void reader_init(FileReader* reader, char* file_in, MppCodingType type)
|
||||
{
|
||||
FILE *fp_input = fopen(file_in, "rb");
|
||||
FileReaderImpl *impl = NULL;
|
||||
@@ -340,7 +342,7 @@ void reader_init(FileReader* reader, char* file_in)
|
||||
impl->file_size = ftell(fp_input);
|
||||
fseek(fp_input, 0L, SEEK_SET);
|
||||
|
||||
check_file_type(impl, file_in);
|
||||
check_file_type(impl, file_in, type);
|
||||
|
||||
impl->slots = mpp_calloc(FileBufSlot*, impl->slot_max);
|
||||
|
||||
@@ -441,6 +443,7 @@ RK_S32 mpi_dec_opt_i(void *ctx, const char *next)
|
||||
if (next) {
|
||||
strncpy(cmd->file_input, next, MAX_FILE_NAME_LENGTH - 1);
|
||||
cmd->have_input = 1;
|
||||
if (!cmd->type)
|
||||
name_to_coding_type(cmd->file_input, &cmd->type);
|
||||
return 1;
|
||||
}
|
||||
@@ -681,7 +684,7 @@ RK_S32 mpi_dec_test_cmd_init(MpiDecTestCmd* cmd, int argc, char **argv)
|
||||
ret = mpp_opt_parse(opts, argc, argv);
|
||||
|
||||
if (cmd->have_input) {
|
||||
reader_init(&cmd->reader, cmd->file_input);
|
||||
reader_init(&cmd->reader, cmd->file_input, cmd->type);
|
||||
if (cmd->reader)
|
||||
mpp_log("input file %s size %ld\n", cmd->file_input, reader_size(cmd->reader));
|
||||
}
|
||||
|
@@ -72,7 +72,7 @@ RK_S32 mpi_dec_test_cmd_init(MpiDecTestCmd* cmd, int argc, char **argv);
|
||||
RK_S32 mpi_dec_test_cmd_deinit(MpiDecTestCmd* cmd);
|
||||
void mpi_dec_test_cmd_options(MpiDecTestCmd* cmd);
|
||||
|
||||
void reader_init(FileReader* reader, char* file_in);
|
||||
void reader_init(FileReader* reader, char* file_in, MppCodingType type);
|
||||
void reader_deinit(FileReader reader);
|
||||
|
||||
void reader_start(FileReader reader);
|
||||
|
Reference in New Issue
Block a user