diff options
Diffstat (limited to 'omx/gstomxh264utils.c')
-rw-r--r-- | omx/gstomxh264utils.c | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/omx/gstomxh264utils.c b/omx/gstomxh264utils.c new file mode 100644 index 0000000..6aeb088 --- /dev/null +++ b/omx/gstomxh264utils.c @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2011, Hewlett-Packard Development Company, L.P. + * Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>, Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation + * version 2.1 of the License. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstomxh264utils.h" + +OMX_VIDEO_AVCPROFILETYPE +gst_omx_h264_utils_get_profile_from_str (const gchar * profile) +{ + if (g_str_equal (profile, "baseline")) { + return OMX_VIDEO_AVCProfileBaseline; + } else if (g_str_equal (profile, "main")) { + return OMX_VIDEO_AVCProfileMain; + } else if (g_str_equal (profile, "extended")) { + return OMX_VIDEO_AVCProfileExtended; + } else if (g_str_equal (profile, "high")) { + return OMX_VIDEO_AVCProfileHigh; + } else if (g_str_equal (profile, "high-10")) { + return OMX_VIDEO_AVCProfileHigh10; + } else if (g_str_equal (profile, "high-4:2:2")) { + return OMX_VIDEO_AVCProfileHigh422; + } else if (g_str_equal (profile, "high-4:4:4")) { + return OMX_VIDEO_AVCProfileHigh444; + } + + return OMX_VIDEO_AVCProfileMax; +} + +OMX_VIDEO_AVCLEVELTYPE +gst_omx_h264_utils_get_level_from_str (const gchar * level) +{ + if (g_str_equal (level, "1")) { + return OMX_VIDEO_AVCLevel1; + } else if (g_str_equal (level, "1b")) { + return OMX_VIDEO_AVCLevel1b; + } else if (g_str_equal (level, "1.1")) { + return OMX_VIDEO_AVCLevel11; + } else if (g_str_equal (level, "1.2")) { + return OMX_VIDEO_AVCLevel12; + } else if (g_str_equal (level, "1.3")) { + return OMX_VIDEO_AVCLevel13; + } else if (g_str_equal (level, "2")) { + return OMX_VIDEO_AVCLevel2; + } else if (g_str_equal (level, "2.1")) { + return OMX_VIDEO_AVCLevel21; + } else if (g_str_equal (level, "2.2")) { + return OMX_VIDEO_AVCLevel22; + } else if (g_str_equal (level, "3")) { + return OMX_VIDEO_AVCLevel3; + } else if (g_str_equal (level, "3.1")) { + return OMX_VIDEO_AVCLevel31; + } else if (g_str_equal (level, "3.2")) { + return OMX_VIDEO_AVCLevel32; + } else if (g_str_equal (level, "4")) { + return OMX_VIDEO_AVCLevel4; + } else if (g_str_equal (level, "4.1")) { + return OMX_VIDEO_AVCLevel41; + } else if (g_str_equal (level, "4.2")) { + return OMX_VIDEO_AVCLevel42; + } else if (g_str_equal (level, "5")) { + return OMX_VIDEO_AVCLevel5; + } else if (g_str_equal (level, "5.1")) { + return OMX_VIDEO_AVCLevel51; + } + + return OMX_VIDEO_AVCLevelMax; +} |