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;
|
MpiEncTestArgs* enc_cmd = ctx->enc_cmd;
|
||||||
|
|
||||||
if (enc_cmd->file_input)
|
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) {
|
if (NULL == ctx->reader) {
|
||||||
mpp_err("failed to open dec input file %s\n", enc_cmd->file_input);
|
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;
|
FILE *fp_input;
|
||||||
size_t file_size;
|
size_t file_size;
|
||||||
|
|
||||||
|
MppCodingType type;
|
||||||
FileType file_type;
|
FileType file_type;
|
||||||
char *buf;
|
char *buf;
|
||||||
size_t buf_size;
|
size_t buf_size;
|
||||||
@@ -204,7 +205,7 @@ static FileBufSlot *read_normal_file(FileReader data)
|
|||||||
return slot;
|
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;
|
FileReaderImpl *impl = (FileReaderImpl*)data;
|
||||||
|
|
||||||
@@ -220,7 +221,8 @@ static void check_file_type(FileReader data, char *file_in)
|
|||||||
impl->read_total = impl->seek_base;
|
impl->read_total = impl->seek_base;
|
||||||
} else if (strstr(file_in, ".jpg") ||
|
} else if (strstr(file_in, ".jpg") ||
|
||||||
strstr(file_in, ".jpeg") ||
|
strstr(file_in, ".jpeg") ||
|
||||||
strstr(file_in, ".mjpeg")) {
|
strstr(file_in, ".mjpeg") ||
|
||||||
|
type == MPP_VIDEO_CodingMJPEG) {
|
||||||
impl->file_type = FILE_JPEG_TYPE;
|
impl->file_type = FILE_JPEG_TYPE;
|
||||||
impl->buf_size = impl->file_size;
|
impl->buf_size = impl->file_size;
|
||||||
impl->stuff_size = 0;
|
impl->stuff_size = 0;
|
||||||
@@ -321,7 +323,7 @@ void reader_rewind(FileReader reader)
|
|||||||
impl->slot_rd_idx = 0;
|
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");
|
FILE *fp_input = fopen(file_in, "rb");
|
||||||
FileReaderImpl *impl = NULL;
|
FileReaderImpl *impl = NULL;
|
||||||
@@ -340,7 +342,7 @@ void reader_init(FileReader* reader, char* file_in)
|
|||||||
impl->file_size = ftell(fp_input);
|
impl->file_size = ftell(fp_input);
|
||||||
fseek(fp_input, 0L, SEEK_SET);
|
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);
|
impl->slots = mpp_calloc(FileBufSlot*, impl->slot_max);
|
||||||
|
|
||||||
@@ -441,7 +443,8 @@ RK_S32 mpi_dec_opt_i(void *ctx, const char *next)
|
|||||||
if (next) {
|
if (next) {
|
||||||
strncpy(cmd->file_input, next, MAX_FILE_NAME_LENGTH - 1);
|
strncpy(cmd->file_input, next, MAX_FILE_NAME_LENGTH - 1);
|
||||||
cmd->have_input = 1;
|
cmd->have_input = 1;
|
||||||
name_to_coding_type(cmd->file_input, &cmd->type);
|
if (!cmd->type)
|
||||||
|
name_to_coding_type(cmd->file_input, &cmd->type);
|
||||||
return 1;
|
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);
|
ret = mpp_opt_parse(opts, argc, argv);
|
||||||
|
|
||||||
if (cmd->have_input) {
|
if (cmd->have_input) {
|
||||||
reader_init(&cmd->reader, cmd->file_input);
|
reader_init(&cmd->reader, cmd->file_input, cmd->type);
|
||||||
if (cmd->reader)
|
if (cmd->reader)
|
||||||
mpp_log("input file %s size %ld\n", cmd->file_input, reader_size(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);
|
RK_S32 mpi_dec_test_cmd_deinit(MpiDecTestCmd* cmd);
|
||||||
void mpi_dec_test_cmd_options(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_deinit(FileReader reader);
|
||||||
|
|
||||||
void reader_start(FileReader reader);
|
void reader_start(FileReader reader);
|
||||||
|
Reference in New Issue
Block a user