blob: deb0be19c510f18c914d78d291fb1de40e37c8b8 [file]
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
#ifndef AML_MEDIA_ERROR_CODES_H_
#define AML_MEDIA_ERROR_CODES_H_
/* Media Error Codes Modules
* | bit 15 - 12 | bit 11 - 10 | bit 9 - 0 |
* | Module | Level | Error Code|
*/
enum MediaErrorCodeModule {
MEDIA_ERRORCODES_MOD_PIPELINE = 0x0000,
MEDIA_ERRORCODES_MOD_VDEC = 0x1000,
MEDIA_ERRORCODES_MOD_VENC = 0x2000,
MEDIA_ERRORCODES_MOD_AUDIO = 0x3000,
MEDIA_ERRORCODES_MOD_DI = 0x4000,
MEDIA_ERRORCODES_MOD_MEMC = 0x5000,
MEDIA_ERRORCODES_MOD_DISPLAY = 0x6000,
MEDIA_ERRORCODES_MOD_MAX = 0xF000,
};
enum MediaErrorCodeLevel {
/**< Errors that may cause Media Codec release */
MEDIA_ERRORCODES_LEVEL_FATAL = 0x0C00,
/**< Noticeable or unrecoverable errors */
MEDIA_ERRORCODES_LEVEL_ERROR = 0x0800,
/**< Recoverable errors */
MEDIA_ERRORCODES_LEVEL_MINOR = 0x0400,
/**< Warnings */
MEDIA_ERRORCODES_LEVEL_WARN = 0x0000,
};
enum MediaErrorCodePipeline {
MEDIA_ERRORCODES_PIPELINE_MIN = MEDIA_ERRORCODES_MOD_PIPELINE,
MEDIA_ERRORCODES_PIPELINE_MAX = MEDIA_ERRORCODES_MOD_PIPELINE | 0xFFF,
// Fatal errors
MEDIA_ERRORCODES_PIPELINE_F_UNKNOWN =
MEDIA_ERRORCODES_MOD_PIPELINE | MEDIA_ERRORCODES_LEVEL_FATAL | 0,
// Major errors
MEDIA_ERRORCODES_PIPELINE_E_UNKNOWN =
MEDIA_ERRORCODES_MOD_PIPELINE | MEDIA_ERRORCODES_LEVEL_ERROR | 0,
MEDIA_ERRORCODES_PIPELINE_E_RESOURCE_BUSY =
MEDIA_ERRORCODES_MOD_PIPELINE | MEDIA_ERRORCODES_LEVEL_ERROR | 1,
// Minor errors
MEDIA_ERRORCODES_PIPELINE_M_UNKNOWN =
MEDIA_ERRORCODES_MOD_PIPELINE | MEDIA_ERRORCODES_LEVEL_MINOR | 0,
// Warnings
MEDIA_ERRORCODES_PIPELINE_W_UNKNOWN =
MEDIA_ERRORCODES_MOD_PIPELINE | MEDIA_ERRORCODES_LEVEL_WARN | 0,
MEDIA_ERRORCODES_PIPELINE_W_MAY_FREEZE =
MEDIA_ERRORCODES_MOD_PIPELINE | MEDIA_ERRORCODES_LEVEL_WARN | 1,
};
enum MediaErrorCodeVDEC {
MEDIA_ERRORCODES_VDEC_MIN =
MEDIA_ERRORCODES_MOD_VDEC,
MEDIA_ERRORCODES_VDEC_MAX =
MEDIA_ERRORCODES_MOD_VDEC | 0xFFF,
// Fatal errors
MEDIA_ERRORCODES_VDEC_F_UNKNOWN =
MEDIA_ERRORCODES_MOD_VDEC | MEDIA_ERRORCODES_LEVEL_FATAL | 0,
MEDIA_ERRORCODES_VDEC_F_NO_MEMORY =
MEDIA_ERRORCODES_MOD_VDEC | MEDIA_ERRORCODES_LEVEL_FATAL | 1,
// Major errors
MEDIA_ERRORCODES_VDEC_E_UNKNOWN =
MEDIA_ERRORCODES_MOD_VDEC | MEDIA_ERRORCODES_LEVEL_ERROR | 0,
MEDIA_ERRORCODES_VDEC_E_TIMEOUT =
MEDIA_ERRORCODES_MOD_VDEC | MEDIA_ERRORCODES_LEVEL_ERROR | 1,
MEDIA_ERRORCODES_VDEC_E_BITRATE_NOT_SUPPORTED =
MEDIA_ERRORCODES_MOD_VDEC | MEDIA_ERRORCODES_LEVEL_ERROR | 2,
MEDIA_ERRORCODES_VDEC_E_PROFILELEVEL_NOT_SUPPORTED =
MEDIA_ERRORCODES_MOD_VDEC | MEDIA_ERRORCODES_LEVEL_ERROR | 3,
// Minor errors
MEDIA_ERRORCODES_VDEC_M_UNKNOWN =
MEDIA_ERRORCODES_MOD_VDEC | MEDIA_ERRORCODES_LEVEL_MINOR | 0,
MEDIA_ERRORCODES_VDEC_M_NOT_READY =
MEDIA_ERRORCODES_MOD_VDEC | MEDIA_ERRORCODES_LEVEL_MINOR | 1,
MEDIA_ERRORCODES_VDEC_M_BAD_INPUT =
MEDIA_ERRORCODES_MOD_VDEC | MEDIA_ERRORCODES_LEVEL_MINOR | 2,
// Warnings
MEDIA_ERRORCODES_VDEC_W_UNKNOWN =
MEDIA_ERRORCODES_MOD_VDEC | MEDIA_ERRORCODES_LEVEL_WARN | 0,
MEDIA_ERRORCODES_VDEC_W_INPUT_UNDERRUN =
MEDIA_ERRORCODES_MOD_VDEC | MEDIA_ERRORCODES_LEVEL_WARN | 1,
MEDIA_ERRORCODES_VDEC_W_OUTPUT_UNDERRUN =
MEDIA_ERRORCODES_MOD_VDEC | MEDIA_ERRORCODES_LEVEL_WARN | 2,
MEDIA_ERRORCODES_VDEC_W_OUTPUT_NOT_READY =
MEDIA_ERRORCODES_MOD_VDEC | MEDIA_ERRORCODES_LEVEL_WARN | 3,
};
enum MediaErrorCodeDI {
MEDIA_ERRORCODES_DI_MIN = MEDIA_ERRORCODES_MOD_DI,
MEDIA_ERRORCODES_DI_MAX = MEDIA_ERRORCODES_MOD_DI | 0xFFF,
// Fatal errors
MEDIA_ERRORCODES_DI_F_UNKNOWN =
MEDIA_ERRORCODES_MOD_DI | MEDIA_ERRORCODES_LEVEL_FATAL | 0,
// Major errors
MEDIA_ERRORCODES_DI_E_UNKNOWN =
MEDIA_ERRORCODES_MOD_DI | MEDIA_ERRORCODES_LEVEL_ERROR | 0,
MEDIA_ERRORCODES_DI_E_MEMORY_LEAK =
MEDIA_ERRORCODES_MOD_DI | MEDIA_ERRORCODES_LEVEL_ERROR | 1,
MEDIA_ERRORCODES_DI_E_HW_TIMEOUT =
MEDIA_ERRORCODES_MOD_DI | MEDIA_ERRORCODES_LEVEL_ERROR | 2,
// Minor errors
MEDIA_ERRORCODES_DI_M_UNKNOWN =
MEDIA_ERRORCODES_MOD_DI | MEDIA_ERRORCODES_LEVEL_MINOR | 0,
MEDIA_ERRORCODES_DI_M_FRAME_NOT_SUPPORTED =
MEDIA_ERRORCODES_MOD_DI | MEDIA_ERRORCODES_LEVEL_MINOR | 1,
// Warnings
MEDIA_ERRORCODES_DI_W_UNKNOWN =
MEDIA_ERRORCODES_MOD_DI | MEDIA_ERRORCODES_LEVEL_WARN | 0,
};
enum MediaErrorCodeMemc {
MEDIA_ERRORCODES_MEMC_MIN = MEDIA_ERRORCODES_MOD_MEMC,
MEDIA_ERRORCODES_MEMC_MAX = MEDIA_ERRORCODES_MOD_MEMC | 0xFFF,
// Fatal errors
MEDIA_ERRORCODES_MEMC_F_UNKNOWN =
MEDIA_ERRORCODES_MOD_MEMC | MEDIA_ERRORCODES_LEVEL_FATAL | 0,
// Major errors
MEDIA_ERRORCODES_MEMC_E_UNKNOWN =
MEDIA_ERRORCODES_MOD_MEMC | MEDIA_ERRORCODES_LEVEL_ERROR | 0,
MEDIA_ERRORCODES_MEMC_E_AXIS_CHANGE_WHEN_ENABLE =
MEDIA_ERRORCODES_MOD_MEMC | MEDIA_ERRORCODES_LEVEL_ERROR | 1,
// Minor errors
MEDIA_ERRORCODES_MEMC_M_UNKNOWN =
MEDIA_ERRORCODES_MOD_MEMC | MEDIA_ERRORCODES_LEVEL_MINOR | 0,
MEDIA_ERRORCODES_MEMC_M_INPUT_UNDONE =
MEDIA_ERRORCODES_MOD_MEMC | MEDIA_ERRORCODES_LEVEL_MINOR | 1,
// Warnings
MEDIA_ERRORCODES_MEMC_W_UNKNOWN =
MEDIA_ERRORCODES_MOD_MEMC | MEDIA_ERRORCODES_LEVEL_WARN | 0,
};
enum MediaErrorCodeDisplay {
MEDIA_ERRORCODES_DISPLAY_MIN = MEDIA_ERRORCODES_MOD_DISPLAY,
MEDIA_ERRORCODES_DISPLAY_MAX = MEDIA_ERRORCODES_MOD_DISPLAY | 0xFFF,
// Fatal errors
MEDIA_ERRORCODES_DISPLAY_F_UNKNOWN =
MEDIA_ERRORCODES_MOD_DISPLAY | MEDIA_ERRORCODES_LEVEL_FATAL | 0,
// Major errors
MEDIA_ERRORCODES_DISPLAY_E_UNKNOWN =
MEDIA_ERRORCODES_MOD_DISPLAY | MEDIA_ERRORCODES_LEVEL_ERROR | 0,
// Minor errors
MEDIA_ERRORCODES_DISPLAY_M_UNKNOWN =
MEDIA_ERRORCODES_MOD_DISPLAY | MEDIA_ERRORCODES_LEVEL_MINOR | 0,
// Warnings
MEDIA_ERRORCODES_DISPLAY_W_UNKNOWN =
MEDIA_ERRORCODES_MOD_DISPLAY | MEDIA_ERRORCODES_LEVEL_WARN | 0,
MEDIA_ERRORCODES_DISPLAY_W_PATTERN_BROKEN =
MEDIA_ERRORCODES_MOD_DISPLAY | MEDIA_ERRORCODES_LEVEL_WARN | 1,
};
#endif //AML_MEDIA_ERROR_CODES_H_