summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjk7744.park <jk7744.park@samsung.com>2015-10-24 16:51:59 +0900
committerjk7744.park <jk7744.park@samsung.com>2015-10-24 16:51:59 +0900
commit1f0d82a1dfc461cec19610e04e77c0953017798d (patch)
tree1422dfecb699a5604598a88ccc3c69a19e179904
parent97e3df24773a6715ab4e1f5ed67f27c56e9736dd (diff)
downloadlibmm-fileinfo-1f0d82a1dfc461cec19610e04e77c0953017798d.tar.gz
libmm-fileinfo-1f0d82a1dfc461cec19610e04e77c0953017798d.tar.bz2
libmm-fileinfo-1f0d82a1dfc461cec19610e04e77c0953017798d.zip
-rwxr-xr-xMakefile.am6
-rwxr-xr-xTC/build.sh32
-rwxr-xr-xTC/execute.sh32
-rwxr-xr-xTC/making_new_tet_scen.py69
-rwxr-xr-xTC/tet_scen14
-rwxr-xr-xTC/tetbuild.cfg7
-rwxr-xr-xTC/tetclean.cfg6
-rwxr-xr-xTC/tetexec.cfg6
-rw-r--r--TC/tslist.txt1
-rwxr-xr-xTC/utc/Makefile70
-rwxr-xr-xTC/utc/tslist9
-rwxr-xr-xTC/utc/utc_mm_file_create_content_attrs_from_memory_func.c159
-rwxr-xr-xTC/utc/utc_mm_file_create_content_attrs_func.c111
-rwxr-xr-xTC/utc/utc_mm_file_create_content_attrs_simple_func.c121
-rwxr-xr-xTC/utc/utc_mm_file_create_tag_attrs_from_memory_func.c157
-rwxr-xr-xTC/utc/utc_mm_file_create_tag_attrs_func.c107
-rwxr-xr-xTC/utc/utc_mm_file_destroy_content_attrs_func.c115
-rwxr-xr-xTC/utc/utc_mm_file_destroy_tag_attrs_func.c116
-rwxr-xr-xTC/utc/utc_mm_file_get_attrs_func.c249
-rwxr-xr-xTC/utc/utc_mm_file_get_stream_info_func.c141
-rwxr-xr-xTC/utc/utc_mm_fileinfo_common.h103
-rwxr-xr-xcodecs/ffmpeg/Makefile.am4
-rwxr-xr-xcodecs/ffmpeg/include/mm_file_codec_private.h2
-rwxr-xr-xcodecs/ffmpeg/mm_file_codec_dummy.c38
-rwxr-xr-xcodecs/ffmpeg/mm_file_codecs.c170
-rwxr-xr-xconfigure16873
-rwxr-xr-xconfigure.ac15
-rwxr-xr-xformats/ffmpeg/Makefile.am5
-rwxr-xr-xformats/ffmpeg/include/mm_file_format_aac.h74
-rwxr-xr-xformats/ffmpeg/include/mm_file_format_amr.h20
-rwxr-xr-xformats/ffmpeg/include/mm_file_format_audio.h92
-rwxr-xr-xformats/ffmpeg/include/mm_file_format_ffmpeg_mem.h1
-rwxr-xr-xformats/ffmpeg/include/mm_file_format_id3tag.h149
-rwxr-xr-xformats/ffmpeg/include/mm_file_format_imelody.h13
-rwxr-xr-xformats/ffmpeg/include/mm_file_format_midi.h4
-rwxr-xr-xformats/ffmpeg/include/mm_file_format_private.h24
-rwxr-xr-xformats/ffmpeg/include/mm_file_format_tag_id3.h25
-rwxr-xr-xformats/ffmpeg/include/mm_file_format_tags.h40
-rwxr-xr-xformats/ffmpeg/mm_file_format_aac.c1506
-rwxr-xr-xformats/ffmpeg/mm_file_format_amr.c598
-rwxr-xr-xformats/ffmpeg/mm_file_format_dummy.c67
-rwxr-xr-xformats/ffmpeg/mm_file_format_ffmpeg.c901
-rwxr-xr-xformats/ffmpeg/mm_file_format_ffmpeg_mem.c340
-rwxr-xr-xformats/ffmpeg/mm_file_format_frame.c346
-rwxr-xr-xformats/ffmpeg/mm_file_format_imelody.c2094
-rwxr-xr-xformats/ffmpeg/mm_file_format_midi.c927
-rwxr-xr-xformats/ffmpeg/mm_file_format_mmf.c1732
-rwxr-xr-xformats/ffmpeg/mm_file_format_mp3.c1514
-rwxr-xr-xformats/ffmpeg/mm_file_format_tag_id3.c295
-rwxr-xr-xformats/ffmpeg/mm_file_format_tags.c323
-rwxr-xr-xformats/ffmpeg/mm_file_format_wav.c210
-rwxr-xr-xformats/ffmpeg/mm_file_formats.c894
-rwxr-xr-xinclude/mm_file.h96
-rwxr-xr-xinclude/mm_file_codecs.h46
-rwxr-xr-xinclude/mm_file_debug.h106
-rwxr-xr-xinclude/mm_file_format_frame.h2
-rwxr-xr-xinclude/mm_file_formats.h47
-rwxr-xr-x[-rw-r--r--]mm-fileinfo.pc.in2
-rwxr-xr-xmm_file.c831
-rwxr-xr-xpackaging/libmm-fileinfo.spec10
-rwxr-xr-xtests/mm_file_memtrace_reader.c336
-rwxr-xr-xtests/mm_file_test.c341
-rwxr-xr-xtests/mm_file_traverse.h9
-rwxr-xr-xtests/mm_file_traverser.c92
-rwxr-xr-xutils/Makefile.am4
-rwxr-xr-xutils/include/mm_file_utils.h486
-rwxr-xr-xutils/mm_file_util_io.c91
-rwxr-xr-xutils/mm_file_util_io_file.c177
-rwxr-xr-xutils/mm_file_util_io_mem.c374
-rwxr-xr-xutils/mm_file_util_io_mmap.c478
-rwxr-xr-xutils/mm_file_util_list.c60
-rwxr-xr-xutils/mm_file_util_locale.c69
-rwxr-xr-xutils/mm_file_util_memory.c85
-rwxr-xr-xutils/mm_file_util_mime.c299
-rwxr-xr-xutils/mm_file_util_print.c108
-rwxr-xr-xutils/mm_file_util_string.c196
-rwxr-xr-xutils/mm_file_util_tag.c3969
-rwxr-xr-xutils/mm_file_util_validity.c1552
78 files changed, 10921 insertions, 29872 deletions
diff --git a/Makefile.am b/Makefile.am
index 68052bb..2ecc9df 100755
--- a/Makefile.am
+++ b/Makefile.am
@@ -41,10 +41,8 @@ libmmffile_la_LIBADD += $(top_builddir)/codecs/ffmpeg/libmmfile_codecs.la \
$(top_builddir)/formats/ffmpeg/libmmfile_formats.la
endif
-
-libmmffile_la_CFLAGS += $(MMLOG_CFLAGS) -DMMF_LOG_OWNER=0x040 -DMMF_DEBUG_PREFIX=\"MMF-FILE\"
-libmmffile_la_LIBADD += $(MMLOG_LIBS)
-
+libmmffile_la_CFLAGS += $(DLOG_CFLAGS)
+libmmffile_la_LIBADD += $(DLOG_LIBS)
pcfiles = mm-fileinfo.pc
pkgconfigdir = $(libdir)/pkgconfig
diff --git a/TC/build.sh b/TC/build.sh
deleted file mode 100755
index 1276482..0000000
--- a/TC/build.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#./_export_env.sh # setting environment variables
-#!/bin/sh
-export ARCH=target
-export TET_INSTALL_PATH=/scratchbox/TETware/
-export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-target
-export PATH=$TET_TARGET_PATH/bin:$PATH
-export LD_LIBRARY_PATH=$TET_TARGET_PATH/lib/tet3:$LD_LIBRARY_PATH
-
-export TET_ROOT=$TET_TARGET_PATH
-
-set $(pwd)
-export TET_SUITE_ROOT=$1
-
-set $(date +%s)
-FILE_NAME_EXTENSION=$1
-
-echo PATH=$PATH
-echo LD_LIBRARY_PATH=$LD_LIBRARY_PATH
-echo TET_ROOT=$TET_ROOT
-echo TET_SUITE_ROOT=$TET_SUITE_ROOT
-echo ARCH=$ARCH
-
-RESULT_DIR=results-$ARCH
-HTML_RESULT=$RESULT_DIR/build-tar-result-$FILE_NAME_EXTENSION.html
-JOURNAL_RESULT=$RESULT_DIR/build-tar-result-$FILE_NAME_EXTENSION.journal
-
-mkdir $RESULT_DIR
-
-tcc -c -p ./ # executing tcc, with clean option (-c)
-tcc -b -j $JOURNAL_RESULT -p ./ # executing tcc to build test cases (-b)
-grw -c 3 -f chtml -o $HTML_RESULT $JOURNAL_RESULT # reporting the result
-
diff --git a/TC/execute.sh b/TC/execute.sh
deleted file mode 100755
index 8e414df..0000000
--- a/TC/execute.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-
-export ARCH=target
-
-export TET_INSTALL_PATH=/mnt/nfs/TETware # path to mount
-export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-target
-export PATH=$TET_TARGET_PATH/bin:$PATH
-export LD_LIBRARY_PATH=$TET_TARGET_PATH/lib/tet3:$LD_LIBRARY_PATH
-
-export TET_ROOT=$TET_TARGET_PATH
-
-set $(pwd)
-export TET_SUITE_ROOT=$1
-
-set $(date +%s)
-FILE_NAME_EXTENSION=$1
-
-echo PATH=$PATH
-echo LD_LIBRARY_PATH=$LD_LIBRARY_PATH
-echo TET_ROOT=$TET_ROOT
-echo TET_SUITE_ROOT=$TET_SUITE_ROOT
-echo ARCH=$ARCH
-
-RESULT_DIR=results-$ARCH
-HTML_RESULT=$RESULT_DIR/build-tar-result-$FILE_NAME_EXTENSION.html
-JOURNAL_RESULT=$RESULT_DIR/build-tar-result-$FILE_NAME_EXTENSION.journal
-
-mkdir $RESULT_DIR
-
-tcc -e -j $JOURNAL_RESULT -p ./
-grw -c 3 -f chtml -o $HTML_RESULT $JOURNAL_RESULT # reporting the result
-
diff --git a/TC/making_new_tet_scen.py b/TC/making_new_tet_scen.py
deleted file mode 100755
index 6c5b845..0000000
--- a/TC/making_new_tet_scen.py
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/python
-
-#############################################
-# tet_scen auto generator
-#
-# ** argv[1] = TC root
-#############################################
-
-import sys,string,os
-
-
-write_file = open("tet_scen", 'w')
-
-#
-# making new tet_scen
-#
-def making_tet_scen (filename):
- #tmp_list = filename.strip().split('/')
- n_filename = filename.replace(' ', '\\ ')
- #print n_filename
- #new_path = "/"+ sys.argv[1] +"/"+n_filename[2:-6]
- new_path = "/"+n_filename[:-6]
- #print new_path
- file = open(filename, 'r')
- lines = file.readlines()
- for line in lines:
- if len(line.strip()) > 1:
- list = line.strip().split('/')
- #print new_path + list[-1]
- write_file.write("\t"+new_path+list[-1]+"\n")
-
-#
-# usage()
-#
-def usage():
- print(" ")
- print("./making_new_tet_scen.py tc_root")
- print("Put the Test Case's root directory.")
- print("Do not include '/' at the end")
- print(" ")
-
-#
-# main()
-#
-def main():
- if len(sys.argv) < 2:
- usage()
- sys.exit(0)
-
- os.system('find '+ sys.argv[1] +' -name "tslist" > tslist.txt')
-
- #write_file = open("tetscen", w)
- write_file.write("# auto generated tet_scen\n")
- write_file.write("all\n")
- write_file.write("\t\"Starting Full Test Suite\"\n")
-
- for file in open("tslist.txt", 'r'):
- #print file.strip()
- making_tet_scen(file.strip())
-
- write_file.write("\t\"Completed Full Test Suite\"\n")
- write_file.write("# EOF\n")
- write_file.close()
- print(" ")
- print("==============================")
- print("New tet_scen file is made~~~~")
- print("==============================")
- print(" ")
-main()
diff --git a/TC/tet_scen b/TC/tet_scen
deleted file mode 100755
index b03b95f..0000000
--- a/TC/tet_scen
+++ /dev/null
@@ -1,14 +0,0 @@
-# auto generated tet_scen
-all
- "Starting Full Test Suite"
- /utc/utc_mm_file_create_tag_attrs_func
- /utc/utc_mm_file_create_content_attrs_func
- /utc/utc_mm_file_destroy_content_attrs_func
- /utc/utc_mm_file_destroy_tag_attrs_func
- /utc/utc_mm_file_get_stream_info_func
- /utc/utc_mm_file_create_content_attrs_simple_func
- /utc/utc_mm_file_create_content_attrs_from_memory_func
- /utc/utc_mm_file_create_tag_attrs_from_memory_func
- /utc/utc_mm_file_get_attrs_func
- "Completed Full Test Suite"
-# EOF
diff --git a/TC/tetbuild.cfg b/TC/tetbuild.cfg
deleted file mode 100755
index addcce9..0000000
--- a/TC/tetbuild.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-TET_OUTPUT_CAPTURE=True # capture option for build operation checking
-TET_BUILD_TOOL=make # build with using make command
-TET_BUILD_FILE=-f Makefile # execution file (Makefile) for build
-TET_API_COMPLIANT=True # use TET API in Test Case ?
-TET_PASS_TC_NAME=True # report passed TC name in Journal file?
-
-
diff --git a/TC/tetclean.cfg b/TC/tetclean.cfg
deleted file mode 100755
index 00d58d5..0000000
--- a/TC/tetclean.cfg
+++ /dev/null
@@ -1,6 +0,0 @@
-TET_OUTPUT_CAPTURE=True # capture option
-TET_CLEAN_TOOL= make clean # clean tool
-TET_CLEAN_FILE= Makefile # file for clean
-TET_API_COMPLIANT=True # TET API useage
-TET_PASS_TC_NAME=True # showing name , passed TC
-
diff --git a/TC/tetexec.cfg b/TC/tetexec.cfg
deleted file mode 100755
index e726ecc..0000000
--- a/TC/tetexec.cfg
+++ /dev/null
@@ -1,6 +0,0 @@
-TET_OUTPUT_CAPTURE=True # capturing execution or not
-TET_EXEC_TOOL= # ex) exec : execution tool set up/ Optional
-TET_EXEC_FILE= # ex) exectool : execution file/ Optional
-TET_API_COMPLIANT=True # Test case or Tool usesTET API?
-TET_PASS_TC_NAME=True # showing Passed TC name ?
-
diff --git a/TC/tslist.txt b/TC/tslist.txt
deleted file mode 100644
index 24c0a1a..0000000
--- a/TC/tslist.txt
+++ /dev/null
@@ -1 +0,0 @@
-utc/tslist
diff --git a/TC/utc/Makefile b/TC/utc/Makefile
deleted file mode 100755
index 5b0c45e..0000000
--- a/TC/utc/Makefile
+++ /dev/null
@@ -1,70 +0,0 @@
-ifeq ($(ARCH),target)
- PKG_CONFIG_PATH=/usr/lib/pkgconfig
- export PKG_CONFIG_PATH
- CC=arm-linux-gcc -Wall
- CXX=arm-linux-g++ -Wall
-else
- PKG_CONFIG_PATH=/usr/lib/pkgconfig
- export PKG_CONFIG_PATH
- CC=gcc -Wall
- CXX=gcc -Wall
-endif
-
-TS1 = utc_mm_file_create_tag_attrs_func
-TS2 = utc_mm_file_create_content_attrs_func
-TS3 = utc_mm_file_destroy_content_attrs_func
-TS4 = utc_mm_file_destroy_tag_attrs_func
-TS5 = utc_mm_file_get_stream_info_func
-TS6 = utc_mm_file_create_content_attrs_simple_func
-TS7 = utc_mm_file_create_content_attrs_from_memory_func
-TS8 = utc_mm_file_create_tag_attrs_from_memory_func
-TS9 = utc_mm_file_get_attrs_func
-
-LIBS = `pkg-config --libs mm-fileinfo glib-2.0`
-LIBS +=-L/usr/lib/:/usr/lib/pkgconfig
-LIBS +=$(TET_ROOT)/lib/tet3/tcm_s.o
-LIBS +=-L$(TET_ROOT)/lib/tet3 -ltcm_s
-LIBS +=-L$(TET_ROOT)/lib/tet3/ -lapi_s
-
-INCS = -I. `pkg-config --cflags mm-fileinfo glib-2.0`
-INCS += -I$(TET_ROOT)/inc/tet3
-INCS += -I/usr/include/mmf
-
-CFLAGS = $(INCS)
-CC += $(CFLAGS)
-LDFLAGS = $(LIBS)
-
-all : $(TS1) $(TS2) $(TS3) $(TS4) $(TS5) $(TS6) $(TS7) $(TS8) $(TS9)
-
-$(TS1): $(TS1).c
- $(CC) -o $(TS1) $(TS1).c $(LDFLAGS)
-
-$(TS2): $(TS2).c
- $(CC) -o $(TS2) $(TS2).c $(LDFLAGS)
-
-$(TS3): $(TS3).c
- $(CC) -o $(TS3) $(TS3).c $(LDFLAGS)
-
-$(TS4): $(TS4).c
- $(CC) -o $(TS4) $(TS4).c $(LDFLAGS)
-
-$(TS5): $(TS5).c
- $(CC) -o $(TS5) $(TS5).c $(LDFLAGS)
-
-$(TS6): $(TS6).c
- $(CC) -o $(TS6) $(TS6).c $(LDFLAGS)
-
-$(TS7): $(TS7).c
- $(CC) -o $(TS7) $(TS7).c $(LDFLAGS)
-
-$(TS8): $(TS8).c
- $(CC) -o $(TS8) $(TS8).c $(LDFLAGS)
-
-$(TS9): $(TS9).c
- $(CC) -o $(TS9) $(TS9).c $(LDFLAGS)
-
-clean:
- rm -rf *~ *.o $(TS1) $(TS2) $(TS3) $(TS4) $(TS5) $(TS6) $(TS7) $(TS8) $(TS9)
-
-
-
diff --git a/TC/utc/tslist b/TC/utc/tslist
deleted file mode 100755
index 4e77e0d..0000000
--- a/TC/utc/tslist
+++ /dev/null
@@ -1,9 +0,0 @@
-./utc_mm_file_create_tag_attrs_func
-./utc_mm_file_create_content_attrs_func
-./utc_mm_file_destroy_content_attrs_func
-./utc_mm_file_destroy_tag_attrs_func
-./utc_mm_file_get_stream_info_func
-./utc_mm_file_create_content_attrs_simple_func
-./utc_mm_file_create_content_attrs_from_memory_func
-./utc_mm_file_create_tag_attrs_from_memory_func
-./utc_mm_file_get_attrs_func \ No newline at end of file
diff --git a/TC/utc/utc_mm_file_create_content_attrs_from_memory_func.c b/TC/utc/utc_mm_file_create_content_attrs_from_memory_func.c
deleted file mode 100755
index 87db9bc..0000000
--- a/TC/utc/utc_mm_file_create_content_attrs_from_memory_func.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * libmm-fileinfo
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Haejeong Kim <backto.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/**
-* @ingroup MMF_FILEINFO_API
-* @addtogroup FILEINFO
-*/
-
-/**
-* @ingroup FILEINFO
-* @addtogroup UTS_MMF_FILEINFO Unit
-*/
-
-/**
-* @ingroup UTS_MMF_FILEINFO Unit
-* @addtogroup UTS_MMF_FILEINFO_GET_ATTRS_ Uts_Mmf_Fileinfo_Get_Content_Attrs_
-* @{
-*/
-
-/**
-* @file utc_mm_file_create_content_attrs.c
-* @brief This is a suit of unit test cases to test mm_file_create_content_attrs_from_memory() API function
-* @author Haejeong Kim <backto.kim@samsung.com>
-* @version Initial Creation Version 0.1
-* @date 2008.09.08
-* @last update 2011.01.20
-*/
-
-
-#include "utc_mm_fileinfo_common.h"
-
-
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Definitions of "uts_mmf_fileinfo_get_tag_attrs_from_memory"
-//-------------------------------------------------------------------------------------------------
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Declare the global variables and registers and Internal Funntions
-//-------------------------------------------------------------------------------------------------
-#define TEST_API "mm_file_create_content_attrs_from_memory"
-
-
-#define READ_FROM_FILE(FILE_PATH, data, size) \
-do{ \
- FILE * fp = fopen (FILE_PATH, "r"); \
- if (fp) { \
- fseek (fp, 0, SEEK_END); \
- size = ftell(fp); \
- fseek (fp, 0, SEEK_SET); \
- data = malloc (size); \
- fread (data, size, sizeof(char), fp); \
- fclose (fp); \
- dts_message ( __func__, "file size = %d", size ); \
- } \
-}while(0)
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-/* Initialize TCM data structures */
-
-
-struct tet_testlist tet_testlist[] = {
- {utc_mm_file_create_content_attrs_from_memory_func_01, 1},
- {utc_mm_file_create_content_attrs_from_memory_func_02, 2},
- {utc_mm_file_create_content_attrs_from_memory_func_03, 3},
- {NULL, 0}
-};
-
-
-
-/* Start up function for each test purpose */
-void startup ()
-{
-}
-
-/* Clean up function for each test purpose */
-void cleanup ()
-{
-}
-
-void utc_mm_file_create_content_attrs_from_memory_func_01()
-{
- int file_size = 0;
- unsigned char * buffer = NULL;
- MMHandleType content_attr = 0;
- int err = 0;
-
- /* Read file */
- READ_FROM_FILE(MEDIA_PATH, buffer, file_size);
-
- err =mm_file_create_content_attrs_from_memory( &content_attr, buffer, file_size, MM_FILE_FORMAT_MP3);
- dts_check_eq (TEST_API, err, MM_ERROR_NONE, "%x", err);
-
- if (buffer)
- free (buffer);
-
- return;
-}
-
-void utc_mm_file_create_content_attrs_from_memory_func_02()
-{
- int file_size = 0;
- unsigned char * buffer = NULL;
- MMHandleType content_attr = 0;
- int err = 0;
-
- /* Read file */
- READ_FROM_FILE(MEDIA_PATH, buffer, file_size);
-
- err =mm_file_create_content_attrs_from_memory( &content_attr, NULL, file_size, MM_FILE_FORMAT_MP3);
- dts_check_ne (TEST_API, err, MM_ERROR_NONE, "%x", err);
-
- if (buffer)
- free (buffer);
-
- return;
-}
-
-void utc_mm_file_create_content_attrs_from_memory_func_03()
-{
- int file_size = 0;
- unsigned char * buffer = NULL;
- int err = 0;
-
- /* Read file */
- READ_FROM_FILE(MEDIA_PATH, buffer, file_size);
-
- err =mm_file_create_content_attrs_from_memory( NULL, buffer, file_size, MM_FILE_FORMAT_MP3);
- dts_check_ne (TEST_API, err, MM_ERROR_NONE, "%x", err);
-
- if (buffer)
- free (buffer);
-
- return;
-}
-
-/** @} */
-
-
-
-
diff --git a/TC/utc/utc_mm_file_create_content_attrs_func.c b/TC/utc/utc_mm_file_create_content_attrs_func.c
deleted file mode 100755
index 773d287..0000000
--- a/TC/utc/utc_mm_file_create_content_attrs_func.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * libmm-fileinfo
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Haejeong Kim <backto.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/**
-* @ingroup MMF_FILEINFO_API
-* @addtogroup FILEINFO
-*/
-
-/**
-* @ingroup FILEINFO
-* @addtogroup UTS_MMF_FILEINFO Unit
-*/
-
-/**
-* @ingroup UTS_MMF_FILEINFO Unit
-* @addtogroup UTS_MMF_FILEINFO_GET_ATTRS_ Uts_Mmf_Fileinfo_Get_Content_Attrs_
-* @{
-*/
-
-/**
-* @file uts_mm_fileinfo_get_content_attrs.c
-* @brief This is a suit of unit test cases to test mm_file_get_content_attr() API function
-* @author Haejeong Kim <backto.kim@samsung.com>
-* @version Initial Creation Version 0.1
-* @date 2008.09.08
-* @last update 2011.01.20
-*/
-
-#include "utc_mm_fileinfo_common.h"
-
-
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Definitions of "uts_mmf_fileinfo_get_tag_attrs"
-//-------------------------------------------------------------------------------------------------
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Declare the global variables and registers and Internal Funntions
-//-------------------------------------------------------------------------------------------------
-#define TEST_API "mm_file_create_content_attrs"
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-/* Initialize TCM data structures */
-
-
-struct tet_testlist tet_testlist[] = {
- {utc_mm_file_create_content_attrs_func_01, 1},
- {utc_mm_file_create_content_attrs_func_02, 2},
- {NULL, 0}
-};
-
-/* Start up function for each test purpose */
-void startup ()
-{
-}
-
-/* Clean up function for each test purpose */
-void cleanup ()
-{
-}
-
-void utc_mm_file_create_content_attrs_func_01()
-{
- int err = 0;
- MMHandleType content_attrs;
-
- /* Get the content & tag attributes */
- err = mm_file_create_content_attrs(&content_attrs, MEDIA_PATH);
- dts_check_eq (TEST_API, err, MM_ERROR_NONE, "%x", err);
-
- return;
-}
-
-void utc_mm_file_create_content_attrs_func_02()
-{
- int err = 0;
-
- err = mm_file_create_content_attrs( NULL, MEDIA_PATH);
- dts_check_ne (TEST_API, err, MM_ERROR_NONE, "%x", err);
-
- return;
-}
-
-
-
-
-
-
-/** @} */
-
-
-
-
diff --git a/TC/utc/utc_mm_file_create_content_attrs_simple_func.c b/TC/utc/utc_mm_file_create_content_attrs_simple_func.c
deleted file mode 100755
index 6d859c3..0000000
--- a/TC/utc/utc_mm_file_create_content_attrs_simple_func.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * libmm-fileinfo
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Haejeong Kim <backto.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/**
-* @ingroup MMF_FILEINFO_API
-* @addtogroup FILEINFO
-*/
-
-/**
-* @ingroup FILEINFO
-* @addtogroup UTS_MMF_FILEINFO Unit
-*/
-
-/**
-* @ingroup UTS_MMF_FILEINFO Unit
-* @addtogroup UTS_MMF_FILEINFO_GET_CONTENT_ATTR_SIMPLE_ Uts_Mmf_Fileinfo_Get_Content_Attr_Simple_
-* @{
-*/
-
-/**
-* @file uts_mm_fileinfo_get_content_attr_simple.c
-* @brief This is a suit of unit test cases to test mm_file_get_content_attr_simple() API function
-* @author Haejeong Kim <backto.kim@samsung.com>
-* @version Initial Creation Version 0.1
-* @date 2008.09.08
-* @last update 2011.01.20
-*/
-
-
-#include "utc_mm_fileinfo_common.h"
-
-
-#define TEST_API "mm_file_create_content_attrs_simple"
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Definitions of "uts_mmf_fileinfo_get_stream_info"
-//-------------------------------------------------------------------------------------------------
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Declare the global variables and registers and Internal Funntions
-//-------------------------------------------------------------------------------------------------
-
-struct tet_testlist tet_testlist[] = {
- {utc_mm_file_create_content_attrs_simple_func_01, 1},
- {utc_mm_file_create_content_attrs_simple_func_02, 2},
- {utc_mm_file_create_content_attrs_simple_func_03, 3},
- {NULL, 0}
-};
-
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-/* Initialize TCM data structures */
-
-/* Start up function for each test purpose */
-void startup ()
-{
-}
-
-/* Clean up function for each test purpose */
-void cleanup ()
-{
-}
-
-void utc_mm_file_create_content_attrs_simple_func_01()
-{
- int err = 0 ;
- MMHandleType attrs;
-
- err = mm_file_create_content_attrs_simple(&attrs,MEDIA_PATH);
- dts_check_eq (TEST_API, err, MM_ERROR_NONE, "%x", err);
-
- return;
-}
-
-void utc_mm_file_create_content_attrs_simple_func_02()
-{
- int err = 0 ;
- MMHandleType attrs;
-
- err = mm_file_create_content_attrs_simple(&attrs,NULL);
- dts_check_ne (TEST_API, err, MM_ERROR_NONE, "%x", err);
-
- return;
-}
-
-void utc_mm_file_create_content_attrs_simple_func_03()
-{
- int err = 0 ;
-
- err = mm_file_create_content_attrs_simple(NULL,NULL);
- dts_check_ne (TEST_API, err, MM_ERROR_NONE, "%x", err);
-
- return;
-}
-
-
-
-
-/** @} */
-
-
-
-
diff --git a/TC/utc/utc_mm_file_create_tag_attrs_from_memory_func.c b/TC/utc/utc_mm_file_create_tag_attrs_from_memory_func.c
deleted file mode 100755
index ff22c19..0000000
--- a/TC/utc/utc_mm_file_create_tag_attrs_from_memory_func.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * libmm-fileinfo
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Haejeong Kim <backto.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/**
-* @ingroup MMF_FILEINFO_API
-* @addtogroup FILEINFO
-*/
-
-/**
-* @ingroup FILEINFO
-* @addtogroup UTS_MMF_FILEINFO Unit
-*/
-
-/**
-* @ingroup UTS_MMF_FILEINFO Unit
-* @addtogroup UTS_MMF_FILEINFO_GET_ATTRS_ Uts_Mmf_Fileinfo_Get_Tag_Attrs_From_Memory_
-* @{
-*/
-
-/**
-* @file uts_mm_fileinfo_get_tag_attrs_from_memory.c
-* @brief This is a suit of unit test cases to test mm_file_get_tag_attr_from_memory() API function
-* @author Haejeong Kim <backto.kim@samsung.com>
-* @version Initial Creation Version 0.1
-* @date 2008.09.08
-* @last update 2011.01.20
-*/
-
-#include "utc_mm_fileinfo_common.h"
-
-
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Definitions of "uts_mmf_fileinfo_get_tag_attrs_from_memory"
-//-------------------------------------------------------------------------------------------------
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Declare the global variables and registers and Internal Funntions
-//-------------------------------------------------------------------------------------------------
-
-#define TEST_API "mm_file_create_tag_attrs_from_memory"
-
-#define READ_FROM_FILE(FILE_PATH, data, size) \
-do{ \
- FILE * fp = fopen (FILE_PATH, "r"); \
- if (fp) { \
- fseek (fp, 0, SEEK_END); \
- size = ftell(fp); \
- fseek (fp, 0, SEEK_SET); \
- data = malloc (size); \
- fread (data, size, sizeof(char), fp); \
- fclose (fp); \
- dts_message ( __func__, "file size = %d", size ); \
- } \
-}while(0)
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-/* Initialize TCM data structures */
-
-
-struct tet_testlist tet_testlist[] = {
- {utc_mm_file_create_tag_attrs_from_memory_func_01, 1},
- {utc_mm_file_create_tag_attrs_from_memory_func_02, 2},
- {utc_mm_file_create_tag_attrs_from_memory_func_03, 3},
- {NULL, 0}
-};
-
-/* Start up function for each test purpose */
-void startup ()
-{
-}
-
-/* Clean up function for each test purpose */
-void cleanup ()
-{
-}
-
-void utc_mm_file_create_tag_attrs_from_memory_func_01()
-{
- int file_size = 0;
- unsigned char * buffer = NULL;
- MMHandleType tag_attr = 0;
- int err = 0;
-
- /* Read file */
- READ_FROM_FILE(MEDIA_PATH, buffer, file_size);
-
- err =mm_file_create_tag_attrs_from_memory( &tag_attr, buffer, file_size, MM_FILE_FORMAT_MP3);
- dts_check_eq (TEST_API, err, MM_ERROR_NONE, "%x", err);
-
- if (buffer)
- free (buffer);
-
- return;
-}
-
-void utc_mm_file_create_tag_attrs_from_memory_func_02()
-{
- int file_size = 0;
- unsigned char * buffer = NULL;
- MMHandleType tag_attr = 0;
- int err = 0;
-
- /* Read file */
- READ_FROM_FILE(MEDIA_PATH, buffer, file_size);
-
- err =mm_file_create_tag_attrs_from_memory( &tag_attr, NULL, file_size, MM_FILE_FORMAT_MP3);
- dts_check_ne (TEST_API, err, MM_ERROR_NONE, "%x", err);
-
- if (buffer)
- free (buffer);
-
- return;
-}
-
-void utc_mm_file_create_tag_attrs_from_memory_func_03()
-{
- int file_size = 0;
- unsigned char * buffer = NULL;
- int err = 0;
-
- /* Read file */
- READ_FROM_FILE(MEDIA_PATH, buffer, file_size);
-
- err =mm_file_create_tag_attrs_from_memory( NULL, buffer, file_size, MM_FILE_FORMAT_MP3);
- dts_check_ne (TEST_API, err, MM_ERROR_NONE, "%x", err);
-
- if (buffer)
- free (buffer);
-
- return;
-}
-
-
-/** @} */
-
-
-
-
diff --git a/TC/utc/utc_mm_file_create_tag_attrs_func.c b/TC/utc/utc_mm_file_create_tag_attrs_func.c
deleted file mode 100755
index 93e1733..0000000
--- a/TC/utc/utc_mm_file_create_tag_attrs_func.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * libmm-fileinfo
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Haejeong Kim <backto.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/**
-* @ingroup MMF_FILEINFO_API
-* @addtogroup FILEINFO
-*/
-
-/**
-* @ingroup FILEINFO
-* @addtogroup UTS_MMF_FILEINFO Unit
-*/
-
-/**
-* @ingroup UTS_MMF_FILEINFO Unit
-* @addtogroup UTS_MMF_FILEINFO_GET_ATTRS_ Uts_Mmf_Fileinfo_Get_Tag_Attrs_
-* @{
-*/
-
-/**
-* @file uts_mm_fileinfo_get_tag_attrs.c
-* @brief This is a suit of unit test cases to test mm_file_get_tag_attr() API function
-* @author Haejeong Kim <backto.kim@samsung.com>
-* @version Initial Creation Version 0.1
-* @date 2008.09.08
-* @last update 2011.01.20
-*/
-
-#include "utc_mm_fileinfo_common.h"
-
-
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Definitions of "uts_mmf_fileinfo_get_tag_attrs"
-//-------------------------------------------------------------------------------------------------
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Declare the global variables and registers and Internal Funntions
-//-------------------------------------------------------------------------------------------------
-
-#define TEST_API "mm_file_create_tag_attrs"
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-/* Initialize TCM data structures */
-
-
-struct tet_testlist tet_testlist[] = {
- {utc_mm_file_create_tag_attrs_func_01, 1},
- {utc_mm_file_create_tag_attrs_func_02, 2},
- {NULL, 0}
-};
-
-/* Start up function for each test purpose */
-void startup ()
-{
-}
-
-/* Clean up function for each test purpose */
-void cleanup ()
-{
-}
-
-void utc_mm_file_create_tag_attrs_func_01()
-{
- int err = 0;
- MMHandleType attrs;
-
- err = mm_file_create_tag_attrs(&attrs, MEDIA_PATH);
- dts_check_eq (TEST_API, err, MM_ERROR_NONE, "%x", err);
-
- return;
-}
-
-void utc_mm_file_create_tag_attrs_func_02()
-{
- int err = 0;
-
- err = mm_file_create_tag_attrs( NULL, MEDIA_PATH);
- dts_check_ne (TEST_API, err, MM_ERROR_NONE, "%x", err);
-
- return;
-}
-
-
-/** @} */
-
-
-
-
diff --git a/TC/utc/utc_mm_file_destroy_content_attrs_func.c b/TC/utc/utc_mm_file_destroy_content_attrs_func.c
deleted file mode 100755
index 44f6679..0000000
--- a/TC/utc/utc_mm_file_destroy_content_attrs_func.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * libmm-fileinfo
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Haejeong Kim <backto.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/**
-* @ingroup MMF_FILEINFO_API
-* @addtogroup FILEINFO
-*/
-
-/**
-* @ingroup FILEINFO
-* @addtogroup UTS_MMF_FILEINFO Unit
-*/
-
-/**
-* @ingroup UTS_MMF_FILEINFO Unit
-* @addtogroup UTS_MMF_FILEINFO_GET_ATTRS_ Uts_Mmf_Fileinfo_Get_Content_Attrs_
-* @{
-*/
-
-/**
-* @file utc_mm_fileinfo_free_content_attrs.c
-* @brief This is a suit of unit test cases to test mm_file_free_content_attr() API function
-* @author Haejeong Kim <backto.kim@samsung.com>
-* @version Initial Creation Version 0.1
-* @date 2008.09.08
-* @last update 2011.01.20
-*/
-
-
-#include "utc_mm_fileinfo_common.h"
-
-
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Definitions of "utc_mm_fileinfo_get_tag_attrs"
-//-------------------------------------------------------------------------------------------------
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Declare the global variables and registers and Internal Funntions
-//-------------------------------------------------------------------------------------------------
-
-#define TEST_API "mm_file_destroy_content_attrs"
-
-struct tet_testlist tet_testlist[] = {
- {utc_mm_file_destroy_content_attrs_func_01, 1},
- {utc_mm_file_destroy_content_attrs_func_02, 2},
- {NULL, 0}
-};
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-/* Initialize TCM data structures */
-/* Start up function for each test purpose */
-void startup ()
-{
-}
-
-/* Clean up function for each test purpose */
-void cleanup ()
-{
-}
-
-
-void utc_mm_file_destroy_content_attrs_func_01()
-{
- int err = 0 ;
- int ret1 = 0;
- MMHandleType attr;
-
- ret1 = mm_file_create_content_attrs(&attr, MEDIA_PATH);
- dts_check_eq ("mm_file_create_content_attrs", ret1, MM_ERROR_NONE, "%x", ret1);
-
- err = mm_file_destroy_content_attrs(attr);
- dts_check_eq (TEST_API, err, MM_ERROR_NONE, "%x", err);
-
- return;
-}
-
-void utc_mm_file_destroy_content_attrs_func_02()
-{
- int err = 0;
-
- err = mm_file_destroy_content_attrs(NULL);
- dts_check_ne (TEST_API, err, MM_ERROR_NONE, "%x", err);
-
- return;
-}
-
-
-
-
-
-
-/** @} */
-
-
-
-
diff --git a/TC/utc/utc_mm_file_destroy_tag_attrs_func.c b/TC/utc/utc_mm_file_destroy_tag_attrs_func.c
deleted file mode 100755
index a9c5520..0000000
--- a/TC/utc/utc_mm_file_destroy_tag_attrs_func.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * libmm-fileinfo
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Haejeong Kim <backto.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/**
-* @ingroup MMF_FILEINFO_API
-* @addtogroup FILEINFO
-*/
-
-/**
-* @ingroup FILEINFO
-* @addtogroup UTS_MMF_FILEINFO Unit
-*/
-
-/**
-* @ingroup UTS_MMF_FILEINFO Unit
-* @addtogroup UTS_MMF_FILEINFO_FREE_ATTRS_ Uts_Mmf_Fileinfo_Free_Tag_Attrs_
-* @{
-*/
-
-/**
-* @file uts_mm_fileinfo_free_tag_attrs.c
-* @brief This is a suit of unit test cases to test mm_file_free_tag_attr() API function
-* @author Haejeong Kim <backto.kim@samsung.com>
-* @version Initial Creation Version 0.1
-* @date 2008.09.08
-* @last update 2011.01.20
-*/
-
-
-#include "utc_mm_fileinfo_common.h"
-
-
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Definitions of "uts_mmf_fileinfo_free_tag_attrs"
-//-------------------------------------------------------------------------------------------------
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Declare the global variables and registers and Internal Funntions
-//-------------------------------------------------------------------------------------------------
-
-#define TEST_API "mm_file_destroy_tag_attrs"
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-/* Initialize TCM data structures */
-
-
-struct tet_testlist tet_testlist[] = {
- {utc_mm_file_destroy_tag_attrs_func_01, 1},
- {utc_mm_file_destroy_tag_attrs_func_02, 2},
- {NULL, 0}
-};
-
-/* Start up function for each test purpose */
-void startup ()
-{
-}
-
-/* Clean up function for each test purpose */
-void cleanup ()
-{
-}
-
-void utc_mm_file_destroy_tag_attrs_func_01()
-{
- int err = 0;
- int err1 = 0;
- MMHandleType attrs;
-
- err1 = mm_file_create_tag_attrs( &attrs, MEDIA_PATH);
- dts_check_eq ("mm_file_create_tag_attrs", err, MM_ERROR_NONE, "%x", err1);
-
- err = mm_file_destroy_tag_attrs(attrs);
- dts_check_eq (TEST_API, err, MM_ERROR_NONE, "%x", err);
-
- return;
-}
-
-void utc_mm_file_destroy_tag_attrs_func_02()
-{
- int err = 0;
-
- err = mm_file_destroy_tag_attrs(NULL);
- dts_check_ne (TEST_API, err, MM_ERROR_NONE, "%x", err);
-
- return;
-}
-
-
-
-
-
-
-/** @} */
-
-
-
-
diff --git a/TC/utc/utc_mm_file_get_attrs_func.c b/TC/utc/utc_mm_file_get_attrs_func.c
deleted file mode 100755
index 40314df..0000000
--- a/TC/utc/utc_mm_file_get_attrs_func.c
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
- * libmm-fileinfo
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Haejeong Kim <backto.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/**
-* @ingroup MMF_FILEINFO_API
-* @addtogroup FILEINFO
-*/
-
-/**
-* @ingroup FILEINFO
-* @addtogroup UTS_MMF_FILEINFO Unit
-*/
-
-/**
-* @ingroup UTS_MMF_FILEINFO Unit
-* @addtogroup UTS_MMF_FILEINFO_FREE_ATTRS_ Uts_Mmf_Fileinfo_Free_Tag_Attrs_
-* @{
-*/
-
-/**
-* @file uts_mm_fileinfo_free_tag_attrs.c
-* @brief This is a suit of unit test cases to test mm_file_free_tag_attr() API function
-* @author Haejeong Kim <backto.kim@samsung.com>
-* @version Initial Creation Version 0.1
-* @date 2008.09.08
-* @last update 2011.01.20
-*/
-
-
-#include "utc_mm_fileinfo_common.h"
-
-
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Definitions of "uts_mmf_fileinfo_free_tag_attrs"
-//-------------------------------------------------------------------------------------------------
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Declare the global variables and registers and Internal Funntions
-//-------------------------------------------------------------------------------------------------
-#define TEST_API "mm_file_get_attrs"
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-/* Initialize TCM data structures */
-
-
-struct tet_testlist tet_testlist[] = {
- {utc_mm_file_get_attrs_func_01, 1},
- {utc_mm_file_get_attrs_func_02, 2},
- {utc_mm_file_get_attrs_func_03, 3},
- {utc_mm_file_get_attrs_func_04, 4},
- {NULL, 0}
-};
-
-typedef struct _ContentContext {
- int duration;
- int video_codec;
- int video_bitrate;
- int video_fps;
- int video_w;
- int video_h;
- int video_track_id;
- int video_track_num;
- int audio_codec;
- int audio_bitrate;
- int audio_channel;
- int audio_samplerate;
- int audio_track_id;
- int audio_track_num;
-}ContentContext_t;
-
-typedef struct _TagContext {
- char artist[100];
- int artist_len;
- char title[100];
- int title_len;
- char album[100];
- int album_len;
- char album_artist[100];
- int album_artist_len;
- char genre[100];
- int genre_len;
- char author[100];
- int author_len;
- char date[100]; //int
- int date_len;
-}TagContext_t;
-
-/* Start up function for each test purpose */
-void startup ()
-{
-}
-
-/* Clean up function for each test purpose */
-void cleanup ()
-{
-}
-
-void utc_mm_file_get_attrs_func_01()
-{
- int err = 0 ;
- int ret1 = 0;
- MMHandleType attr;
- ContentContext_t ccontent;
- char *err_attr_name = NULL;
-
- ret1 = mm_file_create_content_attrs(&attr, MEDIA_PATH);
- dts_check_eq ("mm_file_create_content_attrs", ret1, MM_ERROR_NONE, "%x", ret1);
-
- memset (&ccontent, 0, sizeof (ContentContext_t));
- err = mm_file_get_attrs(attr, &err_attr_name,
- MM_FILE_CONTENT_AUDIO_CODEC, &ccontent.audio_codec,
- MM_FILE_CONTENT_AUDIO_SAMPLERATE, &ccontent.audio_samplerate,
- MM_FILE_CONTENT_AUDIO_BITRATE, &ccontent.audio_bitrate,
- MM_FILE_CONTENT_AUDIO_CHANNELS, &ccontent.audio_channel,
- MM_FILE_CONTENT_AUDIO_TRACK_INDEX, &ccontent.audio_track_id,
- MM_FILE_CONTENT_AUDIO_TRACK_COUNT, &ccontent.audio_track_num,
- NULL);
-
- dts_check_eq (TEST_API, err, MM_ERROR_NONE, "%x", err);
- dts_check_eq (TEST_API, ccontent.audio_codec, 2);
- dts_check_eq (TEST_API, ccontent.audio_samplerate, 44100);
- dts_check_eq (TEST_API, ccontent.audio_bitrate, 128000);
- dts_check_eq (TEST_API, ccontent.audio_channel, 2);
- dts_check_eq (TEST_API, ccontent.audio_track_id, 0);
- dts_check_eq (TEST_API, ccontent.audio_track_num, 1);
-
- mm_file_destroy_content_attrs(attr);
-
- if (err_attr_name)
- free (err_attr_name);
-
- return;
-}
-
-void utc_mm_file_get_attrs_func_02()
-{
- int err = 0 ;
- int ret1 = 0;
- MMHandleType attr;
- ContentContext_t ccontent;
-
- char *err_attr_name = NULL;
-
- ret1 = mm_file_create_content_attrs(&attr, MEDIA_PATH);
- dts_check_eq ("mm_file_create_conten_attrs", ret1, MM_ERROR_NONE, "%x", ret1);
-
- memset (&ccontent, 0, sizeof (ContentContext_t));
- err = mm_file_get_attrs(attr, &err_attr_name, "content-audio-codecs" , &ccontent.audio_codec, NULL);
-
- dts_check_ne (TEST_API, err, MM_ERROR_NONE, "%x, %s", err, err_attr_name);
-
- mm_file_destroy_content_attrs(attr);
-
- if (err_attr_name)
- free (err_attr_name);
-
- return;
-}
-
-void utc_mm_file_get_attrs_func_03()
-{
- int err = 0 ;
- int ret1 = 0;
- MMHandleType attr;
- TagContext_t ctag;
- char *err_attr_name = NULL;
-
- ret1 = mm_file_create_tag_attrs(&attr, MEDIA_PATH);
- dts_check_eq ("mm_file_create_tag_attrs", ret1, MM_ERROR_NONE, "%x", ret1);
-
- memset (&ctag, 0, sizeof (TagContext_t));
- err = mm_file_get_attrs( attr,
- &err_attr_name,
- MM_FILE_TAG_ARTIST, &ctag.artist, &ctag.artist_len,
- MM_FILE_TAG_ALBUM, &ctag.album, &ctag.album_len,
- MM_FILE_TAG_ALBUM_ARTIST, &ctag.album_artist, &ctag.album_artist_len,
- MM_FILE_TAG_TITLE, &ctag.title, &ctag.title_len,
- MM_FILE_TAG_GENRE, &ctag.genre, &ctag.genre_len,
- MM_FILE_TAG_AUTHOR, &ctag.author, &ctag.author_len,
- MM_FILE_TAG_DATE, &ctag.date, &ctag.date_len,
- NULL);
-
- dts_check_eq (TEST_API, err, MM_ERROR_NONE, "%x", err);
- dts_check_str_eq (TEST_API, ctag.artist, "Samsung");
- dts_check_str_eq (TEST_API, ctag.album, "Samsung");
- dts_check_str_eq (TEST_API, ctag.title, "Over the horizon");
- dts_check_str_eq (TEST_API, ctag.genre, "Rock");
- dts_check_str_eq (TEST_API, ctag.date, "2011");
-
- mm_file_destroy_tag_attrs(attr);
-
- if (err_attr_name)
- free (err_attr_name);
-
- return;
-}
-
-void utc_mm_file_get_attrs_func_04()
-{
- int err = 0 ;
- int ret1 = 0;
- MMHandleType attr;
- TagContext_t ctag;
- char *err_attr_name = NULL;
-
- ret1 = mm_file_create_tag_attrs(&attr, MEDIA_PATH);
- dts_check_eq ("mm_file_create_tag_attrs", ret1, MM_ERROR_NONE, "%x", ret1);
-
- memset (&ctag, 0, sizeof (TagContext_t));
- err = mm_file_get_attrs( attr, &err_attr_name, "tag-artists" , &ctag.artist, &ctag.artist_len, NULL);
- dts_check_ne (TEST_API, err, MM_ERROR_NONE, "%x, %s", err, err_attr_name);
-
- mm_file_destroy_tag_attrs(attr);
-
- if (err_attr_name)
- free (err_attr_name);
-
- return;
-}
-
-
-
-
-
-
-/** @} */
-
-
-
-
diff --git a/TC/utc/utc_mm_file_get_stream_info_func.c b/TC/utc/utc_mm_file_get_stream_info_func.c
deleted file mode 100755
index 7fb16e5..0000000
--- a/TC/utc/utc_mm_file_get_stream_info_func.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * libmm-fileinfo
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Haejeong Kim <backto.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/**
-* @ingroup MMF_FILEINFO_API
-* @addtogroup FILEINFO
-*/
-
-/**
-* @ingroup FILEINFO
-* @addtogroup UTS_MMF_FILEINFO Unit
-*/
-
-/**
-* @ingroup UTS_MMF_FILEINFO Unit
-* @addtogroup UTS_MMF_FILEINFO_GET_STREAM_INFO_ Uts_Mmf_Fileinfo_Get_Stream_Info_
-* @{
-*/
-
-/**
-* @file uts_mm_fileinfo_get_stream_info.c
-* @brief This is a suit of unit test cases to test mm_file_get_stream_info() API function
-* @author Haejeong Kim <backto.kim@samsung.com>
-* @version Initial Creation Version 0.1
-* @date 2008.09.08
-* @last update 2011.01.20
-*/
-
-#include "utc_mm_fileinfo_common.h"
-
-
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Definitions of "uts_mmf_fileinfo_get_stream_info"
-//-------------------------------------------------------------------------------------------------
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Declare the global variables and registers and Internal Funntions
-//-------------------------------------------------------------------------------------------------
-
-#define TEST_API "mm_file_get_stream_info"
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-/* Initialize TCM data structures */
-
-
-struct tet_testlist tet_testlist[] = {
- {utc_mm_file_get_stream_info_func_01, 1},
- {utc_mm_file_get_stream_info_func_02, 2},
- {utc_mm_file_get_stream_info_func_03, 3},
- {utc_mm_file_get_stream_info_func_04, 4},
- {NULL, 0}
-};
-
-/* Start up function for each test purpose */
-void startup ()
-{
-}
-
-/* Clean up function for each test purpose */
-void cleanup ()
-{
-}
-
-void utc_mm_file_get_stream_info_func_01()
-{
- int err = 0 ;
- int audio_stream_num = 0;
- int video_stream_num = 0;
-
- err = mm_file_get_stream_info(MEDIA_PATH2,&audio_stream_num,&video_stream_num);
- dts_check_eq (TEST_API, err, MM_ERROR_NONE, "%x", err);
- dts_check_eq (TEST_API, audio_stream_num, 1);
- dts_check_eq (TEST_API, video_stream_num, 1);
-
- return;
-}
-
-void utc_mm_file_get_stream_info_func_02()
-{
- int err = 0 ;
- int audio_stream_num = 0;
- int video_stream_num = 0;
-
- err = mm_file_get_stream_info(MEDIA_PATH,&audio_stream_num,&video_stream_num);
- dts_check_eq (TEST_API, err, MM_ERROR_NONE, "%x", err);
- dts_check_eq (TEST_API, audio_stream_num, 1);
- dts_check_eq (TEST_API, video_stream_num, 0);
-}
-
-void utc_mm_file_get_stream_info_func_03()
-{
- int err = 0 ;
- int video_stream_num =0;
-
- err = mm_file_get_stream_info(MEDIA_PATH2, NULL, &video_stream_num);
- dts_check_ne (TEST_API, err, MM_ERROR_NONE, "%x", err);
-}
-
-void utc_mm_file_get_stream_info_func_04()
-{
- int err = 0 ;
-
- err = mm_file_get_stream_info(MEDIA_PATH2,NULL,NULL);
- dts_check_ne (TEST_API, err, MM_ERROR_NONE, "%x", err);
-}
-
-void utc_mm_file_get_stream_info_func_05()
-{
- int err = 0 ;
-
- err = mm_file_get_stream_info(NULL,NULL,NULL);
- dts_check_ne (TEST_API, err, MM_ERROR_NONE, "%x", err);
-}
-
-
-
-
-/** @} */
-
-
-
-
diff --git a/TC/utc/utc_mm_fileinfo_common.h b/TC/utc/utc_mm_fileinfo_common.h
deleted file mode 100755
index 0e04e6b..0000000
--- a/TC/utc/utc_mm_fileinfo_common.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * libmm-fileinfo
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Haejeong Kim <backto.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/**
-* @ingroup MMF_FILEINFO_API
-* @addtogroup FILE INFO
-*/
-
-/**
-* @ingroup FILEINFO
-* @addtogroup UTS_MMF_FILEINFO Unit
-*/
-
-/**
-* @ingroup UTS_MMF_FILEINFO Unit
-* @addtogroup UTS_MMF_FILEINFO_COMMON_
-* @{
-*/
-
-/**
-* @file uts_mmf_fileinfo_common.h
-* @brief This is a suit of unit test cases to test mm-fileinfo API
-* @author Haejeong Kim <backto.kim@samsung.com>
-* @version Initial Creation Version 0.1
-* @date 2008.09.08
-* @last update 2011.01.20
-*/
-#ifndef __UTS_MMF_FILEINFO_COMMON_H_
-#define __UTS_MMF_FILEINFO_COMMON_H_
-
-#include <mm_file.h>
-#include <mm_message.h>
-#include <mm_error.h>
-#include <mm_types.h>
-#include <string.h>
-#include <tet_api.h>
-#include <unistd.h>
-
-#define MEDIA_PATH "/opt/media/Music/Over the horizon.mp3"
-#define MEDIA_PATH2 "/opt/media/Videos/Helicopter.mp4"
-
-
-void startup();
-void cleanup();
-
-void (*tet_startup)() = startup;
-void (*tet_cleanup)() = cleanup;
-
-void utc_mm_file_create_tag_attrs_func_01();
-void utc_mm_file_create_tag_attrs_func_02();
-
-void utc_mm_file_create_content_attrs_func_01();
-void utc_mm_file_create_content_attrs_func_02();
-
-void utc_mm_file_destroy_content_attrs_func_01();
-void utc_mm_file_destroy_content_attrs_func_02();
-
-void utc_mm_file_destroy_tag_attrs_func_01();
-void utc_mm_file_destroy_tag_attrs_func_02();
-
-void utc_mm_file_get_stream_info_func_01();
-void utc_mm_file_get_stream_info_func_02();
-void utc_mm_file_get_stream_info_func_03();
-void utc_mm_file_get_stream_info_func_04();
-
-void utc_mm_file_create_content_attrs_simple_func_01();
-void utc_mm_file_create_content_attrs_simple_func_02();
-void utc_mm_file_create_content_attrs_simple_func_03();
-
-void utc_mm_file_create_content_attrs_from_memory_func_01();
-void utc_mm_file_create_content_attrs_from_memory_func_02();
-void utc_mm_file_create_content_attrs_from_memory_func_03();
-
-void utc_mm_file_create_tag_attrs_from_memory_func_01();
-void utc_mm_file_create_tag_attrs_from_memory_func_02();
-void utc_mm_file_create_tag_attrs_from_memory_func_03();
-
-void utc_mm_file_get_attrs_func_01();
-void utc_mm_file_get_attrs_func_02();
-void utc_mm_file_get_attrs_func_03();
-void utc_mm_file_get_attrs_func_04();
-
-#endif //__UTS_MMF_FILEINFO_COMMON_H_
-
-
diff --git a/codecs/ffmpeg/Makefile.am b/codecs/ffmpeg/Makefile.am
index 8fbbb10..7834722 100755
--- a/codecs/ffmpeg/Makefile.am
+++ b/codecs/ffmpeg/Makefile.am
@@ -20,5 +20,5 @@ libmmfile_codecs_la_CFLAGS = -I$(srcdir)/include \
libmmfile_codecs_la_LIBADD = $(MMCOMMON_LIBS) \
$(top_builddir)/utils/libmmfile_utils.la
-libmmfile_codecs_la_CFLAGS += $(MMLOG_CFLAGS) -DMMF_LOG_OWNER=0x040 -DMMF_DEBUG_PREFIX=\"MMF-FILE-CODEC-FFMPEG\"
-libmmfile_codecs_la_LIBADD += $(MMLOG_LIBS)
+libmmfile_codecs_la_CFLAGS += $(DLOG_CFLAGS)
+libmmfile_codecs_la_LIBADD += $(DLOG_LIBS)
diff --git a/codecs/ffmpeg/include/mm_file_codec_private.h b/codecs/ffmpeg/include/mm_file_codec_private.h
index 8ba471d..5f31c5e 100755
--- a/codecs/ffmpeg/include/mm_file_codec_private.h
+++ b/codecs/ffmpeg/include/mm_file_codec_private.h
@@ -30,7 +30,7 @@ extern "C" {
#include "mm_file_codecs.h"
/* open functions list */
-int mmfile_codec_open_dummy (MMFileCodecContext *codecContext, MMFileCodecFrame *input);
+int mmfile_codec_open_dummy(MMFileCodecContext *codecContext, MMFileCodecFrame *input);
#ifdef __cplusplus
diff --git a/codecs/ffmpeg/mm_file_codec_dummy.c b/codecs/ffmpeg/mm_file_codec_dummy.c
index 989084d..e03c960 100755
--- a/codecs/ffmpeg/mm_file_codec_dummy.c
+++ b/codecs/ffmpeg/mm_file_codec_dummy.c
@@ -24,7 +24,7 @@
#include <mm_error.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_codec_private.h"
#include "mm_file_codec_dummy.h"
@@ -34,36 +34,36 @@
/* plugin manadatory API */
-int mmfile_codec_decode_dummy (MMFileCodecContext *codecContext, MMFileCodecFrame *output);
-int mmfile_codec_close_dummy (MMFileCodecContext *codecContext);
+int mmfile_codec_decode_dummy(MMFileCodecContext *codecContext, MMFileCodecFrame *output);
+int mmfile_codec_close_dummy(MMFileCodecContext *codecContext);
EXPORT_API
-int mmfile_codec_open_dummy (MMFileCodecContext *codecContext, MMFileCodecFrame *input)
+int mmfile_codec_open_dummy(MMFileCodecContext *codecContext, MMFileCodecFrame *input)
{
- debug_warning ("called mmfile_codec_open_dummy\n");
-
- codecContext->Decode = mmfile_codec_decode_dummy;
- codecContext->Close = mmfile_codec_close_dummy;
-
- return MMFILE_CODEC_SUCCESS;
+ debug_warning("called mmfile_codec_open_dummy\n");
+
+ codecContext->Decode = mmfile_codec_decode_dummy;
+ codecContext->Close = mmfile_codec_close_dummy;
+
+ return MMFILE_CODEC_SUCCESS;
}
EXPORT_API
-int mmfile_codec_decode_dummy (MMFileCodecContext *codecContext, MMFileCodecFrame *output)
+int mmfile_codec_decode_dummy(MMFileCodecContext *codecContext, MMFileCodecFrame *output)
{
- debug_warning ("called mmfile_codec_decode_dummy\n");
- return MMFILE_CODEC_SUCCESS;
+ debug_warning("called mmfile_codec_decode_dummy\n");
+ return MMFILE_CODEC_SUCCESS;
}
EXPORT_API
-int mmfile_codec_close_dummy (MMFileCodecContext *codecContext)
+int mmfile_codec_close_dummy(MMFileCodecContext *codecContext)
{
- debug_warning ("called mmfile_codec_close_dummy\n");
+ debug_warning("called mmfile_codec_close_dummy\n");
+
+ codecContext->Decode = NULL;
+ codecContext->Close = NULL;
- codecContext->Decode = NULL;
- codecContext->Close = NULL;
-
- return MMFILE_CODEC_SUCCESS;
+ return MMFILE_CODEC_SUCCESS;
}
diff --git a/codecs/ffmpeg/mm_file_codecs.c b/codecs/ffmpeg/mm_file_codecs.c
index dc9cc89..34f6fe0 100755
--- a/codecs/ffmpeg/mm_file_codecs.c
+++ b/codecs/ffmpeg/mm_file_codecs.c
@@ -22,112 +22,106 @@
#include <string.h>
#include <stdlib.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
#include "mm_file_codec_private.h"
int (*OpenVideoCodecFunc[MM_VIDEO_CODEC_NUM]) (MMFileCodecContext *codecContext, MMFileCodecFrame *input) = {
- mmfile_codec_open_dummy, /* NONE */
- mmfile_codec_open_dummy, /* WMV */
- mmfile_codec_open_dummy, /* H261 */
- mmfile_codec_open_dummy, /* H262 */
- mmfile_codec_open_dummy, /* H263 */
- mmfile_codec_open_dummy, /* H263V2 */
- mmfile_codec_open_dummy, /* H263V3 */
- mmfile_codec_open_dummy, /* H264 */
- mmfile_codec_open_dummy, /* H26L */
- mmfile_codec_open_dummy, /* MJPEG */
- mmfile_codec_open_dummy, /* MPEG1 */
- mmfile_codec_open_dummy, /* MPEG2 */
- mmfile_codec_open_dummy, /* MPEG4 */
- mmfile_codec_open_dummy, /* MPEG4_SIMPLE */
- mmfile_codec_open_dummy, /* MPEG4_ADV_SIMPE */
- mmfile_codec_open_dummy, /* MPEG4_MAIN */
- mmfile_codec_open_dummy, /* MPEG4_CORE */
- mmfile_codec_open_dummy, /* MPEG4_ACE */
- mmfile_codec_open_dummy, /* MPEG4_ARTS */
- mmfile_codec_open_dummy, /* MPEG4_AVC */
- mmfile_codec_open_dummy, /* REAL */
- mmfile_codec_open_dummy, /* VC1 */
- mmfile_codec_open_dummy, /* AVS */
- mmfile_codec_open_dummy, /* CINEPAK */
- mmfile_codec_open_dummy, /* INDEO */
- mmfile_codec_open_dummy, /* THEORA */
- mmfile_codec_open_dummy, /* DIVX */
- mmfile_codec_open_dummy, /* XVID */
+ mmfile_codec_open_dummy, /* NONE */
+ mmfile_codec_open_dummy, /* WMV */
+ mmfile_codec_open_dummy, /* H261 */
+ mmfile_codec_open_dummy, /* H262 */
+ mmfile_codec_open_dummy, /* H263 */
+ mmfile_codec_open_dummy, /* H263V2 */
+ mmfile_codec_open_dummy, /* H263V3 */
+ mmfile_codec_open_dummy, /* H264 */
+ mmfile_codec_open_dummy, /* H26L */
+ mmfile_codec_open_dummy, /* MJPEG */
+ mmfile_codec_open_dummy, /* MPEG1 */
+ mmfile_codec_open_dummy, /* MPEG2 */
+ mmfile_codec_open_dummy, /* MPEG4 */
+ mmfile_codec_open_dummy, /* MPEG4_SIMPLE */
+ mmfile_codec_open_dummy, /* MPEG4_ADV_SIMPE */
+ mmfile_codec_open_dummy, /* MPEG4_MAIN */
+ mmfile_codec_open_dummy, /* MPEG4_CORE */
+ mmfile_codec_open_dummy, /* MPEG4_ACE */
+ mmfile_codec_open_dummy, /* MPEG4_ARTS */
+ mmfile_codec_open_dummy, /* MPEG4_AVC */
+ mmfile_codec_open_dummy, /* REAL */
+ mmfile_codec_open_dummy, /* VC1 */
+ mmfile_codec_open_dummy, /* AVS */
+ mmfile_codec_open_dummy, /* CINEPAK */
+ mmfile_codec_open_dummy, /* INDEO */
+ mmfile_codec_open_dummy, /* THEORA */
+ mmfile_codec_open_dummy, /* DIVX */
+ mmfile_codec_open_dummy, /* XVID */
};
EXPORT_API
-int mmfile_codec_open (MMFileCodecContext **codecContext, int codecType, int codecId, MMFileCodecFrame *input)
+int mmfile_codec_open(MMFileCodecContext **codecContext, int codecType, int codecId, MMFileCodecFrame *input)
{
- MMFileCodecContext *codecObject = NULL;
- int ret = 0;
-
- if (codecId <= MM_VIDEO_CODEC_NONE || codecId >= MM_VIDEO_CODEC_NUM || MMFILE_VIDEO_DECODE != codecType || NULL == input)
- {
- debug_error ("error: invalid params\n");
- return MMFILE_CODEC_FAIL;
- }
-
- if (NULL == OpenVideoCodecFunc[codecId])
- {
- debug_error ("error: Not implemented \n");
- return MMFILE_CODEC_FAIL;
- }
-
- codecObject = mmfile_malloc (sizeof (MMFileCodecContext));
- if (NULL == codecObject)
- {
- debug_error ("error: mmfile_malloc fail for codecObject\n");
- return MMFILE_CODEC_FAIL;
- }
-
- *codecContext = codecObject;
-
- ret = OpenVideoCodecFunc[codecId](codecObject, input);
- if (MMFILE_CODEC_FAIL == ret)
- {
- debug_error ("error: init fail about video codec\n");
- ret = MMFILE_CODEC_FAIL;
- goto exception;
- }
-
- return MMFILE_CODEC_SUCCESS;
+ MMFileCodecContext *codecObject = NULL;
+ int ret = 0;
+
+ if (codecId <= MM_VIDEO_CODEC_NONE || codecId >= MM_VIDEO_CODEC_NUM || MMFILE_VIDEO_DECODE != codecType || NULL == input) {
+ debug_error("error: invalid params\n");
+ return MMFILE_CODEC_FAIL;
+ }
+
+ if (NULL == OpenVideoCodecFunc[codecId]) {
+ debug_error("error: Not implemented \n");
+ return MMFILE_CODEC_FAIL;
+ }
+
+ codecObject = mmfile_malloc(sizeof(MMFileCodecContext));
+ if (NULL == codecObject) {
+ debug_error("error: mmfile_malloc fail for codecObject\n");
+ return MMFILE_CODEC_FAIL;
+ }
+
+ *codecContext = codecObject;
+
+ ret = OpenVideoCodecFunc[codecId](codecObject, input);
+ if (MMFILE_CODEC_FAIL == ret) {
+ debug_error("error: init fail about video codec\n");
+ ret = MMFILE_CODEC_FAIL;
+ goto exception;
+ }
+
+ return MMFILE_CODEC_SUCCESS;
exception:
- if (codecObject) mmfile_free(codecObject);
-
- return ret;
+ if (codecObject) mmfile_free(codecObject);
+
+ return ret;
}
EXPORT_API
-int mmfile_codec_decode (MMFileCodecContext *codecContext, MMFileCodecFrame *output)
+int mmfile_codec_decode(MMFileCodecContext *codecContext, MMFileCodecFrame *output)
{
- if (NULL == codecContext || NULL == codecContext->Decode )
- {
- debug_error ("error: invalid params\n");
- return MMFILE_CODEC_FAIL;
- }
+ if (NULL == codecContext || NULL == codecContext->Decode) {
+ debug_error("error: invalid params\n");
+ return MMFILE_CODEC_FAIL;
+ }
- return codecContext->Decode (codecContext, output);
+ return codecContext->Decode(codecContext, output);
}
EXPORT_API
-int mmfile_codec_close (MMFileCodecContext *codecContext)
+int mmfile_codec_close(MMFileCodecContext *codecContext)
{
- if (NULL == codecContext || NULL == codecContext->Close)
- {
- debug_error ("error: invalid params\n");
- return MMFILE_CODEC_FAIL;
- }
-
- codecContext->Close (codecContext);
-
- if (codecContext->Decode) codecContext->Decode = NULL;
- if (codecContext->Close) codecContext->Close = NULL;
- if (codecContext->privateData) mmfile_free(codecContext->privateData);
- mmfile_free (codecContext);
-
- return MMFILE_CODEC_SUCCESS;
+ if (NULL == codecContext || NULL == codecContext->Close) {
+ debug_error("error: invalid params\n");
+ return MMFILE_CODEC_FAIL;
+ }
+
+ codecContext->Close(codecContext);
+
+ if (codecContext->Decode) codecContext->Decode = NULL;
+ if (codecContext->Close) codecContext->Close = NULL;
+ if (codecContext->privateData) mmfile_free(codecContext->privateData);
+ mmfile_free(codecContext);
+
+ return MMFILE_CODEC_SUCCESS;
}
diff --git a/configure b/configure
deleted file mode 100755
index d78bd3e..0000000
--- a/configure
+++ /dev/null
@@ -1,16873 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for libmm-fileinfo 0.0.1.
-#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
-esac
-
-fi
-
-
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-as_nl='
-'
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- { (exit 1); exit 1; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# CDPATH.
-$as_unset CDPATH
-
-
-if test "x$CONFIG_SHELL" = x; then
- if (eval ":") 2>/dev/null; then
- as_have_required=yes
-else
- as_have_required=no
-fi
-
- if test $as_have_required = yes && (eval ":
-(as_func_return () {
- (exit \$1)
-}
-as_func_success () {
- as_func_return 0
-}
-as_func_failure () {
- as_func_return 1
-}
-as_func_ret_success () {
- return 0
-}
-as_func_ret_failure () {
- return 1
-}
-
-exitcode=0
-if as_func_success; then
- :
-else
- exitcode=1
- echo as_func_success failed.
-fi
-
-if as_func_failure; then
- exitcode=1
- echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
- :
-else
- exitcode=1
- echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
- exitcode=1
- echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
- :
-else
- exitcode=1
- echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0) || { (exit 1); exit 1; }
-
-(
- as_lineno_1=\$LINENO
- as_lineno_2=\$LINENO
- test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
- test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
- :
-else
- as_candidate_shells=
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- case $as_dir in
- /*)
- for as_base in sh bash ksh sh5; do
- as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
- done;;
- esac
-done
-IFS=$as_save_IFS
-
-
- for as_shell in $as_candidate_shells $SHELL; do
- # Try only shells that exist, to save several forks.
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { ("$as_shell") 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-_ASEOF
-}; then
- CONFIG_SHELL=$as_shell
- as_have_required=yes
- if { "$as_shell" 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-(as_func_return () {
- (exit $1)
-}
-as_func_success () {
- as_func_return 0
-}
-as_func_failure () {
- as_func_return 1
-}
-as_func_ret_success () {
- return 0
-}
-as_func_ret_failure () {
- return 1
-}
-
-exitcode=0
-if as_func_success; then
- :
-else
- exitcode=1
- echo as_func_success failed.
-fi
-
-if as_func_failure; then
- exitcode=1
- echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
- :
-else
- exitcode=1
- echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
- exitcode=1
- echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = "$1" ); then
- :
-else
- exitcode=1
- echo positional parameters were not saved.
-fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
- break
-fi
-
-fi
-
- done
-
- if test "x$CONFIG_SHELL" != x; then
- for as_var in BASH_ENV ENV
- do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
- done
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-
- if test $as_have_required = no; then
- echo This script requires a shell more modern than all the
- echo shells that I found on your system. Please install a
- echo modern shell, or manually run the script under such a
- echo shell if you do have one.
- { (exit 1); exit 1; }
-fi
-
-
-fi
-
-fi
-
-
-
-(eval "as_func_return () {
- (exit \$1)
-}
-as_func_success () {
- as_func_return 0
-}
-as_func_failure () {
- as_func_return 1
-}
-as_func_ret_success () {
- return 0
-}
-as_func_ret_failure () {
- return 1
-}
-
-exitcode=0
-if as_func_success; then
- :
-else
- exitcode=1
- echo as_func_success failed.
-fi
-
-if as_func_failure; then
- exitcode=1
- echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
- :
-else
- exitcode=1
- echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
- exitcode=1
- echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
- :
-else
- exitcode=1
- echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0") || {
- echo No shell found that supports shell functions.
- echo Please tell autoconf@gnu.org about your system,
- echo including any error possibly output before this
- echo message
-}
-
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line after each line using $LINENO; the second 'sed'
- # does the real work. The second script uses 'N' to pair each
- # line-number line with the line containing $LINENO, and appends
- # trailing '-' during substitution so that $LINENO is not a special
- # case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # scripts with optimization help from Paolo Bonzini. Blame Lee
- # E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
- case `echo 'x\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- *) ECHO_C='\c';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$lt_ECHO in
-X*--fallback-echo)
- # Remove one level of quotation (which was required for Make).
- ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','`
- ;;
-esac
-
-ECHO=${lt_ECHO-echo}
-if test "X$1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
-elif test "X$1" = X--fallback-echo; then
- # Avoid inline document here, it may be left over
- :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
- # Yippee, $ECHO works!
- :
-else
- # Restart under the correct shell.
- exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
- # used as fallback echo
- shift
- cat <<_LT_EOF
-$*
-_LT_EOF
- exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$lt_ECHO"; then
- if test "X${echo_test_string+set}" != Xset; then
- # find a string as large as possible, as long as the shell can cope with it
- for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
- # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
- if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
- { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
- then
- break
- fi
- done
- fi
-
- if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
- echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- :
- else
- # The Solaris, AIX, and Digital Unix default echo programs unquote
- # backslashes. This makes it impossible to quote backslashes using
- # echo "$something" | sed 's/\\/\\\\/g'
- #
- # So, first we look for a working echo in the user's PATH.
-
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for dir in $PATH /usr/ucb; do
- IFS="$lt_save_ifs"
- if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
- test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
- echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- ECHO="$dir/echo"
- break
- fi
- done
- IFS="$lt_save_ifs"
-
- if test "X$ECHO" = Xecho; then
- # We didn't find a better echo, so look for alternatives.
- if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
- echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- # This shell has a builtin print -r that does the trick.
- ECHO='print -r'
- elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
- test "X$CONFIG_SHELL" != X/bin/ksh; then
- # If we have ksh, try running configure again with it.
- ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
- export ORIGINAL_CONFIG_SHELL
- CONFIG_SHELL=/bin/ksh
- export CONFIG_SHELL
- exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
- else
- # Try using printf.
- ECHO='printf %s\n'
- if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
- echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- # Cool, printf works
- :
- elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
- test "X$echo_testing_string" = 'X\t' &&
- echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
- export CONFIG_SHELL
- SHELL="$CONFIG_SHELL"
- export SHELL
- ECHO="$CONFIG_SHELL $0 --fallback-echo"
- elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
- test "X$echo_testing_string" = 'X\t' &&
- echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- ECHO="$CONFIG_SHELL $0 --fallback-echo"
- else
- # maybe with a smaller string...
- prev=:
-
- for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
- if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
- then
- break
- fi
- prev="$cmd"
- done
-
- if test "$prev" != 'sed 50q "$0"'; then
- echo_test_string=`eval $prev`
- export echo_test_string
- exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
- else
- # Oops. We lost completely, so just stick with echo.
- ECHO=echo
- fi
- fi
- fi
- fi
- fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-lt_ECHO=$ECHO
-if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
- lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
-fi
-
-
-
-
-exec 7<&0 </dev/null 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Identity of this package.
-PACKAGE_NAME='libmm-fileinfo'
-PACKAGE_TARNAME='libmm-fileinfo'
-PACKAGE_VERSION='0.0.1'
-PACKAGE_STRING='libmm-fileinfo 0.0.1'
-PACKAGE_BUGREPORT=''
-
-ac_unique_file="mm_file.c"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='SHELL
-PATH_SEPARATOR
-PACKAGE_NAME
-PACKAGE_TARNAME
-PACKAGE_VERSION
-PACKAGE_STRING
-PACKAGE_BUGREPORT
-exec_prefix
-prefix
-program_transform_name
-bindir
-sbindir
-libexecdir
-datarootdir
-datadir
-sysconfdir
-sharedstatedir
-localstatedir
-includedir
-oldincludedir
-docdir
-infodir
-htmldir
-dvidir
-pdfdir
-psdir
-libdir
-localedir
-mandir
-DEFS
-ECHO_C
-ECHO_N
-ECHO_T
-LIBS
-build_alias
-host_alias
-target_alias
-INSTALL_PROGRAM
-INSTALL_SCRIPT
-INSTALL_DATA
-am__isrc
-CYGPATH_W
-PACKAGE
-VERSION
-ACLOCAL
-AUTOCONF
-AUTOMAKE
-AUTOHEADER
-MAKEINFO
-install_sh
-STRIP
-INSTALL_STRIP_PROGRAM
-mkdir_p
-AWK
-SET_MAKE
-am__leading_dot
-AMTAR
-am__tar
-am__untar
-CC
-CFLAGS
-LDFLAGS
-CPPFLAGS
-ac_ct_CC
-EXEEXT
-OBJEXT
-DEPDIR
-am__include
-am__quote
-AMDEP_TRUE
-AMDEP_FALSE
-AMDEPBACKSLASH
-CCDEPMODE
-am__fastdepCC_TRUE
-am__fastdepCC_FALSE
-LIBTOOL
-build
-build_cpu
-build_vendor
-build_os
-host
-host_cpu
-host_vendor
-host_os
-SED
-GREP
-EGREP
-FGREP
-LD
-DUMPBIN
-ac_ct_DUMPBIN
-NM
-LN_S
-AR
-RANLIB
-lt_ECHO
-DSYMUTIL
-NMEDIT
-LIPO
-OTOOL
-OTOOL64
-CPP
-LIBOBJS
-PKG_CONFIG
-MMCOMMON_CFLAGS
-MMCOMMON_LIBS
-MMLOG_CFLAGS
-MMLOG_LIBS
-GLIB_CFLAGS
-GLIB_LIBS
-GTK_CFLAGS
-GTK_LIBS
-AVCODEC_CFLAGS
-AVCODEC_LIBS
-AVUTIL_CFLAGS
-AVUTIL_LIBS
-AVFORMAT_CFLAGS
-AVFORMAT_LIBS
-DRMSERVICE_CFLAGS
-DRMSERVICE_LIBS
-USE_DRM_TRUE
-USE_DRM_FALSE
-USE_TESTMODE_TRUE
-USE_TESTMODE_FALSE
-USE_DUMP_TRUE
-USE_DUMP_FALSE
-LTLIBOBJS'
-ac_subst_files=''
- ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP
-PKG_CONFIG
-MMCOMMON_CFLAGS
-MMCOMMON_LIBS
-MMLOG_CFLAGS
-MMLOG_LIBS
-GLIB_CFLAGS
-GLIB_LIBS
-GTK_CFLAGS
-GTK_LIBS
-AVCODEC_CFLAGS
-AVCODEC_LIBS
-AVUTIL_CFLAGS
-AVUTIL_LIBS
-AVFORMAT_CFLAGS
-AVFORMAT_LIBS
-DRMSERVICE_CFLAGS
-DRMSERVICE_LIBS'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
- case $ac_option in
- *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *) ac_optarg=yes ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_dashdash$ac_option in
- --)
- ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
- | --dataroo | --dataro | --datar)
- ac_prev=datarootdir ;;
- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
- eval enable_$ac_feature=no ;;
-
- -docdir | --docdir | --docdi | --doc | --do)
- ac_prev=docdir ;;
- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
-
- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
- ac_prev=dvidir ;;
- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
- eval enable_$ac_feature=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
- ac_prev=htmldir ;;
- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
- | --ht=*)
- htmldir=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localedir | --localedir | --localedi | --localed | --locale)
- ac_prev=localedir ;;
- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
- ac_prev=pdfdir ;;
- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
-
- -psdir | --psdir | --psdi | --psd | --ps)
- ac_prev=psdir ;;
- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
- eval with_$ac_package=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
- eval with_$ac_package=no ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; }
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
- { (exit 1); exit 1; }; }
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute directory names.
-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
- datadir sysconfdir sharedstatedir localstatedir includedir \
- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
-do
- eval ac_val=\$$ac_var
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
- { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; }
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- { echo "$as_me: error: Working directory cannot be determined" >&2
- { (exit 1); exit 1; }; }
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- { echo "$as_me: error: pwd does not report name of working directory" >&2
- { (exit 1); exit 1; }; }
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then the parent directory.
- ac_confdir=`$as_dirname -- "$0" ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$0" : 'X\(//\)[^/]' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$0" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
- { (exit 1); exit 1; }; }
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
- { (exit 1); exit 1; }; }
- pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
- srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
- eval ac_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_env_${ac_var}_value=\$${ac_var}
- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures libmm-fileinfo 0.0.1 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --infodir=DIR info documentation [DATAROOTDIR/info]
- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
- --mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/libmm-fileinfo]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of libmm-fileinfo 0.0.1:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors
- --enable-shared[=PKGS] build shared libraries [default=yes]
- --enable-static[=PKGS] build static libraries [default=yes]
- --enable-fast-install[=PKGS]
- optimize for fast installation [default=yes]
- --disable-libtool-lock avoid locking (might break parallel builds)
- --enable-drm using drm
- --enable-testmode using testmode
- --enable-dump using dump
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-pic try to use only PIC/non-PIC objects [default=use
- both]
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
- you have headers in a nonstandard directory <include dir>
- CPP C preprocessor
- PKG_CONFIG path to pkg-config utility
- MMCOMMON_CFLAGS
- C compiler flags for MMCOMMON, overriding pkg-config
- MMCOMMON_LIBS
- linker flags for MMCOMMON, overriding pkg-config
- MMLOG_CFLAGS
- C compiler flags for MMLOG, overriding pkg-config
- MMLOG_LIBS linker flags for MMLOG, overriding pkg-config
- GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config
- GLIB_LIBS linker flags for GLIB, overriding pkg-config
- GTK_CFLAGS C compiler flags for GTK, overriding pkg-config
- GTK_LIBS linker flags for GTK, overriding pkg-config
- AVCODEC_CFLAGS
- C compiler flags for AVCODEC, overriding pkg-config
- AVCODEC_LIBS
- linker flags for AVCODEC, overriding pkg-config
- AVUTIL_CFLAGS
- C compiler flags for AVUTIL, overriding pkg-config
- AVUTIL_LIBS linker flags for AVUTIL, overriding pkg-config
- AVFORMAT_CFLAGS
- C compiler flags for AVFORMAT, overriding pkg-config
- AVFORMAT_LIBS
- linker flags for AVFORMAT, overriding pkg-config
- DRMSERVICE_CFLAGS
- C compiler flags for DRMSERVICE, overriding pkg-config
- DRMSERVICE_LIBS
- linker flags for DRMSERVICE, overriding pkg-config
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d "$ac_dir" || continue
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
- cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
- if test -f "$ac_srcdir/configure.gnu"; then
- echo &&
- $SHELL "$ac_srcdir/configure.gnu" --help=recursive
- elif test -f "$ac_srcdir/configure"; then
- echo &&
- $SHELL "$ac_srcdir/configure" --help=recursive
- else
- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi || ac_status=$?
- cd "$ac_pwd" || { ac_status=$?; break; }
- done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
- cat <<\_ACEOF
-libmm-fileinfo configure 0.0.1
-generated by GNU Autoconf 2.61
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by libmm-fileinfo $as_me 0.0.1, which was
-generated by GNU Autoconf 2.61. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- echo "PATH: $as_dir"
-done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
- 2)
- ac_configure_args1="$ac_configure_args1 '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- ac_configure_args="$ac_configure_args '$ac_arg'"
- ;;
- esac
- done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- *) $as_unset $ac_var ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------------- ##
-## File substitutions. ##
-## ------------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- echo "$as_me: caught signal $ac_signal"
- echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -n "$CONFIG_SITE"; then
- set x "$CONFIG_SITE"
-elif test "x$prefix" != xNONE; then
- set x "$prefix/share/config.site" "$prefix/etc/config.site"
-else
- set x "$ac_default_prefix/share/config.site" \
- "$ac_default_prefix/etc/config.site"
-fi
-shift
-for ac_site_file
-do
- if test -r "$ac_site_file"; then
- { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special
- # files actually), so we avoid doing that.
- if test -f "$cache_file"; then
- { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
-echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
-echo "$as_me: current value: $ac_new_val" >&2;}
- ac_cache_corrupted=:
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-ac_config_headers="$ac_config_headers config.h"
-
-am__api_version='1.10'
-
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
- if test -f "$ac_dir/install-sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f "$ac_dir/install.sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f "$ac_dir/shtool"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
-
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
- ./ | .// | /cC/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- done
- done
- ;;
-esac
-done
-IFS=$as_save_IFS
-
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
-fi
-{ echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5
-echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; }
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftest.file`
- fi
- rm -f conftest.file
- if test "$*" != "X $srcdir/configure conftest.file" \
- && test "$*" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" >&5
-echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- test "$2" = conftest.file
- )
-then
- # Ok.
- :
-else
- { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
-Check your system clock" >&5
-echo "$as_me: error: newly created file is older than distributed files!
-Check your system clock" >&2;}
- { (exit 1); exit 1; }; }
-fi
-{ echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-test "$program_prefix" != NONE &&
- program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $. echo might interpret backslashes.
-# By default was `s,x,x', remove it if useless.
-cat <<\_ACEOF >conftest.sed
-s/[\\$]/&&/g;s/;s,x,x,$//
-_ACEOF
-program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
-rm -f conftest.sed
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
-echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
-fi
-
-{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
-echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; }
-if test -z "$MKDIR_P"; then
- if test "${ac_cv_path_mkdir+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in mkdir gmkdir; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
- 'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
- break 3;;
- esac
- done
- done
-done
-IFS=$as_save_IFS
-
-fi
-
- if test "${ac_cv_path_mkdir+set}" = set; then
- MKDIR_P="$ac_cv_path_mkdir -p"
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for MKDIR_P within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- test -d ./--version && rmdir ./--version
- MKDIR_P="$ac_install_sh -d"
- fi
-fi
-{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5
-echo "${ECHO_T}$MKDIR_P" >&6; }
-
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
- [\\/$]* | ?:[\\/]*) ;;
- */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
-for ac_prog in gawk mawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_AWK="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- { echo "$as_me:$LINENO: result: $AWK" >&5
-echo "${ECHO_T}$AWK" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
- test -n "$AWK" && break
-done
-
-{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
-set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- SET_MAKE=
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- am__isrc=' -I$(srcdir)'
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
-echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
- { (exit 1); exit 1; }; }
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE='libmm-fileinfo'
- VERSION='0.0.1'
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_STRIP="strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-# Always define AMTAR for backward compatibility.
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
-
-
-
-
-
-
-
-# Checks for programs.
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_CC="gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compiler --version >&5") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compiler -v >&5") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compiler -V >&5") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-#
-# List of possible output files, starting from the most likely.
-# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
-# only as a last resort. b.out is created by i960 compilers.
-ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
-#
-# The IRIX 6 linker writes into existing files which may not be
-# executable, retaining their permissions. Remove them first so a
-# subsequent execution test works.
-ac_rmfiles=
-for ac_file in $ac_files
-do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
- * ) ac_rmfiles="$ac_rmfiles $ac_file";;
- esac
-done
-rm -f $ac_rmfiles
-
-if { (ac_try="$ac_link_default"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link_default") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile. We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
- then :; else
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- fi
- # We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an `-o'
- # argument, so we may need to know it at that point already.
- # Even if this section looks crufty: it has the advantage of
- # actually working.
- break;;
- * )
- break;;
- esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
- ac_file=''
-fi
-
-{ echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6; }
-if test -z "$ac_file"; then
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
- if { ac_try='./$ac_file'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
- fi
- fi
-fi
-{ echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6; }
-
-{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- break;;
- * ) break;;
- esac
-done
-else
- { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-{ echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }
-if test "${ac_cv_objext+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_compiler_gnu=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_compiler_gnu=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_prog_cc_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- CFLAGS=""
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_prog_cc_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_prog_cc_c89=$ac_arg
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6; } ;;
- xno)
- { echo "$as_me:$LINENO: result: unsupported" >&5
-echo "${ECHO_T}unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo done
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
-echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
- am__include=include
- am__quote=
- _am_result=GNU
-fi
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
- am__include=.include
- am__quote="\""
- _am_result=BSD
- fi
-fi
-
-
-{ echo "$as_me:$LINENO: result: $_am_result" >&5
-echo "${ECHO_T}$_am_result" >&6; }
-rm -f confinc confmf
-
-# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then
- enableval=$enable_dependency_tracking;
-fi
-
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
-fi
- if test "x$enable_dependency_tracking" != xno; then
- AMDEP_TRUE=
- AMDEP_FALSE='#'
-else
- AMDEP_TRUE='#'
- AMDEP_FALSE=
-fi
-
-
-
-depcc="$CC" am_compiler_list=
-
-{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- case $depmode in
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- none) break ;;
- esac
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this.
- if depmode=$depmode \
- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-case `pwd` in
- *\ * | *\ *)
- { echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
-esac
-
-
-
-macro_version='2.2.4'
-macro_revision='1.2976'
-
-
-
-
-
-
-
-
-
-
-
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
-echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
- { (exit 1); exit 1; }; }
-
-{ echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
-if test "${ac_cv_build+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
- ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
- { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
- { (exit 1); exit 1; }; }
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
-echo "$as_me: error: invalid value of canonical build" >&2;}
- { (exit 1); exit 1; }; };;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
-if test "${ac_cv_host+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "x$host_alias" = x; then
- ac_cv_host=$ac_cv_build
-else
- ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
-echo "$as_me: error: invalid value of canonical host" >&2;}
- { (exit 1); exit 1; }; };;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
-echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; }
-if test "${ac_cv_path_SED+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
- for ac_i in 1 2 3 4 5 6 7; do
- ac_script="$ac_script$as_nl$ac_script"
- done
- echo "$ac_script" | sed 99q >conftest.sed
- $as_unset ac_script || ac_script=
- # Extract the first word of "sed gsed" to use in msg output
-if test -z "$SED"; then
-set dummy sed gsed; ac_prog_name=$2
-if test "${ac_cv_path_SED+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_path_SED_found=false
-# Loop through the user's path and test for each of PROGNAME-LIST
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
- # Check for GNU ac_path_SED and select it if it is found.
- # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
- ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
- ac_count=0
- echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- echo '' >> "conftest.nl"
- "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- ac_count=`expr $ac_count + 1`
- if test $ac_count -gt ${ac_path_SED_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_SED="$ac_path_SED"
- ac_path_SED_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-
- $ac_path_SED_found && break 3
- done
-done
-
-done
-IFS=$as_save_IFS
-
-
-fi
-
-SED="$ac_cv_path_SED"
-if test -z "$SED"; then
- { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in \$PATH" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in \$PATH" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-else
- ac_cv_path_SED=$SED
-fi
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5
-echo "${ECHO_T}$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
- rm -f conftest.sed
-
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-
-
-
-
-
-
-
-
-
-
-
-{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
-echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # Extract the first word of "grep ggrep" to use in msg output
-if test -z "$GREP"; then
-set dummy grep ggrep; ac_prog_name=$2
-if test "${ac_cv_path_GREP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_path_GREP_found=false
-# Loop through the user's path and test for each of PROGNAME-LIST
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
- # Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- echo 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- ac_count=`expr $ac_count + 1`
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-
- $ac_path_GREP_found && break 3
- done
-done
-
-done
-IFS=$as_save_IFS
-
-
-fi
-
-GREP="$ac_cv_path_GREP"
-if test -z "$GREP"; then
- { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-else
- ac_cv_path_GREP=$GREP
-fi
-
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
-echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- # Extract the first word of "egrep" to use in msg output
-if test -z "$EGREP"; then
-set dummy egrep; ac_prog_name=$2
-if test "${ac_cv_path_EGREP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_path_EGREP_found=false
-# Loop through the user's path and test for each of PROGNAME-LIST
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
- # Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- echo 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- ac_count=`expr $ac_count + 1`
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-
- $ac_path_EGREP_found && break 3
- done
-done
-
-done
-IFS=$as_save_IFS
-
-
-fi
-
-EGREP="$ac_cv_path_EGREP"
-if test -z "$EGREP"; then
- { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-else
- ac_cv_path_EGREP=$EGREP
-fi
-
-
- fi
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
-echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ echo "$as_me:$LINENO: checking for fgrep" >&5
-echo $ECHO_N "checking for fgrep... $ECHO_C" >&6; }
-if test "${ac_cv_path_FGREP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
- then ac_cv_path_FGREP="$GREP -F"
- else
- # Extract the first word of "fgrep" to use in msg output
-if test -z "$FGREP"; then
-set dummy fgrep; ac_prog_name=$2
-if test "${ac_cv_path_FGREP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_path_FGREP_found=false
-# Loop through the user's path and test for each of PROGNAME-LIST
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in fgrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
- # Check for GNU ac_path_FGREP and select it if it is found.
- # Check for GNU $ac_path_FGREP
-case `"$ac_path_FGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
-*)
- ac_count=0
- echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- echo 'FGREP' >> "conftest.nl"
- "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- ac_count=`expr $ac_count + 1`
- if test $ac_count -gt ${ac_path_FGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_FGREP="$ac_path_FGREP"
- ac_path_FGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-
- $ac_path_FGREP_found && break 3
- done
-done
-
-done
-IFS=$as_save_IFS
-
-
-fi
-
-FGREP="$ac_cv_path_FGREP"
-if test -z "$FGREP"; then
- { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-else
- ac_cv_path_FGREP=$FGREP
-fi
-
-
- fi
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5
-echo "${ECHO_T}$ac_cv_path_FGREP" >&6; }
- FGREP="$ac_cv_path_FGREP"
-
-
-test -z "$GREP" && GREP=grep
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
- withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | ?:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- { echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
-else
- { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
-fi
-if test "${lt_cv_path_LD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- { echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
- { (exit 1); exit 1; }; }
-{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-
-
-{ echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5
-echo $ECHO_N "checking for BSD- or MS-compatible name lister (nm)... $ECHO_C" >&6; }
-if test "${lt_cv_path_NM+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/$lt_tmp_nm"
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
- */dev/null* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
- done
- : ${lt_cv_path_NM=no}
-fi
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
-echo "${ECHO_T}$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
- NM="$lt_cv_path_NM"
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$ac_tool_prefix"; then
- for ac_prog in "dumpbin -symbols" "link -dump -symbols"
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_DUMPBIN+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$DUMPBIN"; then
- ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-DUMPBIN=$ac_cv_prog_DUMPBIN
-if test -n "$DUMPBIN"; then
- { echo "$as_me:$LINENO: result: $DUMPBIN" >&5
-echo "${ECHO_T}$DUMPBIN" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
- test -n "$DUMPBIN" && break
- done
-fi
-if test -z "$DUMPBIN"; then
- ac_ct_DUMPBIN=$DUMPBIN
- for ac_prog in "dumpbin -symbols" "link -dump -symbols"
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_DUMPBIN"; then
- ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-if test -n "$ac_ct_DUMPBIN"; then
- { echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5
-echo "${ECHO_T}$ac_ct_DUMPBIN" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
- test -n "$ac_ct_DUMPBIN" && break
-done
-
- if test "x$ac_ct_DUMPBIN" = x; then
- DUMPBIN=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- DUMPBIN=$ac_ct_DUMPBIN
- fi
-fi
-
-
- if test "$DUMPBIN" != ":"; then
- NM="$DUMPBIN"
- fi
-fi
-test -z "$NM" && NM=nm
-
-
-
-
-
-
-{ echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5
-echo $ECHO_N "checking the name lister ($NM) interface... $ECHO_C" >&6; }
-if test "${lt_cv_nm_interface+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:4322: $ac_compile\"" >&5)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&5
- (eval echo "\"\$as_me:4325: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&5
- (eval echo "\"\$as_me:4328: output\"" >&5)
- cat conftest.out >&5
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5
-echo "${ECHO_T}$lt_cv_nm_interface" >&6; }
-
-{ echo "$as_me:$LINENO: checking whether ln -s works" >&5
-echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
- { echo "$as_me:$LINENO: result: no, using $LN_S" >&5
-echo "${ECHO_T}no, using $LN_S" >&6; }
-fi
-
-# find the maximum length of command line arguments
-{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
-echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; }
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- i=0
- teststring="ABCD"
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8 ; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
- = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
-
-fi
-
-if test -n $lt_cv_sys_max_cmd_len ; then
- { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
-echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; }
-else
- { echo "$as_me:$LINENO: result: none" >&5
-echo "${ECHO_T}none" >&6; }
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-
-
-
-
-
-: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-
-{ echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5
-echo $ECHO_N "checking whether the shell understands some XSI constructs... $ECHO_C" >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
- = c,a/b,, \
- && eval 'test $(( 1 + 1 )) -eq 2 \
- && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
- && xsi_shell=yes
-{ echo "$as_me:$LINENO: result: $xsi_shell" >&5
-echo "${ECHO_T}$xsi_shell" >&6; }
-
-
-{ echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5
-echo $ECHO_N "checking whether the shell understands \"+=\"... $ECHO_C" >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
- >/dev/null 2>&1 \
- && lt_shell_append=yes
-{ echo "$as_me:$LINENO: result: $lt_shell_append" >&5
-echo "${ECHO_T}$lt_shell_append" >&6; }
-
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
-else
- lt_unset=false
-fi
-
-
-
-
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
-
-
-
-
-
-
-
-
-
-{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
-echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; }
-if test "${lt_cv_ld_reload_flag+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_ld_reload_flag='-r'
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
-echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-
-{ echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
-echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; }
-if test "${lt_cv_deplibs_check_method+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[4-9]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[45]*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- if ( file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix[3-9]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-openbsd*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
-echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; }
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_AR="${ac_tool_prefix}ar"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- { echo "$as_me:$LINENO: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AR"; then
- ac_ct_AR=$AR
- # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_AR"; then
- ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_AR="ar"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
- { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
-echo "${ECHO_T}$ac_ct_AR" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
- if test "x$ac_ct_AR" = x; then
- AR="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- AR=$ac_ct_AR
- fi
-else
- AR="$ac_cv_prog_AR"
-fi
-
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-
-
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_STRIP="strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-test -z "$STRIP" && STRIP=:
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-test -z "$RANLIB" && RANLIB=:
-
-
-
-
-
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
-echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; }
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[BCDT]'
- ;;
-cygwin* | mingw* | pw32*)
- symcode='[ABCDGISTW]'
- ;;
-hpux*)
- if test "$host_cpu" = ia64; then
- symcode='[ABCDEGRST]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[BCDEGRST]'
- ;;
-osf*)
- symcode='[BCDEGQRST]'
- ;;
-solaris*)
- symcode='[BDRT]'
- ;;
-sco3.2v5*)
- symcode='[DT]'
- ;;
-sysv4.2uw2*)
- symcode='[DT]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[ABDT]'
- ;;
-sysv4)
- symcode='[DFNSTU]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function
- # and D for any global variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK '"\
-" {last_section=section; section=\$ 3};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-" s[1]~/^[@?]/{print s[1], s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx"
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
- (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
- cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols. */
-const struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_save_LIBS="$LIBS"
- lt_save_CFLAGS="$CFLAGS"
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
- if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
- LIBS="$lt_save_LIBS"
- CFLAGS="$lt_save_CFLAGS"
- else
- echo "cannot find nm_test_func in $nlist" >&5
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&5
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
- fi
- else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- { echo "$as_me:$LINENO: result: failed" >&5
-echo "${ECHO_T}failed" >&6; }
-else
- { echo "$as_me:$LINENO: result: ok" >&5
-echo "${ECHO_T}ok" >&6; }
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
- enableval=$enable_libtool_lock;
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '#line 5439 "configure"' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_i386"
- ;;
- ppc64-*linux*|powerpc64-*linux*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- ppc*-*linux*|powerpc*-*linux*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
-echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; }
-if test "${lt_cv_cc_needs_belf+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- lt_cv_cc_needs_belf=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- lt_cv_cc_needs_belf=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
-echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; }
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-sparc*-*solaris*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*) LD="${LD-ld} -m elf64_sparc" ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-
-need_locks="$enable_libtool_lock"
-
-
- case $host_os in
- rhapsody* | darwin*)
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_DSYMUTIL+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$DSYMUTIL"; then
- ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-DSYMUTIL=$ac_cv_prog_DSYMUTIL
-if test -n "$DSYMUTIL"; then
- { echo "$as_me:$LINENO: result: $DSYMUTIL" >&5
-echo "${ECHO_T}$DSYMUTIL" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DSYMUTIL"; then
- ac_ct_DSYMUTIL=$DSYMUTIL
- # Extract the first word of "dsymutil", so it can be a program name with args.
-set dummy dsymutil; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_DSYMUTIL"; then
- ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
-if test -n "$ac_ct_DSYMUTIL"; then
- { echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5
-echo "${ECHO_T}$ac_ct_DSYMUTIL" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
- if test "x$ac_ct_DSYMUTIL" = x; then
- DSYMUTIL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- DSYMUTIL=$ac_ct_DSYMUTIL
- fi
-else
- DSYMUTIL="$ac_cv_prog_DSYMUTIL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_NMEDIT+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$NMEDIT"; then
- ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-NMEDIT=$ac_cv_prog_NMEDIT
-if test -n "$NMEDIT"; then
- { echo "$as_me:$LINENO: result: $NMEDIT" >&5
-echo "${ECHO_T}$NMEDIT" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_NMEDIT"; then
- ac_ct_NMEDIT=$NMEDIT
- # Extract the first word of "nmedit", so it can be a program name with args.
-set dummy nmedit; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_NMEDIT"; then
- ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_NMEDIT="nmedit"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
-if test -n "$ac_ct_NMEDIT"; then
- { echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5
-echo "${ECHO_T}$ac_ct_NMEDIT" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
- if test "x$ac_ct_NMEDIT" = x; then
- NMEDIT=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- NMEDIT=$ac_ct_NMEDIT
- fi
-else
- NMEDIT="$ac_cv_prog_NMEDIT"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
-set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_LIPO+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$LIPO"; then
- ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-LIPO=$ac_cv_prog_LIPO
-if test -n "$LIPO"; then
- { echo "$as_me:$LINENO: result: $LIPO" >&5
-echo "${ECHO_T}$LIPO" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_LIPO"; then
- ac_ct_LIPO=$LIPO
- # Extract the first word of "lipo", so it can be a program name with args.
-set dummy lipo; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_LIPO"; then
- ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_LIPO="lipo"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
-if test -n "$ac_ct_LIPO"; then
- { echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5
-echo "${ECHO_T}$ac_ct_LIPO" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
- if test "x$ac_ct_LIPO" = x; then
- LIPO=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- LIPO=$ac_ct_LIPO
- fi
-else
- LIPO="$ac_cv_prog_LIPO"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_OTOOL+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$OTOOL"; then
- ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL=$ac_cv_prog_OTOOL
-if test -n "$OTOOL"; then
- { echo "$as_me:$LINENO: result: $OTOOL" >&5
-echo "${ECHO_T}$OTOOL" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL"; then
- ac_ct_OTOOL=$OTOOL
- # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_OTOOL"; then
- ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_OTOOL="otool"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-if test -n "$ac_ct_OTOOL"; then
- { echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5
-echo "${ECHO_T}$ac_ct_OTOOL" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL" = x; then
- OTOOL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- OTOOL=$ac_ct_OTOOL
- fi
-else
- OTOOL="$ac_cv_prog_OTOOL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_OTOOL64+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$OTOOL64"; then
- ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL64=$ac_cv_prog_OTOOL64
-if test -n "$OTOOL64"; then
- { echo "$as_me:$LINENO: result: $OTOOL64" >&5
-echo "${ECHO_T}$OTOOL64" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL64"; then
- ac_ct_OTOOL64=$OTOOL64
- # Extract the first word of "otool64", so it can be a program name with args.
-set dummy otool64; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_OTOOL64"; then
- ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_OTOOL64="otool64"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-if test -n "$ac_ct_OTOOL64"; then
- { echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5
-echo "${ECHO_T}$ac_ct_OTOOL64" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL64" = x; then
- OTOOL64=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- OTOOL64=$ac_ct_OTOOL64
- fi
-else
- OTOOL64="$ac_cv_prog_OTOOL64"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { echo "$as_me:$LINENO: checking for -single_module linker flag" >&5
-echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6; }
-if test "${lt_cv_apple_cc_single_mod+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_apple_cc_single_mod=no
- if test -z "${LT_MULTI_MODULE}"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&5
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5
-echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6; }
- { echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5
-echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6; }
-if test "${lt_cv_ld_exported_symbols_list+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- lt_cv_ld_exported_symbols_list=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- lt_cv_ld_exported_symbols_list=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5
-echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6; }
- case $host_os in
- rhapsody* | darwin1.[012])
- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
- darwin1.*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- darwin*) # darwin 5.x on
- # if running on 10.5 or later, the deployment target defaults
- # to the OS version, if on x86, and 10.4, the deployment
- # target defaults to 10.4. Don't you love it?
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- 10.[012]*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- 10.*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- esac
- ;;
- esac
- if test "$lt_cv_apple_cc_single_mod" = "yes"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- if test "$DSYMUTIL" != ":"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if test "${ac_cv_prog_CPP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-{ echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- :
-else
- { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_header_stdc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_header_stdc=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-for ac_header in dlfcn.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-# Set options
-
-
-
- enable_dlopen=no
-
-
- enable_win32_dll=no
-
-
- # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then
- enableval=$enable_shared; p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_shared=yes
-fi
-
-
-
-
-
-
-
-
-
- # Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then
- enableval=$enable_static; p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_static=yes
-fi
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then
- withval=$with_pic; pic_mode="$withval"
-else
- pic_mode=default
-fi
-
-
-test -z "$pic_mode" && pic_mode=default
-
-
-
-
-
-
-
- # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then
- enableval=$enable_fast_install; p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_fast_install=yes
-fi
-
-
-
-
-
-
-
-
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-test -z "$LN_S" && LN_S="ln -s"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-{ echo "$as_me:$LINENO: checking for objdir" >&5
-echo $ECHO_N "checking for objdir... $ECHO_C" >&6; }
-if test "${lt_cv_objdir+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
-echo "${ECHO_T}$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
-echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/${ac_tool_prefix}file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-
-
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- { echo "$as_me:$LINENO: checking for file" >&5
-echo $ECHO_N "checking for file... $ECHO_C" >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
- else
- MAGIC_CMD=:
- fi
-fi
-
- fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
-
-lt_save_CC="$CC"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-if test -n "$compiler"; then
-
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
- lt_prog_compiler_no_builtin_flag=' -fno-builtin'
-
- { echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_prog_compiler_rtti_exceptions=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="-fno-rtti -fno-exceptions"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:7286: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:7290: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_rtti_exceptions=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
- lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
- :
-fi
-
-fi
-
-
-
-
-
-
- lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
-
- if test "$GCC" = yes; then
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_static='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- lt_prog_compiler_pic='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic='-fno-common'
- ;;
-
- hpux*)
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
- ;;
-
- interix[3-9]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- lt_prog_compiler_can_build_shared=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic=-Kconform_pic
- fi
- ;;
-
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- lt_prog_compiler_wl='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- else
- lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- mingw* | cygwin* | pw32* | os2*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
-
- hpux9* | hpux10* | hpux11*)
- lt_prog_compiler_wl='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- lt_prog_compiler_static='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- lt_prog_compiler_wl='-Wl,'
- # PIC (with -KPIC) is the default.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu)
- case $cc_basename in
- icc* | ecc* | ifort*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-static'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- ccc*)
- lt_prog_compiler_wl='-Wl,'
- # All Alpha code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
- xl*)
- # IBM XL C 8.0/Fortran 10.1 on PPC
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-qpic'
- lt_prog_compiler_static='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C 5.9
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Wl,'
- ;;
- *Sun\ F*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl=''
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- lt_prog_compiler_wl='-Wl,'
- # All OSF/1 code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- rdos*)
- lt_prog_compiler_static='-non_shared'
- ;;
-
- solaris*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95*)
- lt_prog_compiler_wl='-Qoption ld ';;
- *)
- lt_prog_compiler_wl='-Wl,';;
- esac
- ;;
-
- sunos4*)
- lt_prog_compiler_wl='-Qoption ld '
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- lt_prog_compiler_pic='-Kconform_pic'
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- unicos*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_can_build_shared=no
- ;;
-
- uts4*)
- lt_prog_compiler_pic='-pic'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *)
- lt_prog_compiler_can_build_shared=no
- ;;
- esac
- fi
-
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic=
- ;;
- *)
- lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
- ;;
-esac
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic" >&6; }
-
-
-
-
-
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
- { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_pic_works+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_prog_compiler_pic_works=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:7610: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:7614: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_pic_works=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
- case $lt_prog_compiler_pic in
- "" | " "*) ;;
- *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
- esac
-else
- lt_prog_compiler_pic=
- lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_static_works+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_prog_compiler_static_works=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_static_works=yes
- fi
- else
- lt_cv_prog_compiler_static_works=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works" = xyes; then
- :
-else
- lt_prog_compiler_static=
-fi
-
-
-
-
-
-
-
- { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:7715: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:7719: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-
-
- { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:7770: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:7774: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
- if test "$hard_links" = no; then
- { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-
-
-
-
-
- { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
-
- runpath_var=
- allow_undefined_flag=
- always_export_symbols=no
- archive_cmds=
- archive_expsym_cmds=
- compiler_needs_object=no
- enable_shared_with_static_runtimes=no
- export_dynamic_flag_spec=
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- hardcode_automatic=no
- hardcode_direct=no
- hardcode_direct_absolute=no
- hardcode_libdir_flag_spec=
- hardcode_libdir_flag_spec_ld=
- hardcode_libdir_separator=
- hardcode_minus_L=no
- hardcode_shlibpath_var=unsupported
- inherit_rpath=no
- link_all_deplibs=unknown
- module_cmds=
- module_expsym_cmds=
- old_archive_from_new_cmds=
- old_archive_from_expsyms_cmds=
- thread_safe_flag_spec=
- whole_archive_flag_spec=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- include_expsyms=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
- extract_expsyms_cmds=
-
- case $host_os in
- cygwin* | mingw* | pw32*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- esac
-
- ld_shlibs=yes
- if test "$with_gnu_ld" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- export_dynamic_flag_spec='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>&1` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[3-9]*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-_LT_EOF
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- cygwin* | mingw* | pw32*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
- # as there is no search path for DLLs.
- hardcode_libdir_flag_spec='-L$libdir'
- allow_undefined_flag=unsupported
- always_export_symbols=no
- enable_shared_with_static_runtimes=yes
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- interix[3-9]*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- gnu* | linux* | tpf* | k*bsd*-gnu)
- tmp_diet=no
- if test "$host_os" = linux-dietlibc; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test "$tmp_diet" = no
- then
- tmp_addflag=
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
- compiler_needs_object=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
-
- case $cc_basename in
- xlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
- hardcode_libdir_flag_spec=
- hardcode_libdir_flag_spec_ld='-rpath $libdir'
- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- ld_shlibs=no
- fi
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
-
- if test "$ld_shlibs" = no; then
- runpath_var=
- hardcode_libdir_flag_spec=
- export_dynamic_flag_spec=
- whole_archive_flag_spec=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct=unsupported
- fi
- ;;
-
- aix[4-9]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- archive_cmds=''
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- file_list_spec='${wl}-f,'
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- hardcode_direct=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L=yes
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_libdir_separator=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- always_export_symbols=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
-
-lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\(.*\)$/\1/
- p
- }
- }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
- allow_undefined_flag="-z nodefs"
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
-
-lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\(.*\)$/\1/
- p
- }
- }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag=' ${wl}-bernotok'
- allow_undefined_flag=' ${wl}-berok'
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec='$convenience'
- archive_cmds_need_lc=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- bsdi[45]*)
- export_dynamic_flag_spec=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- old_archive_from_new_cmds='true'
- # FIXME: Should let the user specify the lib program.
- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
- fix_srcfile_path='`cygpath -w "$srcfile"`'
- enable_shared_with_static_runtimes=yes
- ;;
-
- darwin* | rhapsody*)
-
-
- archive_cmds_need_lc=no
- hardcode_direct=no
- hardcode_automatic=yes
- hardcode_shlibpath_var=unsupported
- whole_archive_flag_spec=''
- link_all_deplibs=yes
- allow_undefined_flag="$_lt_dar_allow_undefined"
- if test "$GCC" = "yes"; then
- output_verbose_link_cmd=echo
- archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
- module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
- archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
- module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-
- else
- ld_shlibs=no
- fi
-
- ;;
-
- dgux*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- freebsd1*)
- ld_shlibs=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- export_dynamic_flag_spec='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes -a "$with_gnu_ld" = no; then
- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_flag_spec_ld='+b $libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='${wl}-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes -a "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- ;;
- *)
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
- cat >conftest.$ac_ext <<_ACEOF
-int foo(void) {}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$save_LDFLAGS"
- else
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- inherit_rpath=yes
- link_all_deplibs=yes
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- newsos6)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_shlibpath_var=no
- ;;
-
- *nto* | *qnx*)
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- hardcode_direct_absolute=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- else
- case $host_os in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- else
- ld_shlibs=no
- fi
- ;;
-
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- allow_undefined_flag=unsupported
- archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- hardcode_libdir_flag_spec='-rpath $libdir'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_separator=:
- ;;
-
- solaris*)
- no_undefined_flag=' -z defs'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='${wl}'
- archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_shlibpath_var=no
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'. GCC discards it without `$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test "$GCC" = yes; then
- whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- else
- whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- link_all_deplibs=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- reload_cmds='$CC -r -o $output$reload_objs'
- hardcode_direct=no
- ;;
- motorola)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var=no
- ;;
-
- sysv4.3*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- export_dynamic_flag_spec='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ld_shlibs=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
- no_undefined_flag='${wl}-z,text'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- no_undefined_flag='${wl}-z,text'
- allow_undefined_flag='${wl}-z,nodefs'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='${wl}-R,$libdir'
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- export_dynamic_flag_spec='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- *)
- ld_shlibs=no
- ;;
- esac
-
- if test x$host_vendor = xsni; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- export_dynamic_flag_spec='${wl}-Blargedynsym'
- ;;
- esac
- fi
- fi
-
-{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5
-echo "${ECHO_T}$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
-
-with_gnu_ld=$with_gnu_ld
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
- # Assume -lc should be added
- archive_cmds_need_lc=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $archive_cmds in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
- (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
- then
- archive_cmds_need_lc=no
- else
- archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6; }
- ;;
- esac
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
-
-if test "$GCC" = yes; then
- case $host_os in
- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
- *) lt_awk_arg="/^libraries:/" ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
- else
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary.
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path/$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
- else
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
-BEGIN {RS=" "; FS="/|\n";} {
- lt_foo="";
- lt_count=0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo="/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[lt_foo]++; }
- if (lt_freq[lt_foo] == 1) { print lt_foo; }
-}'`
- sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix[4-9]*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[01] | aix4.[01].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[45]*)
- version_type=linux
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$host_os in
- yes,cygwin* | yes,mingw* | yes,pw32*)
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
- ;;
- mingw*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH printed by
- # mingw gcc, but we are running on Cygwin. Gcc prints its search
- # path with ; separators, and with drive letters. We can handle the
- # drive letters (cygwin fileutils understands them), so leave them,
- # especially as we might pass files found there to a mingw objdump,
- # which wouldn't understand a cygwinified path. Ahh.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- ;;
-
- *)
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd1*)
- dynamic_linker=no
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[123]*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-gnu*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555.
- postinstall_cmds='chmod 555 $lib'
- ;;
-
-interix[3-9]*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- # Some binutils ld are patched to set DT_RUNPATH
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
- shlibpath_overrides_runpath=yes
-fi
-
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[89] | openbsd2.[89].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_name_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" ||
- test -n "$runpath_var" ||
- test "X$hardcode_automatic" = "Xyes" ; then
-
- # We can hardcode non-existent directories.
- if test "$hardcode_direct" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
- test "$hardcode_minus_L" != no; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action=unsupported
-fi
-{ echo "$as_me:$LINENO: result: $hardcode_action" >&5
-echo "${ECHO_T}$hardcode_action" >&6; }
-
-if test "$hardcode_action" = relink ||
- test "$inherit_rpath" = yes; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-
-
-
-
-
- if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32*)
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen="dlopen"
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_dl_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
-
-fi
-
- ;;
-
- *)
- { echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; }
-if test "${ac_cv_func_shl_load+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char shl_load (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_shl_load || defined __stub___shl_load
-choke me
-#endif
-
-int
-main ()
-{
-return shl_load ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_func_shl_load=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
-if test $ac_cv_func_shl_load = yes; then
- lt_cv_dlopen="shl_load"
-else
- { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_dld_shl_load=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_dld_shl_load=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
-if test $ac_cv_lib_dld_shl_load = yes; then
- lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-else
- { echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; }
-if test "${ac_cv_func_dlopen+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char dlopen (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_dlopen || defined __stub___dlopen
-choke me
-#endif
-
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_func_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6; }
-if test $ac_cv_func_dlopen = yes; then
- lt_cv_dlopen="dlopen"
-else
- { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_dl_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_dl_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
- { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_svld_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_svld_dlopen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
-if test $ac_cv_lib_svld_dlopen = yes; then
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
- { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_dld_dld_link=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_dld_dld_link=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
-if test $ac_cv_lib_dld_dld_link = yes; then
- lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
- ;;
- esac
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- else
- enable_dlopen=no
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS="$CPPFLAGS"
- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS="$LDFLAGS"
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS="$LIBS"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line 10518 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- exit (status);
-}
-_LT_EOF
- if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self" >&6; }
-
- if test "x$lt_cv_dlopen_self" = xyes; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self_static=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line 10618 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- exit (status);
-}
-_LT_EOF
- if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self_static=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; }
- fi
-
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
- LIBS="$save_LIBS"
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-striplib=
-old_striplib=
-{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP" ; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- fi
- ;;
- *)
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
- # Report which library types will actually be built
- { echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
- { echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6; }
-
- { echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; }
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
- aix[4-9]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- { echo "$as_me:$LINENO: result: $enable_shared" >&5
-echo "${ECHO_T}$enable_shared" >&6; }
-
- { echo "$as_me:$LINENO: checking whether to build static libraries" >&5
-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; }
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- { echo "$as_me:$LINENO: result: $enable_static" >&5
-echo "${ECHO_T}$enable_static" >&6; }
-
-
-
-
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-
-
-
-
-
-
-
-
-
-
-
-
- ac_config_commands="$ac_config_commands libtool"
-
-
-
-
-# Only expand once:
-
-
-
-# Checks for libraries.
-# FIXME: Replace `main' with a function in `-lavcodec':
-#AC_CHECK_LIB([avcodec], [main])
-# FIXME: Replace `main' with a function in `-lavformat':
-#AC_CHECK_LIB([avformat], [main])
-# FIXME: Replace `main' with a function in `-lavutil':
-#AC_CHECK_LIB([avutil], [main])
-# FIXME: Replace `main' with a function in `-lm':
-
-{ echo "$as_me:$LINENO: checking for main in -lm" >&5
-echo $ECHO_N "checking for main in -lm... $ECHO_C" >&6; }
-if test "${ac_cv_lib_m_main+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lm $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-
-int
-main ()
-{
-return main ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_m_main=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_lib_m_main=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_m_main" >&5
-echo "${ECHO_T}$ac_cv_lib_m_main" >&6; }
-if test $ac_cv_lib_m_main = yes; then
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBM 1
-_ACEOF
-
- LIBS="-lm $LIBS"
-
-fi
-
-
-# Checks for header files.
-
-
-
-
-
-ac_header_dirent=no
-for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
- as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5
-echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <sys/types.h>
-#include <$ac_hdr>
-
-int
-main ()
-{
-if ((DIR *) 0)
-return 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
-_ACEOF
-
-ac_header_dirent=$ac_hdr; break
-fi
-
-done
-# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
-if test $ac_header_dirent = dirent.h; then
- { echo "$as_me:$LINENO: checking for library containing opendir" >&5
-echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; }
-if test "${ac_cv_search_opendir+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char opendir ();
-int
-main ()
-{
-return opendir ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' dir; do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_search_opendir=$ac_res
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext
- if test "${ac_cv_search_opendir+set}" = set; then
- break
-fi
-done
-if test "${ac_cv_search_opendir+set}" = set; then
- :
-else
- ac_cv_search_opendir=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
-echo "${ECHO_T}$ac_cv_search_opendir" >&6; }
-ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-else
- { echo "$as_me:$LINENO: checking for library containing opendir" >&5
-echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; }
-if test "${ac_cv_search_opendir+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char opendir ();
-int
-main ()
-{
-return opendir ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' x; do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_search_opendir=$ac_res
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext
- if test "${ac_cv_search_opendir+set}" = set; then
- break
-fi
-done
-if test "${ac_cv_search_opendir+set}" = set; then
- :
-else
- ac_cv_search_opendir=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
-echo "${ECHO_T}$ac_cv_search_opendir" >&6; }
-ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-fi
-
-{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_header_stdc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_header_stdc=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-
-
-
-
-
-
-for ac_header in fcntl.h limits.h stdlib.h string.h sys/time.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
- # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
- ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-# Checks for typedefs, structures, and compiler characteristics.
-{ echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5
-echo $ECHO_N "checking for stdbool.h that conforms to C99... $ECHO_C" >&6; }
-if test "${ac_cv_header_stdbool_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-#include <stdbool.h>
-#ifndef bool
- "error: bool is not defined"
-#endif
-#ifndef false
- "error: false is not defined"
-#endif
-#if false
- "error: false is not 0"
-#endif
-#ifndef true
- "error: true is not defined"
-#endif
-#if true != 1
- "error: true is not 1"
-#endif
-#ifndef __bool_true_false_are_defined
- "error: __bool_true_false_are_defined is not defined"
-#endif
-
- struct s { _Bool s: 1; _Bool t; } s;
-
- char a[true == 1 ? 1 : -1];
- char b[false == 0 ? 1 : -1];
- char c[__bool_true_false_are_defined == 1 ? 1 : -1];
- char d[(bool) 0.5 == true ? 1 : -1];
- bool e = &s;
- char f[(_Bool) 0.0 == false ? 1 : -1];
- char g[true];
- char h[sizeof (_Bool)];
- char i[sizeof s.t];
- enum { j = false, k = true, l = false * true, m = true * 256 };
- _Bool n[m];
- char o[sizeof n == m * sizeof n[0] ? 1 : -1];
- char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
-# if defined __xlc__ || defined __GNUC__
- /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0
- reported by James Lemley on 2005-10-05; see
- http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
- This test is not quite right, since xlc is allowed to
- reject this program, as the initializer for xlcbug is
- not one of the forms that C requires support for.
- However, doing the test right would require a runtime
- test, and that would make cross-compilation harder.
- Let us hope that IBM fixes the xlc bug, and also adds
- support for this kind of constant expression. In the
- meantime, this test will reject xlc, which is OK, since
- our stdbool.h substitute should suffice. We also test
- this with GCC, where it should work, to detect more
- quickly whether someone messes up the test in the
- future. */
- char digs[] = "0123456789";
- int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1);
-# endif
- /* Catch a bug in an HP-UX C compiler. See
- http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
- http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
- */
- _Bool q = true;
- _Bool *pq = &q;
-
-int
-main ()
-{
-
- *pq |= q;
- *pq |= ! q;
- /* Refer to every declared value, to avoid compiler optimizations. */
- return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
- + !m + !n + !o + !p + !q + !pq);
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_header_stdbool_h=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_header_stdbool_h=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5
-echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6; }
-{ echo "$as_me:$LINENO: checking for _Bool" >&5
-echo $ECHO_N "checking for _Bool... $ECHO_C" >&6; }
-if test "${ac_cv_type__Bool+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-typedef _Bool ac__type_new_;
-int
-main ()
-{
-if ((ac__type_new_ *) 0)
- return 0;
-if (sizeof (ac__type_new_))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_type__Bool=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_type__Bool=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5
-echo "${ECHO_T}$ac_cv_type__Bool" >&6; }
-if test $ac_cv_type__Bool = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE__BOOL 1
-_ACEOF
-
-
-fi
-
-if test $ac_cv_header_stdbool_h = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STDBOOL_H 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
-echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; }
-if test "${ac_cv_c_const+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-/* FIXME: Include the comments suggested by Paul. */
-#ifndef __cplusplus
- /* Ultrix mips cc rejects this. */
- typedef int charset[2];
- const charset cs;
- /* SunOS 4.1.1 cc rejects this. */
- char const *const *pcpcc;
- char **ppc;
- /* NEC SVR4.0.2 mips cc rejects this. */
- struct point {int x, y;};
- static struct point const zero = {0,0};
- /* AIX XL C 1.02.0.0 rejects this.
- It does not let you subtract one const X* pointer from another in
- an arm of an if-expression whose if-part is not a constant
- expression */
- const char *g = "string";
- pcpcc = &g + (g ? g-g : 0);
- /* HPUX 7.0 cc rejects these. */
- ++pcpcc;
- ppc = (char**) pcpcc;
- pcpcc = (char const *const *) ppc;
- { /* SCO 3.2v4 cc rejects this. */
- char *t;
- char const *s = 0 ? (char *) 0 : (char const *) 0;
-
- *t++ = 0;
- if (s) return 0;
- }
- { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
- int x[] = {25, 17};
- const int *foo = &x[0];
- ++foo;
- }
- { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
- typedef const int *iptr;
- iptr p = 0;
- ++p;
- }
- { /* AIX XL C 1.02.0.0 rejects this saying
- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; };
- struct s *b; b->j = 5;
- }
- { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
- const int foo = 10;
- if (!foo) return 0;
- }
- return !cs[0] && !zero.x;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_c_const=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_c_const=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
-echo "${ECHO_T}$ac_cv_c_const" >&6; }
-if test $ac_cv_c_const = no; then
-
-cat >>confdefs.h <<\_ACEOF
-#define const
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking for inline" >&5
-echo $ECHO_N "checking for inline... $ECHO_C" >&6; }
-if test "${ac_cv_c_inline+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifndef __cplusplus
-typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
-#endif
-
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_c_inline=$ac_kw
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- test "$ac_cv_c_inline" != no && break
-done
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
-echo "${ECHO_T}$ac_cv_c_inline" >&6; }
-
-
-case $ac_cv_c_inline in
- inline | yes) ;;
- *)
- case $ac_cv_c_inline in
- no) ac_val=;;
- *) ac_val=$ac_cv_c_inline;;
- esac
- cat >>confdefs.h <<_ACEOF
-#ifndef __cplusplus
-#define inline $ac_val
-#endif
-_ACEOF
- ;;
-esac
-
-
- { echo "$as_me:$LINENO: checking for int64_t" >&5
-echo $ECHO_N "checking for int64_t... $ECHO_C" >&6; }
-if test "${ac_cv_c_int64_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_c_int64_t=no
- for ac_type in 'int64_t' 'int' 'long int' \
- 'long long int' 'short int' 'signed char'; do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(0 < ($ac_type) (((($ac_type) 1 << (64 - 2)) - 1) * 2 + 1))];
-test_array [0] = 0
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(($ac_type) (((($ac_type) 1 << (64 - 2)) - 1) * 2 + 1)
- < ($ac_type) (((($ac_type) 1 << (64 - 2)) - 1) * 2 + 2))];
-test_array [0] = 0
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- case $ac_type in
- int64_t) ac_cv_c_int64_t=yes ;;
- *) ac_cv_c_int64_t=$ac_type ;;
-esac
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- test "$ac_cv_c_int64_t" != no && break
- done
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_int64_t" >&5
-echo "${ECHO_T}$ac_cv_c_int64_t" >&6; }
- case $ac_cv_c_int64_t in #(
- no|yes) ;; #(
- *)
-
-cat >>confdefs.h <<_ACEOF
-#define int64_t $ac_cv_c_int64_t
-_ACEOF
-;;
- esac
-
-{ echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5
-echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; }
-if test "${ac_cv_header_time+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-
-int
-main ()
-{
-if ((struct tm *) 0)
-return 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_header_time=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_header_time=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
-echo "${ECHO_T}$ac_cv_header_time" >&6; }
-if test $ac_cv_header_time = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define TIME_WITH_SYS_TIME 1
-_ACEOF
-
-fi
-
-
-# Checks for library functions.
-{ echo "$as_me:$LINENO: checking whether closedir returns void" >&5
-echo $ECHO_N "checking whether closedir returns void... $ECHO_C" >&6; }
-if test "${ac_cv_func_closedir_void+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_func_closedir_void=yes
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header_dirent>
-#ifndef __cplusplus
-int closedir ();
-#endif
-
-int
-main ()
-{
-return closedir (opendir (".")) != 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_closedir_void=no
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_closedir_void=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_closedir_void" >&5
-echo "${ECHO_T}$ac_cv_func_closedir_void" >&6; }
-if test $ac_cv_func_closedir_void = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define CLOSEDIR_VOID 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking whether lstat dereferences a symlink specified with a trailing slash" >&5
-echo $ECHO_N "checking whether lstat dereferences a symlink specified with a trailing slash... $ECHO_C" >&6; }
-if test "${ac_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- rm -f conftest.sym conftest.file
-echo >conftest.file
-if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then
- if test "$cross_compiling" = yes; then
- ac_cv_func_lstat_dereferences_slashed_symlink=no
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-struct stat sbuf;
- /* Linux will dereference the symlink and fail.
- That is better in the sense that it means we will not
- have to compile and use the lstat wrapper. */
- return lstat ("conftest.sym/", &sbuf) == 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_lstat_dereferences_slashed_symlink=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_lstat_dereferences_slashed_symlink=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-else
- # If the `ln -s' command failed, then we probably don't even
- # have an lstat function.
- ac_cv_func_lstat_dereferences_slashed_symlink=no
-fi
-rm -f conftest.sym conftest.file
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5
-echo "${ECHO_T}$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; }
-
-test $ac_cv_func_lstat_dereferences_slashed_symlink = yes &&
-
-cat >>confdefs.h <<_ACEOF
-#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1
-_ACEOF
-
-
-if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then
- case " $LIBOBJS " in
- *" lstat.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS lstat.$ac_objext"
- ;;
-esac
-
-fi
-
-{ echo "$as_me:$LINENO: checking whether lstat accepts an empty string" >&5
-echo $ECHO_N "checking whether lstat accepts an empty string... $ECHO_C" >&6; }
-if test "${ac_cv_func_lstat_empty_string_bug+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_func_lstat_empty_string_bug=yes
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-struct stat sbuf;
- return lstat ("", &sbuf) == 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_lstat_empty_string_bug=no
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_lstat_empty_string_bug=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_lstat_empty_string_bug" >&5
-echo "${ECHO_T}$ac_cv_func_lstat_empty_string_bug" >&6; }
-if test $ac_cv_func_lstat_empty_string_bug = yes; then
- case " $LIBOBJS " in
- *" lstat.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS lstat.$ac_objext"
- ;;
-esac
-
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_LSTAT_EMPTY_STRING_BUG 1
-_ACEOF
-
-fi
-
-{ echo "$as_me:$LINENO: checking whether lstat dereferences a symlink specified with a trailing slash" >&5
-echo $ECHO_N "checking whether lstat dereferences a symlink specified with a trailing slash... $ECHO_C" >&6; }
-if test "${ac_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- rm -f conftest.sym conftest.file
-echo >conftest.file
-if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then
- if test "$cross_compiling" = yes; then
- ac_cv_func_lstat_dereferences_slashed_symlink=no
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-struct stat sbuf;
- /* Linux will dereference the symlink and fail.
- That is better in the sense that it means we will not
- have to compile and use the lstat wrapper. */
- return lstat ("conftest.sym/", &sbuf) == 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_lstat_dereferences_slashed_symlink=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_lstat_dereferences_slashed_symlink=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-else
- # If the `ln -s' command failed, then we probably don't even
- # have an lstat function.
- ac_cv_func_lstat_dereferences_slashed_symlink=no
-fi
-rm -f conftest.sym conftest.file
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5
-echo "${ECHO_T}$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; }
-
-test $ac_cv_func_lstat_dereferences_slashed_symlink = yes &&
-
-cat >>confdefs.h <<_ACEOF
-#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1
-_ACEOF
-
-
-if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then
- case " $LIBOBJS " in
- *" lstat.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS lstat.$ac_objext"
- ;;
-esac
-
-fi
-
-
-for ac_header in stdlib.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
- # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
- ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-{ echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5
-echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6; }
-if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_func_malloc_0_nonnull=no
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#if defined STDC_HEADERS || defined HAVE_STDLIB_H
-# include <stdlib.h>
-#else
-char *malloc ();
-#endif
-
-int
-main ()
-{
-return ! malloc (0);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_malloc_0_nonnull=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_malloc_0_nonnull=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5
-echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6; }
-if test $ac_cv_func_malloc_0_nonnull = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MALLOC 1
-_ACEOF
-
-else
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_MALLOC 0
-_ACEOF
-
- case " $LIBOBJS " in
- *" malloc.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS malloc.$ac_objext"
- ;;
-esac
-
-
-cat >>confdefs.h <<\_ACEOF
-#define malloc rpl_malloc
-_ACEOF
-
-fi
-
-
-
-{ echo "$as_me:$LINENO: checking for working memcmp" >&5
-echo $ECHO_N "checking for working memcmp... $ECHO_C" >&6; }
-if test "${ac_cv_func_memcmp_working+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_func_memcmp_working=no
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-
- /* Some versions of memcmp are not 8-bit clean. */
- char c0 = '\100', c1 = '\200', c2 = '\201';
- if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0)
- return 1;
-
- /* The Next x86 OpenStep bug shows up only when comparing 16 bytes
- or more and with at least one buffer not starting on a 4-byte boundary.
- William Lewis provided this test program. */
- {
- char foo[21];
- char bar[21];
- int i;
- for (i = 0; i < 4; i++)
- {
- char *a = foo + i;
- char *b = bar + i;
- strcpy (a, "--------01111111");
- strcpy (b, "--------10000000");
- if (memcmp (a, b, 16) >= 0)
- return 1;
- }
- return 0;
- }
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_memcmp_working=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_memcmp_working=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_memcmp_working" >&5
-echo "${ECHO_T}$ac_cv_func_memcmp_working" >&6; }
-test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in
- *" memcmp.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS memcmp.$ac_objext"
- ;;
-esac
-
-
-
-
-for ac_header in stdlib.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
- # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
- ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-for ac_func in getpagesize
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-{ echo "$as_me:$LINENO: checking for working mmap" >&5
-echo $ECHO_N "checking for working mmap... $ECHO_C" >&6; }
-if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_func_mmap_fixed_mapped=no
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-/* malloc might have been renamed as rpl_malloc. */
-#undef malloc
-
-/* Thanks to Mike Haertel and Jim Avera for this test.
- Here is a matrix of mmap possibilities:
- mmap private not fixed
- mmap private fixed at somewhere currently unmapped
- mmap private fixed at somewhere already mapped
- mmap shared not fixed
- mmap shared fixed at somewhere currently unmapped
- mmap shared fixed at somewhere already mapped
- For private mappings, we should verify that changes cannot be read()
- back from the file, nor mmap's back from the file at a different
- address. (There have been systems where private was not correctly
- implemented like the infamous i386 svr4.0, and systems where the
- VM page cache was not coherent with the file system buffer cache
- like early versions of FreeBSD and possibly contemporary NetBSD.)
- For shared mappings, we should conversely verify that changes get
- propagated back to all the places they're supposed to be.
-
- Grep wants private fixed already mapped.
- The main things grep needs to know about mmap are:
- * does it exist and is it safe to write into the mmap'd area
- * how to use it (BSD variants) */
-
-#include <fcntl.h>
-#include <sys/mman.h>
-
-#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H
-char *malloc ();
-#endif
-
-/* This mess was copied from the GNU getpagesize.h. */
-#ifndef HAVE_GETPAGESIZE
-/* Assume that all systems that can run configure have sys/param.h. */
-# ifndef HAVE_SYS_PARAM_H
-# define HAVE_SYS_PARAM_H 1
-# endif
-
-# ifdef _SC_PAGESIZE
-# define getpagesize() sysconf(_SC_PAGESIZE)
-# else /* no _SC_PAGESIZE */
-# ifdef HAVE_SYS_PARAM_H
-# include <sys/param.h>
-# ifdef EXEC_PAGESIZE
-# define getpagesize() EXEC_PAGESIZE
-# else /* no EXEC_PAGESIZE */
-# ifdef NBPG
-# define getpagesize() NBPG * CLSIZE
-# ifndef CLSIZE
-# define CLSIZE 1
-# endif /* no CLSIZE */
-# else /* no NBPG */
-# ifdef NBPC
-# define getpagesize() NBPC
-# else /* no NBPC */
-# ifdef PAGESIZE
-# define getpagesize() PAGESIZE
-# endif /* PAGESIZE */
-# endif /* no NBPC */
-# endif /* no NBPG */
-# endif /* no EXEC_PAGESIZE */
-# else /* no HAVE_SYS_PARAM_H */
-# define getpagesize() 8192 /* punt totally */
-# endif /* no HAVE_SYS_PARAM_H */
-# endif /* no _SC_PAGESIZE */
-
-#endif /* no HAVE_GETPAGESIZE */
-
-int
-main ()
-{
- char *data, *data2, *data3;
- int i, pagesize;
- int fd;
-
- pagesize = getpagesize ();
-
- /* First, make a file with some known garbage in it. */
- data = (char *) malloc (pagesize);
- if (!data)
- return 1;
- for (i = 0; i < pagesize; ++i)
- *(data + i) = rand ();
- umask (0);
- fd = creat ("conftest.mmap", 0600);
- if (fd < 0)
- return 1;
- if (write (fd, data, pagesize) != pagesize)
- return 1;
- close (fd);
-
- /* Next, try to mmap the file at a fixed address which already has
- something else allocated at it. If we can, also make sure that
- we see the same garbage. */
- fd = open ("conftest.mmap", O_RDWR);
- if (fd < 0)
- return 1;
- data2 = (char *) malloc (2 * pagesize);
- if (!data2)
- return 1;
- data2 += (pagesize - ((long int) data2 & (pagesize - 1))) & (pagesize - 1);
- if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
- MAP_PRIVATE | MAP_FIXED, fd, 0L))
- return 1;
- for (i = 0; i < pagesize; ++i)
- if (*(data + i) != *(data2 + i))
- return 1;
-
- /* Finally, make sure that changes to the mapped area do not
- percolate back to the file as seen by read(). (This is a bug on
- some variants of i386 svr4.0.) */
- for (i = 0; i < pagesize; ++i)
- *(data2 + i) = *(data2 + i) + 1;
- data3 = (char *) malloc (pagesize);
- if (!data3)
- return 1;
- if (read (fd, data3, pagesize) != pagesize)
- return 1;
- for (i = 0; i < pagesize; ++i)
- if (*(data + i) != *(data3 + i))
- return 1;
- close (fd);
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_mmap_fixed_mapped=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_mmap_fixed_mapped=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5
-echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6; }
-if test $ac_cv_func_mmap_fixed_mapped = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MMAP 1
-_ACEOF
-
-fi
-rm -f conftest.mmap
-
-
-for ac_header in stdlib.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
- # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
- ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-{ echo "$as_me:$LINENO: checking for GNU libc compatible realloc" >&5
-echo $ECHO_N "checking for GNU libc compatible realloc... $ECHO_C" >&6; }
-if test "${ac_cv_func_realloc_0_nonnull+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_func_realloc_0_nonnull=no
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#if defined STDC_HEADERS || defined HAVE_STDLIB_H
-# include <stdlib.h>
-#else
-char *realloc ();
-#endif
-
-int
-main ()
-{
-return ! realloc (0, 0);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_realloc_0_nonnull=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_realloc_0_nonnull=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_realloc_0_nonnull" >&5
-echo "${ECHO_T}$ac_cv_func_realloc_0_nonnull" >&6; }
-if test $ac_cv_func_realloc_0_nonnull = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_REALLOC 1
-_ACEOF
-
-else
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_REALLOC 0
-_ACEOF
-
- case " $LIBOBJS " in
- *" realloc.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS realloc.$ac_objext"
- ;;
-esac
-
-
-cat >>confdefs.h <<\_ACEOF
-#define realloc rpl_realloc
-_ACEOF
-
-fi
-
-
-
-
-
-
-
-
-for ac_func in gettimeofday memset munmap strcasecmp strdup
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-
-if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
-set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case $PKG_CONFIG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-if test -n "$PKG_CONFIG"; then
- { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
-echo "${ECHO_T}$PKG_CONFIG" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_path_PKG_CONFIG"; then
- ac_pt_PKG_CONFIG=$PKG_CONFIG
- # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case $ac_pt_PKG_CONFIG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
-if test -n "$ac_pt_PKG_CONFIG"; then
- { echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
-echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; }
-else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
- if test "x$ac_pt_PKG_CONFIG" = x; then
- PKG_CONFIG=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet. If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
- PKG_CONFIG=$ac_pt_PKG_CONFIG
- fi
-else
- PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
-fi
-
-fi
-if test -n "$PKG_CONFIG"; then
- _pkg_min_version=0.9.0
- { echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
-echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6; }
- if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- else
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- PKG_CONFIG=""
- fi
-
-fi
-
-pkg_failed=no
-{ echo "$as_me:$LINENO: checking for MMCOMMON" >&5
-echo $ECHO_N "checking for MMCOMMON... $ECHO_C" >&6; }
-
-if test -n "$PKG_CONFIG"; then
- if test -n "$MMCOMMON_CFLAGS"; then
- pkg_cv_MMCOMMON_CFLAGS="$MMCOMMON_CFLAGS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mm-common\"") >&5
- ($PKG_CONFIG --exists --print-errors "mm-common") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_MMCOMMON_CFLAGS=`$PKG_CONFIG --cflags "mm-common" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
- if test -n "$MMCOMMON_LIBS"; then
- pkg_cv_MMCOMMON_LIBS="$MMCOMMON_LIBS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mm-common\"") >&5
- ($PKG_CONFIG --exists --print-errors "mm-common") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_MMCOMMON_LIBS=`$PKG_CONFIG --libs "mm-common" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- MMCOMMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mm-common"`
- else
- MMCOMMON_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mm-common"`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$MMCOMMON_PKG_ERRORS" >&5
-
- { { echo "$as_me:$LINENO: error: Package requirements (mm-common) were not met:
-
-$MMCOMMON_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables MMCOMMON_CFLAGS
-and MMCOMMON_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&5
-echo "$as_me: error: Package requirements (mm-common) were not met:
-
-$MMCOMMON_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables MMCOMMON_CFLAGS
-and MMCOMMON_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&2;}
- { (exit 1); exit 1; }; }
-elif test $pkg_failed = untried; then
- { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables MMCOMMON_CFLAGS
-and MMCOMMON_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&5
-echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables MMCOMMON_CFLAGS
-and MMCOMMON_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-else
- MMCOMMON_CFLAGS=$pkg_cv_MMCOMMON_CFLAGS
- MMCOMMON_LIBS=$pkg_cv_MMCOMMON_LIBS
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
-fi
-
-
-
-#PKG_CHECK_MODULES(MMMHAL,mm-mhal)
-#AC_SUBST(MMMHAL_CFLAGS)
-#AC_SUBST(MMMHAL_LIBS)
-
-
-pkg_failed=no
-{ echo "$as_me:$LINENO: checking for MMLOG" >&5
-echo $ECHO_N "checking for MMLOG... $ECHO_C" >&6; }
-
-if test -n "$PKG_CONFIG"; then
- if test -n "$MMLOG_CFLAGS"; then
- pkg_cv_MMLOG_CFLAGS="$MMLOG_CFLAGS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mm-log\"") >&5
- ($PKG_CONFIG --exists --print-errors "mm-log") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_MMLOG_CFLAGS=`$PKG_CONFIG --cflags "mm-log" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
- if test -n "$MMLOG_LIBS"; then
- pkg_cv_MMLOG_LIBS="$MMLOG_LIBS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"mm-log\"") >&5
- ($PKG_CONFIG --exists --print-errors "mm-log") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_MMLOG_LIBS=`$PKG_CONFIG --libs "mm-log" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- MMLOG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mm-log"`
- else
- MMLOG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mm-log"`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$MMLOG_PKG_ERRORS" >&5
-
- { { echo "$as_me:$LINENO: error: Package requirements (mm-log) were not met:
-
-$MMLOG_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables MMLOG_CFLAGS
-and MMLOG_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&5
-echo "$as_me: error: Package requirements (mm-log) were not met:
-
-$MMLOG_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables MMLOG_CFLAGS
-and MMLOG_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&2;}
- { (exit 1); exit 1; }; }
-elif test $pkg_failed = untried; then
- { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables MMLOG_CFLAGS
-and MMLOG_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&5
-echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables MMLOG_CFLAGS
-and MMLOG_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-else
- MMLOG_CFLAGS=$pkg_cv_MMLOG_CFLAGS
- MMLOG_LIBS=$pkg_cv_MMLOG_LIBS
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
-fi
-
-
-
-
-
-
-pkg_failed=no
-{ echo "$as_me:$LINENO: checking for GLIB" >&5
-echo $ECHO_N "checking for GLIB... $ECHO_C" >&6; }
-
-if test -n "$PKG_CONFIG"; then
- if test -n "$GLIB_CFLAGS"; then
- pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0\"") >&5
- ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
- if test -n "$GLIB_LIBS"; then
- pkg_cv_GLIB_LIBS="$GLIB_LIBS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0\"") >&5
- ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glib-2.0"`
- else
- GLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0"`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$GLIB_PKG_ERRORS" >&5
-
- { { echo "$as_me:$LINENO: error: Package requirements (glib-2.0) were not met:
-
-$GLIB_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables GLIB_CFLAGS
-and GLIB_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&5
-echo "$as_me: error: Package requirements (glib-2.0) were not met:
-
-$GLIB_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables GLIB_CFLAGS
-and GLIB_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&2;}
- { (exit 1); exit 1; }; }
-elif test $pkg_failed = untried; then
- { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables GLIB_CFLAGS
-and GLIB_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&5
-echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables GLIB_CFLAGS
-and GLIB_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-else
- GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS
- GLIB_LIBS=$pkg_cv_GLIB_LIBS
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
-fi
-
-
-
-
-pkg_failed=no
-{ echo "$as_me:$LINENO: checking for GTK" >&5
-echo $ECHO_N "checking for GTK... $ECHO_C" >&6; }
-
-if test -n "$PKG_CONFIG"; then
- if test -n "$GTK_CFLAGS"; then
- pkg_cv_GTK_CFLAGS="$GTK_CFLAGS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0\"") >&5
- ($PKG_CONFIG --exists --print-errors "gtk+-2.0") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
- if test -n "$GTK_LIBS"; then
- pkg_cv_GTK_LIBS="$GTK_LIBS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0\"") >&5
- ($PKG_CONFIG --exists --print-errors "gtk+-2.0") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-2.0"`
- else
- GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0"`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$GTK_PKG_ERRORS" >&5
-
- { { echo "$as_me:$LINENO: error: Package requirements (gtk+-2.0) were not met:
-
-$GTK_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables GTK_CFLAGS
-and GTK_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&5
-echo "$as_me: error: Package requirements (gtk+-2.0) were not met:
-
-$GTK_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables GTK_CFLAGS
-and GTK_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&2;}
- { (exit 1); exit 1; }; }
-elif test $pkg_failed = untried; then
- { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables GTK_CFLAGS
-and GTK_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&5
-echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables GTK_CFLAGS
-and GTK_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-else
- GTK_CFLAGS=$pkg_cv_GTK_CFLAGS
- GTK_LIBS=$pkg_cv_GTK_LIBS
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
-fi
-
-
-
-
-
-pkg_failed=no
-{ echo "$as_me:$LINENO: checking for AVCODEC" >&5
-echo $ECHO_N "checking for AVCODEC... $ECHO_C" >&6; }
-
-if test -n "$PKG_CONFIG"; then
- if test -n "$AVCODEC_CFLAGS"; then
- pkg_cv_AVCODEC_CFLAGS="$AVCODEC_CFLAGS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libavcodec\"") >&5
- ($PKG_CONFIG --exists --print-errors "libavcodec") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_AVCODEC_CFLAGS=`$PKG_CONFIG --cflags "libavcodec" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
- if test -n "$AVCODEC_LIBS"; then
- pkg_cv_AVCODEC_LIBS="$AVCODEC_LIBS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libavcodec\"") >&5
- ($PKG_CONFIG --exists --print-errors "libavcodec") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_AVCODEC_LIBS=`$PKG_CONFIG --libs "libavcodec" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- AVCODEC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libavcodec"`
- else
- AVCODEC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libavcodec"`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$AVCODEC_PKG_ERRORS" >&5
-
- { { echo "$as_me:$LINENO: error: Package requirements (libavcodec) were not met:
-
-$AVCODEC_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables AVCODEC_CFLAGS
-and AVCODEC_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&5
-echo "$as_me: error: Package requirements (libavcodec) were not met:
-
-$AVCODEC_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables AVCODEC_CFLAGS
-and AVCODEC_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&2;}
- { (exit 1); exit 1; }; }
-elif test $pkg_failed = untried; then
- { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables AVCODEC_CFLAGS
-and AVCODEC_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&5
-echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables AVCODEC_CFLAGS
-and AVCODEC_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-else
- AVCODEC_CFLAGS=$pkg_cv_AVCODEC_CFLAGS
- AVCODEC_LIBS=$pkg_cv_AVCODEC_LIBS
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
-fi
-
-
-
-
-pkg_failed=no
-{ echo "$as_me:$LINENO: checking for AVUTIL" >&5
-echo $ECHO_N "checking for AVUTIL... $ECHO_C" >&6; }
-
-if test -n "$PKG_CONFIG"; then
- if test -n "$AVUTIL_CFLAGS"; then
- pkg_cv_AVUTIL_CFLAGS="$AVUTIL_CFLAGS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libavutil\"") >&5
- ($PKG_CONFIG --exists --print-errors "libavutil") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_AVUTIL_CFLAGS=`$PKG_CONFIG --cflags "libavutil" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
- if test -n "$AVUTIL_LIBS"; then
- pkg_cv_AVUTIL_LIBS="$AVUTIL_LIBS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libavutil\"") >&5
- ($PKG_CONFIG --exists --print-errors "libavutil") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_AVUTIL_LIBS=`$PKG_CONFIG --libs "libavutil" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- AVUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libavutil"`
- else
- AVUTIL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libavutil"`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$AVUTIL_PKG_ERRORS" >&5
-
- { { echo "$as_me:$LINENO: error: Package requirements (libavutil) were not met:
-
-$AVUTIL_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables AVUTIL_CFLAGS
-and AVUTIL_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&5
-echo "$as_me: error: Package requirements (libavutil) were not met:
-
-$AVUTIL_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables AVUTIL_CFLAGS
-and AVUTIL_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&2;}
- { (exit 1); exit 1; }; }
-elif test $pkg_failed = untried; then
- { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables AVUTIL_CFLAGS
-and AVUTIL_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&5
-echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables AVUTIL_CFLAGS
-and AVUTIL_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-else
- AVUTIL_CFLAGS=$pkg_cv_AVUTIL_CFLAGS
- AVUTIL_LIBS=$pkg_cv_AVUTIL_LIBS
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
-fi
-
-
-
-
-pkg_failed=no
-{ echo "$as_me:$LINENO: checking for AVFORMAT" >&5
-echo $ECHO_N "checking for AVFORMAT... $ECHO_C" >&6; }
-
-if test -n "$PKG_CONFIG"; then
- if test -n "$AVFORMAT_CFLAGS"; then
- pkg_cv_AVFORMAT_CFLAGS="$AVFORMAT_CFLAGS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libavformat\"") >&5
- ($PKG_CONFIG --exists --print-errors "libavformat") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_AVFORMAT_CFLAGS=`$PKG_CONFIG --cflags "libavformat" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
- if test -n "$AVFORMAT_LIBS"; then
- pkg_cv_AVFORMAT_LIBS="$AVFORMAT_LIBS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libavformat\"") >&5
- ($PKG_CONFIG --exists --print-errors "libavformat") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_AVFORMAT_LIBS=`$PKG_CONFIG --libs "libavformat" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- AVFORMAT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libavformat"`
- else
- AVFORMAT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libavformat"`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$AVFORMAT_PKG_ERRORS" >&5
-
- { { echo "$as_me:$LINENO: error: Package requirements (libavformat) were not met:
-
-$AVFORMAT_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables AVFORMAT_CFLAGS
-and AVFORMAT_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&5
-echo "$as_me: error: Package requirements (libavformat) were not met:
-
-$AVFORMAT_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables AVFORMAT_CFLAGS
-and AVFORMAT_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&2;}
- { (exit 1); exit 1; }; }
-elif test $pkg_failed = untried; then
- { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables AVFORMAT_CFLAGS
-and AVFORMAT_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&5
-echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables AVFORMAT_CFLAGS
-and AVFORMAT_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-else
- AVFORMAT_CFLAGS=$pkg_cv_AVFORMAT_CFLAGS
- AVFORMAT_LIBS=$pkg_cv_AVFORMAT_LIBS
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
-fi
-
-
-
-# Check whether --enable-drm was given.
-if test "${enable_drm+set}" = set; then
- enableval=$enable_drm;
- case "${enableval}" in
- yes) USE_DRM=yes ;;
- no) USE_DRM=no ;;
- *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-drm" >&5
-echo "$as_me: error: bad value ${enableval} for --enable-drm" >&2;}
- { (exit 1); exit 1; }; } ;;
- esac
-
-else
- USE_DRM=yes
-fi
-
-if test "x$USE_DRM" = "xyes"; then
-
-pkg_failed=no
-{ echo "$as_me:$LINENO: checking for DRMSERVICE" >&5
-echo $ECHO_N "checking for DRMSERVICE... $ECHO_C" >&6; }
-
-if test -n "$PKG_CONFIG"; then
- if test -n "$DRMSERVICE_CFLAGS"; then
- pkg_cv_DRMSERVICE_CFLAGS="$DRMSERVICE_CFLAGS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"drm-service\"") >&5
- ($PKG_CONFIG --exists --print-errors "drm-service") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_DRMSERVICE_CFLAGS=`$PKG_CONFIG --cflags "drm-service" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
- if test -n "$DRMSERVICE_LIBS"; then
- pkg_cv_DRMSERVICE_LIBS="$DRMSERVICE_LIBS"
- else
- if test -n "$PKG_CONFIG" && \
- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"drm-service\"") >&5
- ($PKG_CONFIG --exists --print-errors "drm-service") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_DRMSERVICE_LIBS=`$PKG_CONFIG --libs "drm-service" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- DRMSERVICE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "drm-service"`
- else
- DRMSERVICE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "drm-service"`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$DRMSERVICE_PKG_ERRORS" >&5
-
- { { echo "$as_me:$LINENO: error: Package requirements (drm-service) were not met:
-
-$DRMSERVICE_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables DRMSERVICE_CFLAGS
-and DRMSERVICE_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&5
-echo "$as_me: error: Package requirements (drm-service) were not met:
-
-$DRMSERVICE_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables DRMSERVICE_CFLAGS
-and DRMSERVICE_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" >&2;}
- { (exit 1); exit 1; }; }
-elif test $pkg_failed = untried; then
- { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables DRMSERVICE_CFLAGS
-and DRMSERVICE_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&5
-echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables DRMSERVICE_CFLAGS
-and DRMSERVICE_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-else
- DRMSERVICE_CFLAGS=$pkg_cv_DRMSERVICE_CFLAGS
- DRMSERVICE_LIBS=$pkg_cv_DRMSERVICE_LIBS
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
- :
-fi
-
-
-fi
- if test "x$USE_DRM" = "xyes"; then
- USE_DRM_TRUE=
- USE_DRM_FALSE='#'
-else
- USE_DRM_TRUE='#'
- USE_DRM_FALSE=
-fi
-
-
-
-# Check whether --enable-testmode was given.
-if test "${enable_testmode+set}" = set; then
- enableval=$enable_testmode;
- case "${enableval}" in
- yes) USE_TESTMODE=yes ;;
- no) USE_TESTMODE=no ;;
- *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-testmode" >&5
-echo "$as_me: error: bad value ${enableval} for --enable-testmode" >&2;}
- { (exit 1); exit 1; }; } ;;
- esac
-
-else
- USE_TESTMODE=no
-fi
-
- if test "x$USE_TESTMODE" = "xyes"; then
- USE_TESTMODE_TRUE=
- USE_TESTMODE_FALSE='#'
-else
- USE_TESTMODE_TRUE='#'
- USE_TESTMODE_FALSE=
-fi
-
-{ echo "$as_me:$LINENO: result: checking for USE_TESTMODE ... $USE_TESTMODE" >&5
-echo "${ECHO_T}checking for USE_TESTMODE ... $USE_TESTMODE" >&6; }
-
-# Check whether --enable-dump was given.
-if test "${enable_dump+set}" = set; then
- enableval=$enable_dump;
- case "${enableval}" in
- yes) USE_DUMP=yes ;;
- no) USE_DUMP=no ;;
- *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-dump" >&5
-echo "$as_me: error: bad value ${enableval} for --enable-dump" >&2;}
- { (exit 1); exit 1; }; } ;;
- esac
-
-else
- USE_DUMP=no
-fi
-
- if test "x$USE_DUMP" = "xyes"; then
- USE_DUMP_TRUE=
- USE_DUMP_FALSE='#'
-else
- USE_DUMP_TRUE='#'
- USE_DUMP_FALSE=
-fi
-
-{ echo "$as_me:$LINENO: result: checking for USE_DUMP ... $USE_DUMP" >&5
-echo "${ECHO_T}checking for USE_DUMP ... $USE_DUMP" >&6; }
-
-ac_config_files="$ac_config_files Makefile codecs/Makefile codecs/ffmpeg/Makefile formats/Makefile formats/ffmpeg/Makefile utils/Makefile tests/Makefile mm-fileinfo.pc"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- *) $as_unset $ac_var ;;
- esac ;;
- esac
- done
-
- (set) 2>&1 |
- case $as_nl`(ac_space=' '; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;; #(
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-) |
- sed '
- /^ac_cv_env_/b end
- t clear
- :clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
- if test -w "$cache_file"; then
- test "x$cache_file" != "x/dev/null" &&
- { echo "$as_me:$LINENO: updating cache $cache_file" >&5
-echo "$as_me: updating cache $cache_file" >&6;}
- cat confcache >$cache_file
- else
- { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
-echo "$as_me: not updating unwritable cache $cache_file" >&6;}
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`echo "$ac_i" | sed "$ac_script"`
- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
- # will be set to the directory where LIBOBJS objects are built.
- ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${USE_DRM_TRUE}" && test -z "${USE_DRM_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"USE_DRM\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"USE_DRM\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${USE_TESTMODE_TRUE}" && test -z "${USE_TESTMODE_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"USE_TESTMODE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"USE_TESTMODE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${USE_DUMP_TRUE}" && test -z "${USE_DUMP_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"USE_DUMP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"USE_DUMP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
-esac
-
-fi
-
-
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-as_nl='
-'
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- { (exit 1); exit 1; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# CDPATH.
-$as_unset CDPATH
-
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line after each line using $LINENO; the second 'sed'
- # does the real work. The second script uses 'N' to pair each
- # line-number line with the line containing $LINENO, and appends
- # trailing '-' during substitution so that $LINENO is not a special
- # case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # scripts with optimization help from Paolo Bonzini. Blame Lee
- # E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
- case `echo 'x\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- *) ECHO_C='\c';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-
-# Save the log message, to keep $[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by libmm-fileinfo $as_me 0.0.1, which was
-generated by GNU Autoconf 2.61. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
- -h, --help print this help, then exit
- -V, --version print version number and configuration settings, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <bug-autoconf@gnu.org>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-libmm-fileinfo config.status 0.0.1
-configured by $0, generated by GNU Autoconf 2.61,
- with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2006 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value. By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=*)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- echo "$ac_cs_version"; exit ;;
- --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- CONFIG_FILES="$CONFIG_FILES $ac_optarg"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
- { echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; };;
- --help | --hel | -h )
- echo "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) { echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; } ;;
-
- *) ac_config_targets="$ac_config_targets $1"
- ac_need_defaults=false ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
- echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
- CONFIG_SHELL=$SHELL
- export CONFIG_SHELL
- exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
- echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-#
-# INIT-COMMANDS
-#
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`'
-enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`'
-host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`'
-host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`'
-host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`'
-build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`'
-build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`'
-build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`'
-SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`'
-Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`'
-GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`'
-EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`'
-FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`'
-LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`'
-NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`'
-LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`'
-exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`'
-AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`'
-GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`'
-SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`'
-ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`'
-need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`'
-LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`'
-libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`'
-fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`'
-version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
-striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
-
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# Quote evaled strings.
-for var in SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-deplibs_check_method \
-file_magic_cmd \
-AR \
-AR_FLAGS \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-SHELL \
-ECHO \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_wl \
-lt_prog_compiler_pic \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-DSYMUTIL \
-NMEDIT \
-LIPO \
-OTOOL \
-OTOOL64 \
-shrext_cmds \
-export_dynamic_flag_spec \
-whole_archive_flag_spec \
-compiler_needs_object \
-with_gnu_ld \
-allow_undefined_flag \
-no_undefined_flag \
-hardcode_libdir_flag_spec \
-hardcode_libdir_flag_spec_ld \
-hardcode_libdir_separator \
-fix_srcfile_path \
-exclude_expsyms \
-include_expsyms \
-file_list_spec \
-variables_saved_for_relink \
-libname_spec \
-library_names_spec \
-soname_spec \
-finish_eval \
-old_striplib \
-striplib; do
- case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in reload_cmds \
-old_postinstall_cmds \
-old_postuninstall_cmds \
-old_archive_cmds \
-extract_expsyms_cmds \
-old_archive_from_new_cmds \
-old_archive_from_expsyms_cmds \
-archive_cmds \
-archive_expsym_cmds \
-module_cmds \
-module_expsym_cmds \
-export_symbols_cmds \
-prelink_cmds \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec; do
- case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Fix-up fallback echo if it was mangled by the above quoting rules.
-case \$lt_ECHO in
-*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\`
- ;;
-esac
-
-ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
-
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- TIMESTAMP='$TIMESTAMP'
- RM='$RM'
- ofile='$ofile'
-
-
-
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
- case $ac_config_target in
- "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
- "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "codecs/Makefile") CONFIG_FILES="$CONFIG_FILES codecs/Makefile" ;;
- "codecs/ffmpeg/Makefile") CONFIG_FILES="$CONFIG_FILES codecs/ffmpeg/Makefile" ;;
- "formats/Makefile") CONFIG_FILES="$CONFIG_FILES formats/Makefile" ;;
- "formats/ffmpeg/Makefile") CONFIG_FILES="$CONFIG_FILES formats/ffmpeg/Makefile" ;;
- "utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;;
- "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
- "mm-fileinfo.pc") CONFIG_FILES="$CONFIG_FILES mm-fileinfo.pc" ;;
-
- *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
- tmp=
- trap 'exit_status=$?
- { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
-' 0
- trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
-} ||
-{
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
-} ||
-{
- echo "$me: cannot create a temporary directory in ." >&2
- { (exit 1); exit 1; }
-}
-
-#
-# Set up the sed scripts for CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "$CONFIG_FILES"; then
-
-_ACEOF
-
-
-
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- cat >conf$$subs.sed <<_ACEOF
-SHELL!$SHELL$ac_delim
-PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
-PACKAGE_NAME!$PACKAGE_NAME$ac_delim
-PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
-PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
-PACKAGE_STRING!$PACKAGE_STRING$ac_delim
-PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
-exec_prefix!$exec_prefix$ac_delim
-prefix!$prefix$ac_delim
-program_transform_name!$program_transform_name$ac_delim
-bindir!$bindir$ac_delim
-sbindir!$sbindir$ac_delim
-libexecdir!$libexecdir$ac_delim
-datarootdir!$datarootdir$ac_delim
-datadir!$datadir$ac_delim
-sysconfdir!$sysconfdir$ac_delim
-sharedstatedir!$sharedstatedir$ac_delim
-localstatedir!$localstatedir$ac_delim
-includedir!$includedir$ac_delim
-oldincludedir!$oldincludedir$ac_delim
-docdir!$docdir$ac_delim
-infodir!$infodir$ac_delim
-htmldir!$htmldir$ac_delim
-dvidir!$dvidir$ac_delim
-pdfdir!$pdfdir$ac_delim
-psdir!$psdir$ac_delim
-libdir!$libdir$ac_delim
-localedir!$localedir$ac_delim
-mandir!$mandir$ac_delim
-DEFS!$DEFS$ac_delim
-ECHO_C!$ECHO_C$ac_delim
-ECHO_N!$ECHO_N$ac_delim
-ECHO_T!$ECHO_T$ac_delim
-LIBS!$LIBS$ac_delim
-build_alias!$build_alias$ac_delim
-host_alias!$host_alias$ac_delim
-target_alias!$target_alias$ac_delim
-INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
-INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
-INSTALL_DATA!$INSTALL_DATA$ac_delim
-am__isrc!$am__isrc$ac_delim
-CYGPATH_W!$CYGPATH_W$ac_delim
-PACKAGE!$PACKAGE$ac_delim
-VERSION!$VERSION$ac_delim
-ACLOCAL!$ACLOCAL$ac_delim
-AUTOCONF!$AUTOCONF$ac_delim
-AUTOMAKE!$AUTOMAKE$ac_delim
-AUTOHEADER!$AUTOHEADER$ac_delim
-MAKEINFO!$MAKEINFO$ac_delim
-install_sh!$install_sh$ac_delim
-STRIP!$STRIP$ac_delim
-INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim
-mkdir_p!$mkdir_p$ac_delim
-AWK!$AWK$ac_delim
-SET_MAKE!$SET_MAKE$ac_delim
-am__leading_dot!$am__leading_dot$ac_delim
-AMTAR!$AMTAR$ac_delim
-am__tar!$am__tar$ac_delim
-am__untar!$am__untar$ac_delim
-CC!$CC$ac_delim
-CFLAGS!$CFLAGS$ac_delim
-LDFLAGS!$LDFLAGS$ac_delim
-CPPFLAGS!$CPPFLAGS$ac_delim
-ac_ct_CC!$ac_ct_CC$ac_delim
-EXEEXT!$EXEEXT$ac_delim
-OBJEXT!$OBJEXT$ac_delim
-DEPDIR!$DEPDIR$ac_delim
-am__include!$am__include$ac_delim
-am__quote!$am__quote$ac_delim
-AMDEP_TRUE!$AMDEP_TRUE$ac_delim
-AMDEP_FALSE!$AMDEP_FALSE$ac_delim
-AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim
-CCDEPMODE!$CCDEPMODE$ac_delim
-am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim
-am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim
-LIBTOOL!$LIBTOOL$ac_delim
-build!$build$ac_delim
-build_cpu!$build_cpu$ac_delim
-build_vendor!$build_vendor$ac_delim
-build_os!$build_os$ac_delim
-host!$host$ac_delim
-host_cpu!$host_cpu$ac_delim
-host_vendor!$host_vendor$ac_delim
-host_os!$host_os$ac_delim
-SED!$SED$ac_delim
-GREP!$GREP$ac_delim
-EGREP!$EGREP$ac_delim
-FGREP!$FGREP$ac_delim
-LD!$LD$ac_delim
-DUMPBIN!$DUMPBIN$ac_delim
-ac_ct_DUMPBIN!$ac_ct_DUMPBIN$ac_delim
-NM!$NM$ac_delim
-LN_S!$LN_S$ac_delim
-AR!$AR$ac_delim
-RANLIB!$RANLIB$ac_delim
-lt_ECHO!$lt_ECHO$ac_delim
-DSYMUTIL!$DSYMUTIL$ac_delim
-_ACEOF
-
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
- break
- elif $ac_last_try; then
- { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
- { (exit 1); exit 1; }; }
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-
-ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-if test -n "$ac_eof"; then
- ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
- ac_eof=`expr $ac_eof + 1`
-fi
-
-cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-_ACEOF
-sed '
-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-s/^/s,@/; s/!/@,|#_!!_#|/
-:n
-t n
-s/'"$ac_delim"'$/,g/; t
-s/$/\\/; p
-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-' >>$CONFIG_STATUS <conf$$subs.sed
-rm -f conf$$subs.sed
-cat >>$CONFIG_STATUS <<_ACEOF
-CEOF$ac_eof
-_ACEOF
-
-
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- cat >conf$$subs.sed <<_ACEOF
-NMEDIT!$NMEDIT$ac_delim
-LIPO!$LIPO$ac_delim
-OTOOL!$OTOOL$ac_delim
-OTOOL64!$OTOOL64$ac_delim
-CPP!$CPP$ac_delim
-LIBOBJS!$LIBOBJS$ac_delim
-PKG_CONFIG!$PKG_CONFIG$ac_delim
-MMCOMMON_CFLAGS!$MMCOMMON_CFLAGS$ac_delim
-MMCOMMON_LIBS!$MMCOMMON_LIBS$ac_delim
-MMLOG_CFLAGS!$MMLOG_CFLAGS$ac_delim
-MMLOG_LIBS!$MMLOG_LIBS$ac_delim
-GLIB_CFLAGS!$GLIB_CFLAGS$ac_delim
-GLIB_LIBS!$GLIB_LIBS$ac_delim
-GTK_CFLAGS!$GTK_CFLAGS$ac_delim
-GTK_LIBS!$GTK_LIBS$ac_delim
-AVCODEC_CFLAGS!$AVCODEC_CFLAGS$ac_delim
-AVCODEC_LIBS!$AVCODEC_LIBS$ac_delim
-AVUTIL_CFLAGS!$AVUTIL_CFLAGS$ac_delim
-AVUTIL_LIBS!$AVUTIL_LIBS$ac_delim
-AVFORMAT_CFLAGS!$AVFORMAT_CFLAGS$ac_delim
-AVFORMAT_LIBS!$AVFORMAT_LIBS$ac_delim
-DRMSERVICE_CFLAGS!$DRMSERVICE_CFLAGS$ac_delim
-DRMSERVICE_LIBS!$DRMSERVICE_LIBS$ac_delim
-USE_DRM_TRUE!$USE_DRM_TRUE$ac_delim
-USE_DRM_FALSE!$USE_DRM_FALSE$ac_delim
-USE_TESTMODE_TRUE!$USE_TESTMODE_TRUE$ac_delim
-USE_TESTMODE_FALSE!$USE_TESTMODE_FALSE$ac_delim
-USE_DUMP_TRUE!$USE_DUMP_TRUE$ac_delim
-USE_DUMP_FALSE!$USE_DUMP_FALSE$ac_delim
-LTLIBOBJS!$LTLIBOBJS$ac_delim
-_ACEOF
-
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 30; then
- break
- elif $ac_last_try; then
- { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
- { (exit 1); exit 1; }; }
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-
-ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-if test -n "$ac_eof"; then
- ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
- ac_eof=`expr $ac_eof + 1`
-fi
-
-cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
-_ACEOF
-sed '
-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-s/^/s,@/; s/!/@,|#_!!_#|/
-:n
-t n
-s/'"$ac_delim"'$/,g/; t
-s/$/\\/; p
-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-' >>$CONFIG_STATUS <conf$$subs.sed
-rm -f conf$$subs.sed
-cat >>$CONFIG_STATUS <<_ACEOF
-:end
-s/|#_!!_#|//g
-CEOF$ac_eof
-_ACEOF
-
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[ ]*\):*/\1/
-s/:*$//
-s/^[^=]*=[ ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-fi # test -n "$CONFIG_FILES"
-
-
-for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS
-do
- case $ac_tag in
- :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
- :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
-echo "$as_me: error: Invalid tag $ac_tag." >&2;}
- { (exit 1); exit 1; }; };;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
- ac_save_IFS=$IFS
- IFS=:
- set x $ac_tag
- IFS=$ac_save_IFS
- shift
- ac_file=$1
- shift
-
- case $ac_mode in
- :L) ac_source=$1;;
- :[FH])
- ac_file_inputs=
- for ac_f
- do
- case $ac_f in
- -) ac_f="$tmp/stdin";;
- *) # Look for the file first in the build tree, then in the source tree
- # (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain `:'.
- test -f "$ac_f" ||
- case $ac_f in
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
- { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-echo "$as_me: error: cannot find input file: $ac_f" >&2;}
- { (exit 1); exit 1; }; };;
- esac
- ac_file_inputs="$ac_file_inputs $ac_f"
- done
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- configure_input="Generated from "`IFS=:
- echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
- if test x"$ac_file" != x-; then
- configure_input="$ac_file. $configure_input"
- { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
- fi
-
- case $ac_tag in
- *:-:* | *:-) cat >"$tmp/stdin";;
- esac
- ;;
- esac
-
- ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- { as_dir="$ac_dir"
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-echo "$as_me: error: cannot create directory $as_dir" >&2;}
- { (exit 1); exit 1; }; }; }
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
- case $ac_mode in
- :F)
- #
- # CONFIG_FILE
- #
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
- esac
- ac_MKDIR_P=$MKDIR_P
- case $MKDIR_P in
- [\\/$]* | ?:[\\/]* ) ;;
- */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
- esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-
-case `sed -n '/datarootdir/ {
- p
- q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p
-' $ac_file_inputs` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
- ac_datarootdir_hack='
- s&@datadir@&$datadir&g
- s&@docdir@&$docdir&g
- s&@infodir@&$infodir&g
- s&@localedir@&$localedir&g
- s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF
- sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s&@configure_input@&$configure_input&;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;t t
-$ac_datarootdir_hack
-" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
- { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&5
-echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&2;}
-
- rm -f "$tmp/stdin"
- case $ac_file in
- -) cat "$tmp/out"; rm -f "$tmp/out";;
- *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
- esac
- ;;
- :H)
- #
- # CONFIG_HEADER
- #
-_ACEOF
-
-# Transform confdefs.h into a sed script `conftest.defines', that
-# substitutes the proper values into config.h.in to produce config.h.
-rm -f conftest.defines conftest.tail
-# First, append a space to every undef/define line, to ease matching.
-echo 's/$/ /' >conftest.defines
-# Then, protect against being on the right side of a sed subst, or in
-# an unquoted here document, in config.status. If some macros were
-# called several times there might be several #defines for the same
-# symbol, which is useless. But do not sort them, since the last
-# AC_DEFINE must be honored.
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where
-# NAME is the cpp macro being defined, VALUE is the value it is being given.
-# PARAMS is the parameter list in the macro definition--in most cases, it's
-# just an empty string.
-ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*'
-ac_dB='\\)[ (].*,\\1define\\2'
-ac_dC=' '
-ac_dD=' ,'
-
-uniq confdefs.h |
- sed -n '
- t rset
- :rset
- s/^[ ]*#[ ]*define[ ][ ]*//
- t ok
- d
- :ok
- s/[\\&,]/\\&/g
- s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p
- s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p
- ' >>conftest.defines
-
-# Remove the space that was appended to ease matching.
-# Then replace #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-# (The regexp can be short, since the line contains either #define or #undef.)
-echo 's/ $//
-s,^[ #]*u.*,/* & */,' >>conftest.defines
-
-# Break up conftest.defines:
-ac_max_sed_lines=50
-
-# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1"
-# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2"
-# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1"
-# et cetera.
-ac_in='$ac_file_inputs'
-ac_out='"$tmp/out1"'
-ac_nxt='"$tmp/out2"'
-
-while :
-do
- # Write a here document:
- cat >>$CONFIG_STATUS <<_ACEOF
- # First, check the format of the line:
- cat >"\$tmp/defines.sed" <<\\CEOF
-/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def
-/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def
-b
-:def
-_ACEOF
- sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS
- echo 'CEOF
- sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS
- ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in
- sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail
- grep . conftest.tail >/dev/null || break
- rm -f conftest.defines
- mv conftest.tail conftest.defines
-done
-rm -f conftest.defines conftest.tail
-
-echo "ac_result=$ac_in" >>$CONFIG_STATUS
-cat >>$CONFIG_STATUS <<\_ACEOF
- if test x"$ac_file" != x-; then
- echo "/* $configure_input */" >"$tmp/config.h"
- cat "$ac_result" >>"$tmp/config.h"
- if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then
- { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f $ac_file
- mv "$tmp/config.h" $ac_file
- fi
- else
- echo "/* $configure_input */"
- cat "$ac_result"
- fi
- rm -f "$tmp/out12"
-# Compute $ac_file's index in $config_headers.
-_am_arg=$ac_file
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
-$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$_am_arg" : 'X\(//\)[^/]' \| \
- X"$_am_arg" : 'X\(//\)$' \| \
- X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$_am_arg" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`/stamp-h$_am_stamp_count
- ;;
-
- :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5
-echo "$as_me: executing $ac_file commands" >&6;}
- ;;
- esac
-
-
- case $ac_file$ac_mode in
- "depfiles":C) test x"$AMDEP_TRUE" != x"" || # Autoconf 2.62 quotes --file arguments for eval, but not when files
-# are listed without --file. Let's play safe and only enable the eval
-# if we detect the quoting.
-case $CONFIG_FILES in
-*\'*) eval set x "$CONFIG_FILES" ;;
-*) set x $CONFIG_FILES ;;
-esac
-shift
-for mf
-do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$mf" : 'X\(//\)[^/]' \| \
- X"$mf" : 'X\(//\)$' \| \
- X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- { as_dir=$dirpart/$fdir
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-echo "$as_me: error: cannot create directory $as_dir" >&2;}
- { (exit 1); exit 1; }; }; }
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
-done
- ;;
- "libtool":C)
-
- # See if we are running on zsh, and set the options which allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile="${ofile}T"
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008 Free Software Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-# The names of the tagged configurations supported by this script.
-available_tags=""
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# What type of objects to build.
-pic_mode=$pic_mode
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="\$SED -e 1s/^X//"
-
-# A grep program that handles long lines.
-GREP=$lt_GREP
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# A literal string matcher.
-FGREP=$lt_FGREP
-
-# A BSD- or MS-compatible name lister.
-NM=$lt_NM
-
-# Whether we need soft or hard links.
-LN_S=$lt_LN_S
-
-# What is the maximum length of a command?
-max_cmd_len=$max_cmd_len
-
-# Object file suffix (normally "o").
-objext=$ac_objext
-
-# Executable file suffix (normally "").
-exeext=$exeext
-
-# whether the shell understands "unset".
-lt_unset=$lt_unset
-
-# turn spaces into newlines.
-SP2NL=$lt_lt_SP2NL
-
-# turn newlines into spaces.
-NL2SP=$lt_lt_NL2SP
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == "file_magic".
-file_magic_cmd=$lt_file_magic_cmd
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A symbol stripping program.
-STRIP=$lt_STRIP
-
-# Commands used to install an old-style archive.
-RANLIB=$lt_RANLIB
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# A C compiler.
-LTCC=$lt_CC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_CFLAGS
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# Transform the output of nm in a C name address pair when lib prefix is needed.
-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that does not interpret backslashes.
-ECHO=$lt_ECHO
-
-# Used to examine libraries when file_magic_cmd begins with "file".
-MAGIC_CMD=$MAGIC_CMD
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
-DSYMUTIL=$lt_DSYMUTIL
-
-# Tool to change global to local symbols on Mac OS X.
-NMEDIT=$lt_NMEDIT
-
-# Tool to manipulate fat objects and archives on Mac OS X.
-LIPO=$lt_LIPO
-
-# ldd/readelf like tool for Mach-O binaries on Mac OS X.
-OTOOL=$lt_OTOOL
-
-# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
-OTOOL64=$lt_OTOOL64
-
-# Old archive suffix (normally "a").
-libext=$libext
-
-# Shared library suffix (normally ".so").
-shrext_cmds=$lt_shrext_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at link time.
-variables_saved_for_relink=$lt_variables_saved_for_relink
-
-# Do we need the "lib" prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Library versioning type.
-version_type=$version_type
-
-# Shared library runtime path variable.
-runpath_var=$runpath_var
-
-# Shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names. First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Command to use after installation of a shared archive.
-postinstall_cmds=$lt_postinstall_cmds
-
-# Command to use after uninstallation of a shared archive.
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# As "finish_cmds", except a single script fragment to be evaled but
-# not shown.
-finish_eval=$lt_finish_eval
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Compile-time system search path for libraries.
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds
-
-# A language specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking. This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- case $xsi_shell in
- yes)
- cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac
-}
-
-# func_basename file
-func_basename ()
-{
- func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-# dirname: Compute the dirname of FILE. If nonempty,
-# add APPEND to the result, otherwise set result
-# to NONDIR_REPLACEMENT.
-# value returned in "$func_dirname_result"
-# basename: Compute filename of FILE.
-# value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac
- func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
- # positional parameters, so assign one to ordinary parameter first.
- func_stripname_result=${3}
- func_stripname_result=${func_stripname_result#"${1}"}
- func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
- func_opt_split_opt=${1%%=*}
- func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
- case ${1} in
- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
- *) func_lo2o_result=${1} ;;
- esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
- func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
- func_arith_result=$(( $* ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
- func_len_result=${#1}
-}
-
-_LT_EOF
- ;;
- *) # Bourne compatible functions.
- cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
- # Extract subdirectory from the argument.
- func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
- if test "X$func_dirname_result" = "X${1}"; then
- func_dirname_result="${3}"
- else
- func_dirname_result="$func_dirname_result${2}"
- fi
-}
-
-# func_basename file
-func_basename ()
-{
- func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
-}
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
- case ${2} in
- .*) func_stripname_result=`$ECHO "X${3}" \
- | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
- *) func_stripname_result=`$ECHO "X${3}" \
- | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
- esac
-}
-
-# sed scripts:
-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[^=]*=//'
-
-# func_opt_split
-func_opt_split ()
-{
- func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
- func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
- func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
- func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'`
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
- func_arith_result=`expr "$@"`
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
-
-_LT_EOF
-esac
-
-case $lt_shell_append in
- yes)
- cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
- eval "$1+=\$2"
-}
-_LT_EOF
- ;;
- *)
- cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
- eval "$1=\$$1\$2"
-}
-
-_LT_EOF
- ;;
- esac
-
-
- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-
- ;;
-
- esac
-done # for ac_tag
-
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || { (exit 1); exit 1; }
-fi
-
diff --git a/configure.ac b/configure.ac
index 86b4542..617fab7 100755
--- a/configure.ac
+++ b/configure.ac
@@ -9,6 +9,8 @@ AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_CONFIG_MACRO_DIR([m4])
# Checks for programs.
+m4_pattern_allow([AM_PROG_AR])
+AM_PROG_AR
AC_PROG_CC
AC_PROG_LIBTOOL
@@ -48,9 +50,13 @@ PKG_CHECK_MODULES(MMCOMMON,mm-common)
AC_SUBST(MMCOMMON_CFLAGS)
AC_SUBST(MMCOMMON_LIBS)
-PKG_CHECK_MODULES(MMLOG,mm-log)
-AC_SUBST(MMLOG_CFLAGS)
-AC_SUBST(MMLOG_LIBS)
+#PKG_CHECK_MODULES(MMMHAL,mm-mhal)
+#AC_SUBST(MMMHAL_CFLAGS)
+#AC_SUBST(MMMHAL_LIBS)
+
+PKG_CHECK_MODULES(DLOG,dlog)
+AC_SUBST(DLOG_CFLAGS)
+AC_SUBST(DLOG_LIBS)
PKG_CHECK_MODULES(GLIB, glib-2.0)
AC_SUBST(GLIB_CFLAGS)
@@ -60,6 +66,7 @@ PKG_CHECK_MODULES(GTK, gtk+-2.0, [HAVE_GTK=yes], [HAVE_GTK=no])
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
+
PKG_CHECK_MODULES(AVCODEC, libavcodec)
AC_SUBST(AVCODEC_CFLAGS)
AC_SUBST(AVCODEC_LIBS)
@@ -83,7 +90,7 @@ AC_SUBST(ICU_LIBS)
PKG_CHECK_MODULES(VCONF, vconf)
AC_SUBST(VCONF_CFLAGS)
AC_SUBST(VCONF_LIBS)
-
+
dnl use dyn --------------------------------------------------------------------------
AC_ARG_ENABLE(dyn, AC_HELP_STRING([--enable-dyn], [using dyn]),
[
diff --git a/formats/ffmpeg/Makefile.am b/formats/ffmpeg/Makefile.am
index 4d93a50..e1d6b5f 100755
--- a/formats/ffmpeg/Makefile.am
+++ b/formats/ffmpeg/Makefile.am
@@ -59,8 +59,9 @@ libmmfile_formats_la_LIBADD = $(MMCOMMON_LIBS) \
$(SWSCALE_LIBS) \
$(top_builddir)/utils/libmmfile_utils.la
-libmmfile_formats_la_CFLAGS += $(MMLOG_CFLAGS) -DMMF_LOG_OWNER=0x040 -DMMF_DEBUG_PREFIX=\"MMF-FILE-FORMAT-FFMPEG\"
-libmmfile_formats_la_LIBADD += $(MMLOG_LIBS)
+libmmfile_formats_la_CFLAGS += $(DLOG_CFLAGS)
+libmmfile_formats_la_LIBADD += $(DLOG_LIBS)
libmmfile_formats_la_CFLAGS += -D__MMFILE_FFMPEG_V100__
libmmfile_formats_la_CFLAGS += -D__MMFILE_FFMPEG_V085__
+libmmfile_formats_la_CFLAGS += -D__MMFILE_LIBAV_VERSION__=11.3
diff --git a/formats/ffmpeg/include/mm_file_format_aac.h b/formats/ffmpeg/include/mm_file_format_aac.h
index 177a09a..fbc7a77 100755
--- a/formats/ffmpeg/include/mm_file_format_aac.h
+++ b/formats/ffmpeg/include/mm_file_format_aac.h
@@ -33,55 +33,55 @@ extern "C" {
#define MMFILE_AAC_PARSER_FAIL 0
typedef enum _mmfile_aac_profile_type {
- AAC_PROFILE_MAIN,
- AAC_PROFILE_LC,
- AAC_PROFILE_SSR,
- AAC_PROFILE_LTP,
- AAC_PROFILE_UNKNOWN
+ AAC_PROFILE_MAIN,
+ AAC_PROFILE_LC,
+ AAC_PROFILE_SSR,
+ AAC_PROFILE_LTP,
+ AAC_PROFILE_UNKNOWN
}TAacProfileType;
typedef void* MMFileAACHandle;
typedef struct _mmfileaacstreaminfo {
- unsigned int iseekable;
- long long duration;
- long long fileSize;
- unsigned int bitRate;
- unsigned int samplingRate;
- unsigned int frameRate;
- unsigned int numAudioChannels;
- unsigned int numTracks;
- TAacProfileType profileType;
+ unsigned int iseekable;
+ long long duration;
+ long long fileSize;
+ unsigned int bitRate;
+ unsigned int samplingRate;
+ unsigned int frameRate;
+ unsigned int numAudioChannels;
+ unsigned int numTracks;
+ TAacProfileType profileType;
} tMMFILE_AAC_STREAM_INFO;
typedef struct _mmfileaactaginfo {
- char *title;
- char *author;
- char *artist;
- char *album;
- char *album_artist;
- char *year;
- char *copyright;
- char *comment;
- char *genre;
- char *tracknum;
- char *composer;
- char *classification;
- char *rating;
- char *recordDate;
- char *conductor;
- char *artworkMime;
- char *artwork;
- unsigned int artworkSize;
+ char *title;
+ char *author;
+ char *artist;
+ char *album;
+ char *album_artist;
+ char *year;
+ char *copyright;
+ char *comment;
+ char *genre;
+ char *tracknum;
+ char *composer;
+ char *classification;
+ char *rating;
+ char *recordDate;
+ char *conductor;
+ char *artworkMime;
+ char *artwork;
+ unsigned int artworkSize;
} tMMFILE_AAC_TAG_INFO;
-int mmfile_aacparser_open (MMFileAACHandle *handle, const char *src);
-int mmfile_aacparser_get_stream_info (MMFileAACHandle handle, tMMFILE_AAC_STREAM_INFO *aacinfo);
-int mmfile_aacparser_get_tag_info (MMFileAACHandle handle, tMMFILE_AAC_TAG_INFO *info);
-int mmfile_aacparser_get_next_frame (MMFileAACHandle handle, tMMFILE_AAC_STREAM_INFO *aacinfo);
-int mmfile_aacparser_close (MMFileAACHandle handle);
+int mmfile_aacparser_open(MMFileAACHandle *handle, const char *src);
+int mmfile_aacparser_get_stream_info(MMFileAACHandle handle, tMMFILE_AAC_STREAM_INFO *aacinfo);
+int mmfile_aacparser_get_tag_info(MMFileAACHandle handle, tMMFILE_AAC_TAG_INFO *info);
+int mmfile_aacparser_get_next_frame(MMFileAACHandle handle, tMMFILE_AAC_STREAM_INFO *aacinfo);
+int mmfile_aacparser_close(MMFileAACHandle handle);
#ifdef __cplusplus
}
diff --git a/formats/ffmpeg/include/mm_file_format_amr.h b/formats/ffmpeg/include/mm_file_format_amr.h
index 4df6dcd..6b4fc4f 100755
--- a/formats/ffmpeg/include/mm_file_format_amr.h
+++ b/formats/ffmpeg/include/mm_file_format_amr.h
@@ -34,19 +34,19 @@ extern "C" {
typedef void* MMFileAMRHandle;
typedef struct _mmfileamrstreaminfo {
- long long duration;
- long long fileSize;
- unsigned int bitRate;
- unsigned int samplingRate;
- unsigned int frameRate;
- unsigned int numAudioChannels;
- unsigned int numTracks;
+ long long duration;
+ long long fileSize;
+ unsigned int bitRate;
+ unsigned int samplingRate;
+ unsigned int frameRate;
+ unsigned int numAudioChannels;
+ unsigned int numTracks;
} tMMFILE_AMR_STREAM_INFO;
-int mmfile_amrparser_open (MMFileAMRHandle *handle, const char *src);
-int mmfile_amrparser_get_stream_info (MMFileAMRHandle handle, tMMFILE_AMR_STREAM_INFO *amrinfo);
-int mmfile_amrparser_close (MMFileAMRHandle handle);
+int mmfile_amrparser_open(MMFileAMRHandle *handle, const char *src);
+int mmfile_amrparser_get_stream_info(MMFileAMRHandle handle, tMMFILE_AMR_STREAM_INFO *amrinfo);
+int mmfile_amrparser_close(MMFileAMRHandle handle);
#ifdef __cplusplus
}
diff --git a/formats/ffmpeg/include/mm_file_format_audio.h b/formats/ffmpeg/include/mm_file_format_audio.h
index 0711395..fb838f7 100755
--- a/formats/ffmpeg/include/mm_file_format_audio.h
+++ b/formats/ffmpeg/include/mm_file_format_audio.h
@@ -29,7 +29,7 @@
#define MPEG_2_SIZE_LAYER_2_3 (MPEG_1_SIZE_LAYER_2_3 / 2)
/* MP3 */
-#define MP3TAGINFO_SIZE 128 // file end 128 byte
+#define MP3TAGINFO_SIZE 128 /* file end 128 byte */
#define FRAMES_FLAG 0x0001
#define BYTES_FLAG 0x0002
#define TOC_FLAG 0x0004
@@ -86,61 +86,61 @@
#define AV_MP3HDR_EMPHASIS_M 0x03
#define AV_MP3HDR_EMPHASIS_SHIFT 0
-#define MASK_MPEG 0x18 // 00011000
-#define MASK_MPEG_25 0x00 // 00000000
-#define MASK_MPEG_2 0x10 // 00010000
-#define MASK_MPEG_1 0x18 // 00011000
+#define MASK_MPEG 0x18 /* 00011000 */
+#define MASK_MPEG_25 0x00 /* 00000000 */
+#define MASK_MPEG_2 0x10 /* 00010000 */
+#define MASK_MPEG_1 0x18 /* 00011000 */
-#define MASK_LAYER 0x06 // 00000110
-#define MASK_LAYER_3 0x02 // 00000010
-#define MASK_LAYER_2 0x04 // 00000100
-#define MASK_LAYER_1 0x06 // 00000110
+#define MASK_LAYER 0x06 /* 00000110 */
+#define MASK_LAYER_3 0x02 /* 00000010 */
+#define MASK_LAYER_2 0x04 /* 00000100 */
+#define MASK_LAYER_1 0x06 /* 00000110 */
-#define MASK_CHANNEL 0xC0 // 11000000
-#define MASK_CHANNEL_ST 0x00 // 00000000
-#define MASK_CHANNEL_JS 0x40 // 01000000
-#define MASK_CHANNEL_DC 0x80 // 10000000
-#define MASK_CHANNEL_MN 0xC0 // 11000000
+#define MASK_CHANNEL 0xC0 /* 11000000 */
+#define MASK_CHANNEL_ST 0x00 /* 00000000 */
+#define MASK_CHANNEL_JS 0x40 /* 01000000 */
+#define MASK_CHANNEL_DC 0x80 /* 10000000 */
+#define MASK_CHANNEL_MN 0xC0 /* 11000000 */
-#define MASK_SAMPLERATE 0x0C // 00001100
+#define MASK_SAMPLERATE 0x0C /* 00001100 */
-#define MASK_PADDING 0x02 // 00000010
+#define MASK_PADDING 0x02 /* 00000010 */
-#define _AV_MP3_HEADER_POSITION_MAX (50*1024) // mp3 header should be exist inside this size
-#define AV_MP3_HEADER_READ_MAX 200000 // mp3 header should be exist inside this size
+#define _AV_MP3_HEADER_POSITION_MAX (50*1024) /* mp3 header should be exist inside this size */
+#define AV_MP3_HEADER_READ_MAX 200000 /* mp3 header should be exist inside this size */
#define AV_WM_LOCALCODE_SIZE_MAX 2
/*
* Xing Header Information
*/
-typedef struct{
- int hId; // from MPEG header, 0=MPEG2, 1=MPEG1
- int sampRate; // determined from MPEG header
- int flags; // from Xing header data
- int frames; // total bit stream frames from Xing header data
- int bytes; // total bit stream bytes from Xing header data
- int vbrScale; // encoded vbr scale from Xing header data
- unsigned char *toc; // pointer to unsigned char toc_buffer[100]
- // may be NULL if toc not desired
+typedef struct {
+ int hId; /* from MPEG header, 0=MPEG2, 1=MPEG1 */
+ int sampRate; /* determined from MPEG header */
+ int flags; /* from Xing header data */
+ int frames; /* total bit stream frames from Xing header data */
+ int bytes; /* total bit stream bytes from Xing header data */
+ int vbrScale; /* encoded vbr scale from Xing header data */
+ unsigned char *toc; /* pointer to unsigned char toc_buffer[100] */
+ /* may be NULL if toc not desired */
} AvXHeadData;
-typedef struct{
- int hId; // from MPEG header, 0=MPEG2, 1=MPEG1
- int vID; // ver. ID
- int sampRate; // determined from MPEG header
- float delay; // delay
- int qualityIndicator; // qualityIndicator
- int bytes; // total bit stream bytes from Xing header data
- int frames; // total bit stream frames from Xing header data
- int numOfTOC; // numOfTOC
- int vbriScale; // encoded vbri scale from VBRI header data
- int sizePerTable; // encoded sizePerTable from VBRI header data
- int framesPerTable; //encoded framesPerTable from VBRI header data
- unsigned char *toc; // pointer to unsigned char toc_buffer[100]
- // may be NULL if toc not desired
+typedef struct {
+ int hId; /* from MPEG header, 0=MPEG2, 1=MPEG1 */
+ int vID; /* ver. ID */
+ int sampRate; /* determined from MPEG header */
+ float delay; /* delay */
+ int qualityIndicator; /* qualityIndicator */
+ int bytes; /* total bit stream bytes from Xing header data */
+ int frames; /* total bit stream frames from Xing header data */
+ int numOfTOC; /* numOfTOC */
+ int vbriScale; /* encoded vbri scale from VBRI header data */
+ int sizePerTable; /* encoded sizePerTable from VBRI header data */
+ int framesPerTable; /*encoded framesPerTable from VBRI header data */
+ unsigned char *toc; /* pointer to unsigned char toc_buffer[100] */
+ /* may be NULL if toc not desired */
} AvVBRIHeadData;
-typedef enum {
+typedef enum {
AV_MPEG_VER_RESERVED, /* Reserved */
AV_MPEG_VER_1, /* MPEG Version 1.0 */
@@ -150,16 +150,16 @@ typedef enum {
AV_MPEG_VER_UNKNOWN /* Unable to determine version information */
} AvMp3VerEnumType;
-typedef enum {
+typedef enum {
AV_MP3_LAYER_RESERVED = 0, /* Reserved */
- AV_MPEG2_LAYER_AAC = AV_MP3_LAYER_RESERVED, /* MPEG2 AAC compression */
+ AV_MPEG2_LAYER_AAC = AV_MP3_LAYER_RESERVED, /* MPEG2 AAC compression */
AV_MP3_LAYER_1, /* MPEG Layer 1 compression */
AV_MP3_LAYER_2, /* MPEG Layer 2 compression */
AV_MP3_LAYER_3, /* MPEG Layer 3 compression */
AV_MP3_LAYER_UNKNOWN /* Unable to determine layer information */
-}AvMpegLayerEnumType;
+} AvMpegLayerEnumType;
-typedef enum {
+typedef enum {
AV_MP3_BITRATE_FREE = 0, /* Free bitrate (determined by software) */
AV_MP3_BITRATE_8K = 8, /* Fixed bitrates */
AV_MP3_BITRATE_16K = 16, /* */
diff --git a/formats/ffmpeg/include/mm_file_format_ffmpeg_mem.h b/formats/ffmpeg/include/mm_file_format_ffmpeg_mem.h
index 2cf62e2..48a56be 100755
--- a/formats/ffmpeg/include/mm_file_format_ffmpeg_mem.h
+++ b/formats/ffmpeg/include/mm_file_format_ffmpeg_mem.h
@@ -27,6 +27,7 @@ extern "C" {
#endif
#include <libavformat/avformat.h>
+#include <libavformat/url.h>
extern URLProtocol MMFileMEMProtocol;
diff --git a/formats/ffmpeg/include/mm_file_format_id3tag.h b/formats/ffmpeg/include/mm_file_format_id3tag.h
index f1fe3c7..0bcae37 100755
--- a/formats/ffmpeg/include/mm_file_format_id3tag.h
+++ b/formats/ffmpeg/include/mm_file_format_id3tag.h
@@ -76,7 +76,7 @@ typedef enum {
} AvID3v2PictureType;
-#define MP3TAGINFO_SIZE 128 // file end 128 byte
+#define MP3TAGINFO_SIZE 128 /* file end 128 byte */
#define MP3_ID3_TITLE_LENGTH 30
#define MP3_ID3_ARTIST_LENGTH 30
#define MP3_ID3_ALBUM_LENGTH 30
@@ -103,7 +103,6 @@ typedef enum {
AV_ID3V2_UTF16_BE,
AV_ID3V2_UTF8,
AV_ID3V2_MAX
-
} AvID3v2EncodingType;
@@ -117,7 +116,6 @@ typedef struct{
int imgDesLen;
int imgMimetypeLen;
bool bURLInfo;
-
} AvTagVer2ImageInfo;
typedef struct{
@@ -148,14 +146,13 @@ typedef struct{
} AvTagVer2AdditionalData;
-
-typedef struct
-{
+
+typedef struct {
int titleLen;
int artistLen;
int authorLen;
int copyrightLen;
- //int descriptionLen; /*ID3tag official tag name is "COMM" and meaning "Comment"*/
+ /*int descriptionLen;*/ /*ID3tag official tag name is "COMM" and meaning "Comment"*/
int commentLen;
int ratingLen;
int albumLen;
@@ -163,72 +160,69 @@ typedef struct
int genreLen;
int tracknumLen;
int recdateLen;
-
-// for PC Studio Podcast
+
+/* for PC Studio Podcast */
int contentGroupLen;
-
-// for ID3V2 Tag
+
+/* for ID3V2 Tag */
int encbyLen;
int urlLen;
int originartistLen;
int composerLen;
-// To send resolution info to appl from OEM
- int width;
+/* To send resolution info to appl from OEM */
+ int width;
int height;
-
+
unsigned int bitRate;
unsigned int sampleRate;
unsigned int channels;
-// unsigned long creationTime;
+/* unsigned long creationTime; */
unsigned long duration;
-// for mp3 Info
- char *pToc; // VBR�϶� SeekPosition�� ���ϱ� ���� TOC ���̺��� ������ ��� �ִ� char �迭 , 100 ����Ʈ ����
- unsigned int mpegVersion; // 1 : mpeg 1, 2 : mpeg 2, 3 : mpeg2.5
- unsigned int layer; // 1 : layer1, 2 : layer2, 3 : layer3
- unsigned int channelIndex; // 0 : stereo, 1 : joint_stereo, 2 : dual_channel, 3 : mono
+/* for mp3 Info */
+ char *pToc; /* VBR�϶� SeekPosition�� ���ϱ� ���� TOC ���̺��� ������ ��� �ִ� char �迭, 100 ����Ʈ ���� */
+ unsigned int mpegVersion; /* 1 : mpeg 1, 2 : mpeg 2, 3 : mpeg2.5 */
+ unsigned int layer; /* 1 : layer1, 2 : layer2, 3 : layer3 */
+ unsigned int channelIndex; /* 0 : stereo, 1 : joint_stereo, 2 : dual_channel, 3 : mono */
unsigned int objectType;
unsigned int headerType;
- long fileLen; // mp3 ������ ��ü ����
- long headerPos; // mp3 ����� ó������ ��Ÿ���� ��ġ
- long datafileLen; // ID3Tag���� �����ϰ� ���� mp3 frame���� ���� , VBR�϶� XHEADDATA �� bytes �� �ش��Ѵ�
- int frameSize; // mp3 frame �� ���� ũ��
- int frameNum; // mp3 ���Ͽ� �������� � ����ִ°�?
- bool bVbr; // VBR mp3?
- bool bPadding; // Padding?
+ long fileLen; /* mp3 ������ ��ü ���� */
+ long headerPos; /* mp3 ����� ó������ ��Ÿ���� ��ġ */
+ long datafileLen; /* ID3Tag���� �����ϰ� ���� mp3 frame���� ����, VBR�϶� XHEADDATA �� bytes �� �ش��Ѵ� */
+ int frameSize; /* mp3 frame �� ���� ũ�� */
+ int frameNum; /* mp3 ���Ͽ� �������� � ����ִ°�? */
+ bool bVbr; /* VBR mp3? */
+ bool bPadding; /* Padding? */
bool bV1tagFound;
- char *pTitle; //Title/songname/
- char *pArtist; //Lead performer(s)/Soloist(s),
- char *pAuthor; //Author
+ char *pTitle; /*Title/songname/ */
+ char *pArtist; /*Lead performer(s)/Soloist(s), */
+ char *pAuthor; /*Author */
char *pCopyright;
- //char *pDescription; /*ID3tag official tag name is "COMM" and meaning "Comment"*/
+ /*char *pDescription;*/ /*ID3tag official tag name is "COMM" and meaning "Comment"*/
char *pComment;
char *pRating;
- char *pAlbum; //Album/Movie/
+ char *pAlbum; /*Album/Movie/ */
char *pAlbum_Artist;
char *pYear;
- char *pGenre;
- char *pTrackNum; //Track number/Position in set
- char *pRecDate; //Recording dates
-
-// for PC Studio Podcast
- char *pContentGroup;
+ char *pGenre;
+ char *pTrackNum; /*Track number/Position in set */
+ char *pRecDate; /*Recording dates */
-// for ID3V2 Tag
- char *pEncBy; //Encoded by
- char *pURL; //User defined URL link frame for ID3V2 Tag
- char *pOriginArtist; //Original artist(s)/performer(s)
- char *pComposer; //Composer
- AvTagVer2ImageInfo imageInfo; //Album art attached feature
- AvTagVer2AdditionalData tagV2Info; //Needed data for ID3 tag parsing
+/* for PC Studio Podcast */
+ char *pContentGroup;
-// for DRM 2.0
- char *pTransactionID;
+/* for ID3V2 Tag */
+ char *pEncBy; /*Encoded by */
+ char *pURL; /*User defined URL link frame for ID3V2 Tag */
+ char *pOriginArtist; /*Original artist(s)/performer(s) */
+ char *pComposer; /*Composer */
+ AvTagVer2ImageInfo imageInfo; /*Album art attached feature */
+ AvTagVer2AdditionalData tagV2Info; /*Needed data for ID3 tag parsing */
-//for ID3V1 Tag
- unsigned char genre;
+/*for ID3V1 Tag */
+ unsigned char genre;
} AvFileContentInfo;
@@ -239,43 +233,38 @@ typedef struct {
int height;
} AvExtraInfo;
-inline static void mm_file_free_AvFileContentInfo (AvFileContentInfo *pInfo)
+inline static void mm_file_free_AvFileContentInfo(AvFileContentInfo *pInfo)
{
if (pInfo) {
- if (pInfo->pToc) mmfile_free (pInfo->pToc);
- if (pInfo->pTitle) mmfile_free (pInfo->pTitle);
- if (pInfo->pArtist) mmfile_free (pInfo->pArtist);
- if (pInfo->pAuthor) mmfile_free (pInfo->pAuthor);
- if (pInfo->pCopyright) mmfile_free (pInfo->pCopyright);
- //if (pInfo->pDescription) mmfile_free (pInfo->pDescription);
- if (pInfo->pComment) mmfile_free (pInfo->pComment);
- if (pInfo->pRating) mmfile_free (pInfo->pRating);
- if (pInfo->pAlbum) mmfile_free (pInfo->pAlbum);
- if (pInfo->pAlbum_Artist) mmfile_free (pInfo->pAlbum_Artist);
- if (pInfo->pYear) mmfile_free (pInfo->pYear);
- if (pInfo->pGenre) mmfile_free (pInfo->pGenre);
- if (pInfo->pTrackNum) mmfile_free (pInfo->pTrackNum);
- if (pInfo->pRecDate) mmfile_free (pInfo->pRecDate);
-
- if (pInfo->pContentGroup) mmfile_free (pInfo->pContentGroup);
-
- if (pInfo->pEncBy) mmfile_free (pInfo->pEncBy);
- if (pInfo->pURL) mmfile_free (pInfo->pURL);
- if (pInfo->pOriginArtist) mmfile_free (pInfo->pOriginArtist);
- if (pInfo->pComposer) mmfile_free (pInfo->pComposer);
-
- if (pInfo->imageInfo.pImageBuf) mmfile_free (pInfo->imageInfo.pImageBuf);
-
- if (pInfo->pTransactionID) mmfile_free (pInfo->pTransactionID);
+ if (pInfo->pToc) mmfile_free(pInfo->pToc);
+ if (pInfo->pTitle) mmfile_free(pInfo->pTitle);
+ if (pInfo->pArtist) mmfile_free(pInfo->pArtist);
+ if (pInfo->pAuthor) mmfile_free(pInfo->pAuthor);
+ if (pInfo->pCopyright) mmfile_free(pInfo->pCopyright);
+ /*if (pInfo->pDescription) mmfile_free(pInfo->pDescription); */
+ if (pInfo->pComment) mmfile_free(pInfo->pComment);
+ if (pInfo->pRating) mmfile_free(pInfo->pRating);
+ if (pInfo->pAlbum) mmfile_free(pInfo->pAlbum);
+ if (pInfo->pAlbum_Artist) mmfile_free(pInfo->pAlbum_Artist);
+ if (pInfo->pYear) mmfile_free(pInfo->pYear);
+ if (pInfo->pGenre) mmfile_free(pInfo->pGenre);
+ if (pInfo->pTrackNum) mmfile_free(pInfo->pTrackNum);
+ if (pInfo->pRecDate) mmfile_free(pInfo->pRecDate);
+ if (pInfo->pContentGroup) mmfile_free(pInfo->pContentGroup);
+ if (pInfo->pEncBy) mmfile_free(pInfo->pEncBy);
+ if (pInfo->pURL) mmfile_free(pInfo->pURL);
+ if (pInfo->pOriginArtist) mmfile_free(pInfo->pOriginArtist);
+ if (pInfo->pComposer) mmfile_free(pInfo->pComposer);
+ if (pInfo->imageInfo.pImageBuf) mmfile_free(pInfo->imageInfo.pImageBuf);
}
}
-bool mm_file_id3tag_parse_v110 (AvFileContentInfo* pInfo, unsigned char *buffer); //20050401 Condol : for MP3 content Info.
-bool mm_file_id3tag_parse_v222 (AvFileContentInfo* pInfo, unsigned char *buffer);
-bool mm_file_id3tag_parse_v223 (AvFileContentInfo* pInfo, unsigned char *buffer);
-bool mm_file_id3tag_parse_v224 (AvFileContentInfo* pInfo, unsigned char *buffer);
-void mm_file_id3tag_restore_content_info (AvFileContentInfo* pInfo);
+bool mm_file_id3tag_parse_v110(AvFileContentInfo* pInfo, unsigned char *buffer); //20050401 Condol : for MP3 content Info.
+bool mm_file_id3tag_parse_v222(AvFileContentInfo* pInfo, unsigned char *buffer);
+bool mm_file_id3tag_parse_v223(AvFileContentInfo* pInfo, unsigned char *buffer);
+bool mm_file_id3tag_parse_v224(AvFileContentInfo* pInfo, unsigned char *buffer);
+void mm_file_id3tag_restore_content_info(AvFileContentInfo* pInfo);
#ifdef __cplusplus
}
diff --git a/formats/ffmpeg/include/mm_file_format_imelody.h b/formats/ffmpeg/include/mm_file_format_imelody.h
index 41cee55..698a54f 100755
--- a/formats/ffmpeg/include/mm_file_format_imelody.h
+++ b/formats/ffmpeg/include/mm_file_format_imelody.h
@@ -26,13 +26,12 @@
extern "C" {
#endif
-typedef struct mmfileimelodytags
-{
- char *title;
- char *composer;
- int beat;
- char *copyright;
- char *comment;
+typedef struct mmfileimelodytags {
+ char *title;
+ char *composer;
+ int beat;
+ char *copyright;
+ char *comment;
} tMMFileImelodyTagInfo;
diff --git a/formats/ffmpeg/include/mm_file_format_midi.h b/formats/ffmpeg/include/mm_file_format_midi.h
index 87a3b99..2e582ab 100755
--- a/formats/ffmpeg/include/mm_file_format_midi.h
+++ b/formats/ffmpeg/include/mm_file_format_midi.h
@@ -38,8 +38,8 @@ typedef struct {
char *comment;
} MIDI_INFO_SIMPLE;
-MIDI_INFO_SIMPLE* mmfile_format_get_midi_infomation (char* uri);
-void mmfile_format_free_midi_infomation (MIDI_INFO_SIMPLE *info);
+MIDI_INFO_SIMPLE *mmfile_format_get_midi_infomation(char *uri);
+void mmfile_format_free_midi_infomation(MIDI_INFO_SIMPLE *info);
#ifdef __cplusplus
}
diff --git a/formats/ffmpeg/include/mm_file_format_private.h b/formats/ffmpeg/include/mm_file_format_private.h
index 366d5db..2959dc0 100755
--- a/formats/ffmpeg/include/mm_file_format_private.h
+++ b/formats/ffmpeg/include/mm_file_format_private.h
@@ -30,18 +30,18 @@ extern "C" {
#include "mm_file_formats.h"
/* open functions list: the order of list depends on mm-types.h */
-int mmfile_format_open_dummy (MMFileFormatContext *fileContext);
-int mmfile_format_open_ffmpg (MMFileFormatContext *fileContext);
-int mmfile_format_open_mp3 (MMFileFormatContext *fileContext);
-//int mmfile_format_open_3gp (MMFileFormatContext *fileContext);
-//int mmfile_format_open_avi (MMFileFormatContext *fileContext);
-//int mmfile_format_open_asf (MMFileFormatContext *fileContext);
-int mmfile_format_open_mmf (MMFileFormatContext *fileContext);
-int mmfile_format_open_amr (MMFileFormatContext *fileContext);
-int mmfile_format_open_aac (MMFileFormatContext *fileContext);
-int mmfile_format_open_wav (MMFileFormatContext *fileContext);
-int mmfile_format_open_mid (MMFileFormatContext *fileContext);
-int mmfile_format_open_imy (MMFileFormatContext *fileContext);
+int mmfile_format_open_dummy(MMFileFormatContext *fileContext);
+int mmfile_format_open_ffmpg(MMFileFormatContext *fileContext);
+int mmfile_format_open_mp3(MMFileFormatContext *fileContext);
+/*int mmfile_format_open_3gp(MMFileFormatContext *fileContext); */
+/*int mmfile_format_open_avi(MMFileFormatContext *fileContext); */
+/*int mmfile_format_open_asf(MMFileFormatContext *fileContext); */
+int mmfile_format_open_mmf(MMFileFormatContext *fileContext);
+int mmfile_format_open_amr(MMFileFormatContext *fileContext);
+int mmfile_format_open_aac(MMFileFormatContext *fileContext);
+int mmfile_format_open_wav(MMFileFormatContext *fileContext);
+int mmfile_format_open_mid(MMFileFormatContext *fileContext);
+int mmfile_format_open_imy(MMFileFormatContext *fileContext);
#ifdef __cplusplus
diff --git a/formats/ffmpeg/include/mm_file_format_tag_id3.h b/formats/ffmpeg/include/mm_file_format_tag_id3.h
index e3b4d81..90ba1e9 100755
--- a/formats/ffmpeg/include/mm_file_format_tag_id3.h
+++ b/formats/ffmpeg/include/mm_file_format_tag_id3.h
@@ -32,21 +32,20 @@ extern "C" {
#define MMFILE_ID3TAG_FAIL 0
#define MMFILE_ID3TAG_SUCCESS 1
-typedef void* MMFileID3TagHandle;
-
-typedef enum mmfileId3TagInfoVersion
-{
- MMFILE_ID3TAG_V1_0 = 0,
- MMFILE_ID3TAG_V1_1,
- MMFILE_ID3TAG_V2_0,
- MMFILE_ID3TAG_V2_2,
- MMFILE_ID3TAG_V2_3,
- MMFILE_ID3TAG_V2_4,
- MMFILE_ID3TAG_VMAX,
+typedef void *MMFileID3TagHandle;
+
+typedef enum mmfileId3TagInfoVersion {
+ MMFILE_ID3TAG_V1_0 = 0,
+ MMFILE_ID3TAG_V1_1,
+ MMFILE_ID3TAG_V2_0,
+ MMFILE_ID3TAG_V2_2,
+ MMFILE_ID3TAG_V2_3,
+ MMFILE_ID3TAG_V2_4,
+ MMFILE_ID3TAG_VMAX,
} eMMFileID3TagVersion;
-int MMFileID3V1TagFind (MMFileIOHandle *fp, unsigned char bAppended, unsigned int startOffset, unsigned int endOffset, tMMFileTags *out);
-int MMFileID3V2TagFind (MMFileIOHandle *fp, unsigned char bAppended, unsigned int startOffset, unsigned int endOffset, tMMFileTags *out);
+int MMFileID3V1TagFind(MMFileIOHandle *fp, unsigned char bAppended, unsigned int startOffset, unsigned int endOffset, tMMFileTags *out);
+int MMFileID3V2TagFind(MMFileIOHandle *fp, unsigned char bAppended, unsigned int startOffset, unsigned int endOffset, tMMFileTags *out);
#ifdef __cplusplus
}
diff --git a/formats/ffmpeg/include/mm_file_format_tags.h b/formats/ffmpeg/include/mm_file_format_tags.h
index eb5100d..c8f84f2 100755
--- a/formats/ffmpeg/include/mm_file_format_tags.h
+++ b/formats/ffmpeg/include/mm_file_format_tags.h
@@ -26,35 +26,33 @@
extern "C" {
#endif
-typedef void* MMFileTagsHandle;
+typedef void *MMFileTagsHandle;
#define MMFILE_TAGS_SUCCESS 1
#define MMFILE_TAGS_FAIL 0
-typedef enum mmfiletagstype
-{
- MMFILE_TAG_ID3V1 = 0,
- MMFILE_TAG_ID3V2,
- MMFILE_TAG_MUSICAL_MATCH,
- MMFILE_TAG_LYRICS3,
- MMFILE_TAG_APE,
- MMFILE_TAG_MAX,
+typedef enum mmfiletagstype {
+ MMFILE_TAG_ID3V1 = 0,
+ MMFILE_TAG_ID3V2,
+ MMFILE_TAG_MUSICAL_MATCH,
+ MMFILE_TAG_LYRICS3,
+ MMFILE_TAG_APE,
+ MMFILE_TAG_MAX,
} eMMFileTagsType;
-typedef struct mmfileTags
-{
- eMMFileTagsType typeOfTag;
- unsigned char bAppendedTag;
- unsigned int version;
- unsigned int startOffset;
- unsigned int tagSize;
- unsigned int endOffset;
+typedef struct mmfileTags {
+ eMMFileTagsType typeOfTag;
+ unsigned char bAppendedTag;
+ unsigned int version;
+ unsigned int startOffset;
+ unsigned int tagSize;
+ unsigned int endOffset;
} tMMFileTags;
-int MMFileOpenTags (MMFileTagsHandle *tagsHandle, const char *uriName);
-int MMFileGetFirstTag (MMFileTagsHandle tagsHandle, tMMFileTags *out);
-int MMFileGetNextTag (MMFileTagsHandle tagsHandle, tMMFileTags *out);
-int MMFileTagsClose (MMFileTagsHandle tagsHandle);
+int MMFileOpenTags(MMFileTagsHandle *tagsHandle, const char *uriName);
+int MMFileGetFirstTag(MMFileTagsHandle tagsHandle, tMMFileTags *out);
+int MMFileGetNextTag(MMFileTagsHandle tagsHandle, tMMFileTags *out);
+int MMFileTagsClose(MMFileTagsHandle tagsHandle);
#ifdef __cplusplus
}
diff --git a/formats/ffmpeg/mm_file_format_aac.c b/formats/ffmpeg/mm_file_format_aac.c
index 0b0d16a..725ba43 100755
--- a/formats/ffmpeg/mm_file_format_aac.c
+++ b/formats/ffmpeg/mm_file_format_aac.c
@@ -19,22 +19,22 @@
*
*/
-#include <stdio.h>
+#include <stdio.h>
#include <string.h> /*memcmp*/
#include <stdlib.h> /*malloc*/
#include <mm_error.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
#include "mm_file_format_private.h"
#include "mm_file_format_aac.h"
-// Internal Error Type
+/* Internal Error Type */
#define MMFILE_AAC_PARSER_FILE_END 2
-
-// Media specific definations
+
+/* Media specific definations */
#define MMFILE_AAC_ADIF_HEADER_MAX_SIZE 30
#define MMFILE_AAC_ADTS_HEADER_MAX_SIZE 7
#define AAC_ADTS_FRAME_LEN_OFFSET 30
@@ -44,732 +44,722 @@
#define IS_AAC_ADTS_HEADER(buff) (((buff)[0] == 0xff) && (((buff)[1] & 0xf0) == 0xf0))
-// Array to Number conversions
-#define GET_INT_NUMBER(buff) (int)( (((int)(buff)[0]) << 24) | \
+/* Array to Number conversions */
+#define GET_INT_NUMBER(buff) (int)((((int)(buff)[0]) << 24) | \
(((int)(buff)[1]) << 16) | \
(((int)(buff)[2]) << 8) | \
(((int)(buff)[3])))
-#define GET_SHORT_NUMBER(buff) (short)( ((short)(buff)[0] << 8) | \
- ((short)(buff)[1]) )
-
-
-
-typedef enum _mmfile_aac_format_type {
- AAC_FORMAT_ADIF,
- AAC_FORMAT_ADTS,
- AAC_FORMAT_UNKNOWN
-}TAacFormatType;
+#define GET_SHORT_NUMBER(buff) (short)(((short)(buff)[0] << 8) | \
+ ((short)(buff)[1]))
+
+
+
+typedef enum _mmfile_aac_format_type {
+ AAC_FORMAT_ADIF,
+ AAC_FORMAT_ADTS,
+ AAC_FORMAT_UNKNOWN
+} TAacFormatType;
typedef enum _mmfile_aac_bitstream_type {
- AAC_STREAM_CONSTANT,
- AAC_STREAM_VARIABLE
-}TAacStreamType;
+ AAC_STREAM_CONSTANT,
+ AAC_STREAM_VARIABLE
+} TAacStreamType;
typedef enum _mmfile_aac_mpeg_type {
- AAC_MPEG_4,
- AAC_MPEG_2
-}TAacMpegType;
+ AAC_MPEG_4,
+ AAC_MPEG_2
+} TAacMpegType;
typedef struct _mmfile_aac_handle {
- MMFileIOHandle* hFile;
- AvFileContentInfo id3Handle;
- unsigned int streamOffset;
- unsigned int tagOffset;
- char isTagPresent;
- unsigned int tagInfoSize;
- unsigned char tagVersion;
- TAacFormatType formatType;
- TAacStreamType streamType;
- TAacMpegType mpegType;
- tMMFILE_AAC_STREAM_INFO streamInfo;
- tMMFILE_AAC_TAG_INFO tagInfo;
-}tMMFILE_AAC_HANDLE;
+ MMFileIOHandle *hFile;
+ AvFileContentInfo id3Handle;
+ unsigned int streamOffset;
+ unsigned int tagOffset;
+ char isTagPresent;
+ unsigned int tagInfoSize;
+ unsigned char tagVersion;
+ TAacFormatType formatType;
+ TAacStreamType streamType;
+ TAacMpegType mpegType;
+ tMMFILE_AAC_STREAM_INFO streamInfo;
+ tMMFILE_AAC_TAG_INFO tagInfo;
+} tMMFILE_AAC_HANDLE;
/*Index table for Sampling frequency */
-const int Sampling_freq_table[16] = { 96000, 88200, 64000, 48000,
+const int Sampling_freq_table[16] = { 96000, 88200, 64000, 48000,
44100, 32000, 24000, 22050,
16000, 12000, 11025, 8000,
- 0, 0, 0, 0 };
-
-/* internal APIs */
-void _aac_init_handle(tMMFILE_AAC_HANDLE* privateData);
-int _search_id3tag(tMMFILE_AAC_HANDLE* pData);
-int _parse_id3_tag(tMMFILE_AAC_HANDLE* pData);
-int _get_range_bits_value (unsigned char* buff, int fieldOffset, int fieldSize);
-int _parse_aac_adif_header (tMMFILE_AAC_HANDLE* pData);
-int _get_next_adts_frame_length(tMMFILE_AAC_HANDLE* pData, int* frameLen);
-int _parse_aac_adts_header(tMMFILE_AAC_HANDLE* pData);
-
-
-void _aac_init_handle(tMMFILE_AAC_HANDLE* privateData)
+ 0, 0, 0, 0
+ };
+
+/* internal APIs */
+void _aac_init_handle(tMMFILE_AAC_HANDLE *privateData);
+int _search_id3tag(tMMFILE_AAC_HANDLE *pData);
+int _parse_id3_tag(tMMFILE_AAC_HANDLE *pData);
+int _get_range_bits_value(unsigned char *buff, int fieldOffset, int fieldSize);
+int _parse_aac_adif_header(tMMFILE_AAC_HANDLE *pData);
+int _get_next_adts_frame_length(tMMFILE_AAC_HANDLE *pData, int *frameLen);
+int _parse_aac_adts_header(tMMFILE_AAC_HANDLE *pData);
+
+
+void _aac_init_handle(tMMFILE_AAC_HANDLE *privateData)
{
- /* Default Initializations */
- privateData->streamOffset = 0;
- privateData->isTagPresent = FALSE;
- privateData->streamOffset = 0;
- privateData->tagOffset = 0;
-
- privateData->streamInfo.fileSize = 0;
- privateData->streamInfo.duration = 0;
- privateData->streamInfo.bitRate = 0;
- privateData->streamInfo.samplingRate = 0;
- privateData->streamInfo.frameRate = 0;
- privateData->streamInfo.numAudioChannels = 0;
- privateData->streamInfo.numTracks = 1;
- privateData->streamInfo.profileType = 0;
-
- privateData->tagInfo.title = NULL;
- privateData->tagInfo.author = NULL;
- privateData->tagInfo.artist = NULL;
- privateData->tagInfo.album = NULL;
- privateData->tagInfo.album_artist = NULL;
- privateData->tagInfo.year = NULL;
- privateData->tagInfo.copyright = NULL;
- privateData->tagInfo.comment = NULL;
- privateData->tagInfo.genre = NULL;
- privateData->tagInfo.composer = NULL;
- privateData->tagInfo.classification = NULL;
- privateData->tagInfo.rating = NULL;
- privateData->tagInfo.recordDate = NULL;
- privateData->tagInfo.conductor = NULL;
- privateData->tagInfo.artwork = NULL;
- privateData->tagInfo.artworkSize = 0;
- privateData->tagInfo.artworkMime = NULL;
+ /* Default Initializations */
+ privateData->streamOffset = 0;
+ privateData->isTagPresent = FALSE;
+ privateData->streamOffset = 0;
+ privateData->tagOffset = 0;
+
+ privateData->streamInfo.fileSize = 0;
+ privateData->streamInfo.duration = 0;
+ privateData->streamInfo.bitRate = 0;
+ privateData->streamInfo.samplingRate = 0;
+ privateData->streamInfo.frameRate = 0;
+ privateData->streamInfo.numAudioChannels = 0;
+ privateData->streamInfo.numTracks = 1;
+ privateData->streamInfo.profileType = 0;
+
+ privateData->tagInfo.title = NULL;
+ privateData->tagInfo.author = NULL;
+ privateData->tagInfo.artist = NULL;
+ privateData->tagInfo.album = NULL;
+ privateData->tagInfo.album_artist = NULL;
+ privateData->tagInfo.year = NULL;
+ privateData->tagInfo.copyright = NULL;
+ privateData->tagInfo.comment = NULL;
+ privateData->tagInfo.genre = NULL;
+ privateData->tagInfo.composer = NULL;
+ privateData->tagInfo.classification = NULL;
+ privateData->tagInfo.rating = NULL;
+ privateData->tagInfo.recordDate = NULL;
+ privateData->tagInfo.conductor = NULL;
+ privateData->tagInfo.artwork = NULL;
+ privateData->tagInfo.artworkSize = 0;
+ privateData->tagInfo.artworkMime = NULL;
}
-int _search_id3tag(tMMFILE_AAC_HANDLE* pData)
+int _search_id3tag(tMMFILE_AAC_HANDLE *pData)
{
- unsigned char tagHeader[MP3_TAGv2_HEADER_LEN] = {0,};
- int encSize = 0;
- int readed = 0;
-
- mmfile_seek(pData->hFile, 0, MMFILE_SEEK_SET);
- readed = mmfile_read (pData->hFile, tagHeader, MP3_TAGv2_HEADER_LEN);
- if (MP3_TAGv2_HEADER_LEN != readed) {
+ unsigned char tagHeader[MP3_TAGv2_HEADER_LEN] = {0, };
+ int encSize = 0;
+ int readed = 0;
+
+ mmfile_seek(pData->hFile, 0, MMFILE_SEEK_SET);
+ readed = mmfile_read(pData->hFile, tagHeader, MP3_TAGv2_HEADER_LEN);
+ if (MP3_TAGv2_HEADER_LEN != readed) {
#ifdef __MMFILE_TEST_MODE__
- debug_msg("Read Fail");
+ debug_msg("Read Fail");
#endif
- return MMFILE_AAC_PARSER_FAIL;
- }
-
- if (!IS_ID3V2_TAG(tagHeader)) {
+ return MMFILE_AAC_PARSER_FAIL;
+ }
+
+ if (!IS_ID3V2_TAG(tagHeader)) {
#ifdef __MMFILE_TEST_MODE__
- debug_msg("No ID3 Tag");
+ debug_msg("No ID3 Tag");
#endif
- goto search_end;
- }
+ goto search_end;
+ }
- if (tagHeader[3] == 0xFF || tagHeader[4] == 0xFF ||
- tagHeader[6] >= 0x80 || tagHeader[7] >= 0x80 ||
+ if (tagHeader[3] == 0xFF || tagHeader[4] == 0xFF ||
+ tagHeader[6] >= 0x80 || tagHeader[7] >= 0x80 ||
tagHeader[8] >= 0x80 || tagHeader[9] >= 0x80) {
#ifdef __MMFILE_TEST_MODE__
- debug_msg("Read Fail");
+ debug_msg("Read Fail");
#endif
- return MMFILE_AAC_PARSER_FAIL;
- }
-
- pData->tagVersion = tagHeader[3];
+ return MMFILE_AAC_PARSER_FAIL;
+ }
+
+ pData->tagVersion = tagHeader[3];
- if(pData->tagVersion > 4) {
+ if (pData->tagVersion > 4) {
#ifdef __MMFILE_TEST_MODE__
- debug_msg("\nTag version not supported");
+ debug_msg("\nTag version not supported");
#endif
- return MMFILE_AAC_PARSER_FAIL;
- }
+ return MMFILE_AAC_PARSER_FAIL;
+ }
- encSize = GET_INT_NUMBER(&tagHeader[6]);
- pData->tagInfoSize = MP3_TAGv2_HEADER_LEN;
+ encSize = GET_INT_NUMBER(&tagHeader[6]);
+ pData->tagInfoSize = MP3_TAGv2_HEADER_LEN;
- pData->tagInfoSize += (((encSize & 0x0000007F) >> 0) | ((encSize & 0x00007F00) >> 1) | \
- ((encSize & 0x007F0000) >> 2) | ((encSize & 0x7F000000) >> 3));
+ pData->tagInfoSize += (((encSize & 0x0000007F) >> 0) | ((encSize & 0x00007F00) >> 1) | \
+ ((encSize & 0x007F0000) >> 2) | ((encSize & 0x7F000000) >> 3));
- if(pData->tagInfoSize > pData->streamInfo.fileSize) {
+ if (pData->tagInfoSize > pData->streamInfo.fileSize) {
#ifdef __MMFILE_TEST_MODE__
- debug_msg("Invalid size");
+ debug_msg("Invalid size");
#endif
- return MMFILE_AAC_PARSER_FAIL;
- }
-
- pData->isTagPresent = TRUE;
- pData->tagOffset = 0;
- pData->streamOffset = pData->tagInfoSize;
-
- /* Filling the information in id3Handle for tag parsing */
- pData->id3Handle.fileLen = pData->streamInfo.fileSize;
- pData->id3Handle.tagV2Info.tagLen = pData->tagInfoSize;
- pData->id3Handle.tagV2Info.tagVersion = pData->tagVersion;
- pData->id3Handle.tagV2Info.tagLen = pData->tagInfoSize;
+ return MMFILE_AAC_PARSER_FAIL;
+ }
+
+ pData->isTagPresent = TRUE;
+ pData->tagOffset = 0;
+ pData->streamOffset = pData->tagInfoSize;
+
+ /* Filling the information in id3Handle for tag parsing */
+ pData->id3Handle.fileLen = pData->streamInfo.fileSize;
+ pData->id3Handle.tagV2Info.tagLen = pData->tagInfoSize;
+ pData->id3Handle.tagV2Info.tagVersion = pData->tagVersion;
+ pData->id3Handle.tagV2Info.tagLen = pData->tagInfoSize;
search_end:
- return MMFILE_AAC_PARSER_SUCCESS;
+ return MMFILE_AAC_PARSER_SUCCESS;
}
-int _parse_id3_tag(tMMFILE_AAC_HANDLE* pData)
+int _parse_id3_tag(tMMFILE_AAC_HANDLE *pData)
{
- unsigned char* tagBuff = NULL;
- AvFileContentInfo* hTag = &pData->id3Handle;
- int ret = FALSE;
- int readed = 0;
-
- mmfile_seek(pData->hFile, pData->tagOffset, MMFILE_SEEK_SET);
- tagBuff = (unsigned char*) mmfile_malloc(hTag->fileLen);
- if(tagBuff == NULL) {
- ret = MMFILE_AAC_PARSER_FAIL;
- debug_error ("failed to memory allocation. %d\n", hTag->fileLen);
- goto failure;
- }
-
- readed = mmfile_read(pData->hFile, tagBuff, hTag->fileLen);
- if (readed != hTag->fileLen) {
- debug_error ("failed to read. %d, %lld\n", readed, hTag->fileLen);
- goto failure;
- }
-
- switch(hTag->tagV2Info.tagVersion) {
- case 1:
- ret = mm_file_id3tag_parse_v110(hTag, tagBuff);
- break;
- case 2:
- ret = mm_file_id3tag_parse_v222(hTag, tagBuff);
- break;
- case 3:
- ret = mm_file_id3tag_parse_v223(hTag, tagBuff);
- break;
- case 4:
- ret = mm_file_id3tag_parse_v224(hTag, tagBuff);
- break;
- default:
- debug_error ("Invalid Tag version [%d]\n", hTag->tagV2Info.tagVersion);
- break;
- }
-
- if(ret == FALSE) {
- ret = MMFILE_AAC_PARSER_FAIL;
- debug_warning ("failed to parse\n");
- goto failure;
- }
-
- mm_file_id3tag_restore_content_info(hTag);
-
- pData->tagInfo.title = hTag->pTitle;
- pData->tagInfo.author = hTag->pAuthor;
- pData->tagInfo.artist = hTag->pArtist;
- pData->tagInfo.album = hTag->pAlbum;
- pData->tagInfo.album_artist = hTag->pAlbum_Artist;
- pData->tagInfo.year = hTag->pYear;
- pData->tagInfo.copyright = hTag->pCopyright;
- pData->tagInfo.comment = hTag->pComment;
- pData->tagInfo.genre = hTag->pGenre;
- pData->tagInfo.tracknum = hTag->pTrackNum;
- pData->tagInfo.composer = hTag->pComposer;
- pData->tagInfo.classification = hTag->pContentGroup;
- pData->tagInfo.rating = hTag->pRating;
- pData->tagInfo.recordDate = hTag->pRecDate;
- pData->tagInfo.conductor = hTag->pConductor;
- pData->tagInfo.artworkMime = hTag->imageInfo.imageMIMEType;
- pData->tagInfo.artworkSize = hTag->imageInfo.imageLen;
- pData->tagInfo.artwork = hTag->imageInfo.pImageBuf;
-
- ret = MMFILE_AAC_PARSER_SUCCESS;
-
-
+ unsigned char *tagBuff = NULL;
+ AvFileContentInfo *hTag = &pData->id3Handle;
+ int ret = FALSE;
+ int readed = 0;
+
+ mmfile_seek(pData->hFile, pData->tagOffset, MMFILE_SEEK_SET);
+ tagBuff = (unsigned char *) mmfile_malloc(hTag->fileLen);
+ if (tagBuff == NULL) {
+ ret = MMFILE_AAC_PARSER_FAIL;
+ debug_error("failed to memory allocation. %d\n", hTag->fileLen);
+ goto failure;
+ }
+
+ readed = mmfile_read(pData->hFile, tagBuff, hTag->fileLen);
+ if (readed != hTag->fileLen) {
+ debug_error("failed to read. %d, %lld\n", readed, hTag->fileLen);
+ goto failure;
+ }
+
+ switch (hTag->tagV2Info.tagVersion) {
+ case 1:
+ ret = mm_file_id3tag_parse_v110(hTag, tagBuff);
+ break;
+ case 2:
+ ret = mm_file_id3tag_parse_v222(hTag, tagBuff);
+ break;
+ case 3:
+ ret = mm_file_id3tag_parse_v223(hTag, tagBuff);
+ break;
+ case 4:
+ ret = mm_file_id3tag_parse_v224(hTag, tagBuff);
+ break;
+ default:
+ debug_error("Invalid Tag version [%d]\n", hTag->tagV2Info.tagVersion);
+ break;
+ }
+
+ if (ret == FALSE) {
+ ret = MMFILE_AAC_PARSER_FAIL;
+ debug_warning("failed to parse\n");
+ goto failure;
+ }
+
+ mm_file_id3tag_restore_content_info(hTag);
+
+ pData->tagInfo.title = hTag->pTitle;
+ pData->tagInfo.author = hTag->pAuthor;
+ pData->tagInfo.artist = hTag->pArtist;
+ pData->tagInfo.album = hTag->pAlbum;
+ pData->tagInfo.album_artist = hTag->pAlbum_Artist;
+ pData->tagInfo.year = hTag->pYear;
+ pData->tagInfo.copyright = hTag->pCopyright;
+ pData->tagInfo.comment = hTag->pComment;
+ pData->tagInfo.genre = hTag->pGenre;
+ pData->tagInfo.tracknum = hTag->pTrackNum;
+ pData->tagInfo.composer = hTag->pComposer;
+ pData->tagInfo.classification = hTag->pContentGroup;
+ pData->tagInfo.rating = hTag->pRating;
+ pData->tagInfo.recordDate = hTag->pRecDate;
+ pData->tagInfo.conductor = hTag->pConductor;
+ pData->tagInfo.artworkMime = hTag->imageInfo.imageMIMEType;
+ pData->tagInfo.artworkSize = hTag->imageInfo.imageLen;
+ pData->tagInfo.artwork = hTag->imageInfo.pImageBuf;
+
+ ret = MMFILE_AAC_PARSER_SUCCESS;
+
+
failure:
- if(tagBuff) {
- mmfile_free(tagBuff);
- tagBuff = NULL;
- }
-
- return ret;
-
+ if (tagBuff) {
+ mmfile_free(tagBuff);
+ tagBuff = NULL;
+ }
+
+ return ret;
+
}
-int _get_range_bits_value (unsigned char* buff, int fieldOffset, int fieldSize)
+int _get_range_bits_value(unsigned char *buff, int fieldOffset, int fieldSize)
{
- int pos = 0;
- unsigned int srcByteStartOff = 0;
- unsigned int srcByteEndOff = 0;
- unsigned int srcBitStartOff = 0;
- unsigned int srcBitEndOff = 0;
- unsigned char dest[4] = {0,};
- unsigned int res = 0;
- unsigned int i,j, temp;
- unsigned char extraByteFlag = 0;
- unsigned int occupiedBytes = 0;
- unsigned char mask = 0, maskBit = 0x01;
-
-
- srcByteStartOff = (fieldOffset / 8);
- srcBitStartOff = (fieldOffset % 8);
-
- srcByteEndOff = ((fieldOffset + fieldSize - 1) / 8);
- srcBitEndOff = ((fieldOffset + fieldSize - 1) % 8);
-
- occupiedBytes = srcByteEndOff - srcByteStartOff + 1;
-
- for(i = srcByteStartOff, j = 0; i <= srcByteEndOff && j <= 3; i++,j++) {
- dest[j] = buff[i];
- }
-
- for(pos = 7; pos>= (char)srcBitStartOff; pos--) {
- mask = mask | maskBit;
- maskBit <<= 1;
- }
-
- dest[0] = dest[0] & mask;
-
- if(i <= srcByteEndOff) {
- extraByteFlag = 1;
- }
-
- res = GET_INT_NUMBER(dest);
-
- if(!extraByteFlag) {
- temp = (4 - occupiedBytes) * 8 + (7 - srcBitEndOff);
- res >>= temp;
- }
-
- if(extraByteFlag) {
- res <<= srcBitStartOff;
- temp = buff[srcByteEndOff] >> (7 - srcBitEndOff);
- res = res | (unsigned int)temp;
- }
-
- return res;
+ int pos = 0;
+ unsigned int srcByteStartOff = 0;
+ unsigned int srcByteEndOff = 0;
+ unsigned int srcBitStartOff = 0;
+ unsigned int srcBitEndOff = 0;
+ unsigned char dest[4] = {0, };
+ unsigned int res = 0;
+ unsigned int i, j, temp;
+ unsigned char extraByteFlag = 0;
+ unsigned int occupiedBytes = 0;
+ unsigned char mask = 0, maskBit = 0x01;
+
+
+ srcByteStartOff = (fieldOffset / 8);
+ srcBitStartOff = (fieldOffset % 8);
+
+ srcByteEndOff = ((fieldOffset + fieldSize - 1) / 8);
+ srcBitEndOff = ((fieldOffset + fieldSize - 1) % 8);
+
+ occupiedBytes = srcByteEndOff - srcByteStartOff + 1;
+
+ for (i = srcByteStartOff, j = 0; i <= srcByteEndOff && j <= 3; i++, j++) {
+ dest[j] = buff[i];
+ }
+
+ for (pos = 7; pos >= (char)srcBitStartOff; pos--) {
+ mask = mask | maskBit;
+ maskBit <<= 1;
+ }
+
+ dest[0] = dest[0] & mask;
+
+ if (i <= srcByteEndOff) {
+ extraByteFlag = 1;
+ }
+
+ res = GET_INT_NUMBER(dest);
+
+ if (!extraByteFlag) {
+ temp = (4 - occupiedBytes) * 8 + (7 - srcBitEndOff);
+ res >>= temp;
+ }
+
+ if (extraByteFlag) {
+ res <<= srcBitStartOff;
+ temp = buff[srcByteEndOff] >> (7 - srcBitEndOff);
+ res = res | (unsigned int)temp;
+ }
+
+ return res;
}
-int _parse_aac_adif_header (tMMFILE_AAC_HANDLE* pData)
+int _parse_aac_adif_header(tMMFILE_AAC_HANDLE *pData)
{
- unsigned char adifHeader[MMFILE_AAC_ADIF_HEADER_MAX_SIZE] = {0,};
- int currentBitOffset = 0;
- unsigned int fieldValue = 0;
- int copyRightStatus = 0;
- int readed = 0;
-
- mmfile_seek(pData->hFile, pData->streamOffset, MMFILE_SEEK_SET);
- readed = mmfile_read(pData->hFile, adifHeader, MMFILE_AAC_ADIF_HEADER_MAX_SIZE);
- if (readed < 0) {
- return MMFILE_AAC_PARSER_FAIL;
- }
-
- if(memcmp(adifHeader, "ADIF", 4) != 0) {
- return MMFILE_AAC_PARSER_FAIL;
- }
- currentBitOffset += 32;
-
- copyRightStatus = _get_range_bits_value(adifHeader, currentBitOffset, 1);
- currentBitOffset += 1;
-
- if(copyRightStatus) {
- //skipping Copyright info
- currentBitOffset += 72;
- }
-
- //Original/copy
- fieldValue = _get_range_bits_value(adifHeader, currentBitOffset, 1);
- currentBitOffset += 1;
-
- //skipping Home status
- currentBitOffset += 1;
-
- //Bit stream type
- fieldValue = _get_range_bits_value(adifHeader, currentBitOffset, 1);
- currentBitOffset += 1;
- if(!fieldValue) {
- pData->streamType = AAC_STREAM_CONSTANT;
- }
- else {
- pData->streamType = AAC_STREAM_VARIABLE;
- }
-
- //Bit-rate
- pData->streamInfo.bitRate = _get_range_bits_value(adifHeader, currentBitOffset, 23);
- currentBitOffset += 23;
-
- //Num of program config elements
- fieldValue = _get_range_bits_value(adifHeader, currentBitOffset, 4);
- currentBitOffset += 4;
-
- //skipping adif buffer fullness
- currentBitOffset += 20;
-
- //skipping element instance tag
- currentBitOffset += 4;
-
- //Profile
- pData->streamInfo.profileType = _get_range_bits_value(adifHeader, currentBitOffset, 2);
- currentBitOffset += 2;
-
- //sampling freq index
- fieldValue = _get_range_bits_value(adifHeader, currentBitOffset, 4);
- currentBitOffset += 4;
- pData->streamInfo.samplingRate = Sampling_freq_table[fieldValue];
-
- //num_front_channel_elements
- pData->streamInfo.numAudioChannels = _get_range_bits_value(adifHeader, currentBitOffset, 4);
- currentBitOffset += 4;
-
- //num_side_channel_elements
- pData->streamInfo.numAudioChannels += _get_range_bits_value(adifHeader, currentBitOffset, 4);
- currentBitOffset += 4;
-
- //num_back_channel_elements
- pData->streamInfo.numAudioChannels += _get_range_bits_value(adifHeader, currentBitOffset, 4);
- currentBitOffset += 4;
-
- //num_lfe_channel_elements
- pData->streamInfo.numAudioChannels += _get_range_bits_value(adifHeader, currentBitOffset, 2);
- currentBitOffset += 2;
-
- return MMFILE_AAC_PARSER_SUCCESS;
-
+ unsigned char adifHeader[MMFILE_AAC_ADIF_HEADER_MAX_SIZE] = {0, };
+ int currentBitOffset = 0;
+ unsigned int fieldValue = 0;
+ int copyRightStatus = 0;
+ int readed = 0;
+
+ mmfile_seek(pData->hFile, pData->streamOffset, MMFILE_SEEK_SET);
+ readed = mmfile_read(pData->hFile, adifHeader, MMFILE_AAC_ADIF_HEADER_MAX_SIZE);
+ if (readed < 0) {
+ return MMFILE_AAC_PARSER_FAIL;
+ }
+
+ if (memcmp(adifHeader, "ADIF", 4) != 0) {
+ return MMFILE_AAC_PARSER_FAIL;
+ }
+ currentBitOffset += 32;
+
+ copyRightStatus = _get_range_bits_value(adifHeader, currentBitOffset, 1);
+ currentBitOffset += 1;
+
+ if (copyRightStatus) {
+ /*skipping Copyright info */
+ currentBitOffset += 72;
+ }
+
+ /*Original/copy */
+ fieldValue = _get_range_bits_value(adifHeader, currentBitOffset, 1);
+ currentBitOffset += 1;
+
+ /*skipping Home status */
+ currentBitOffset += 1;
+
+ /*Bit stream type */
+ fieldValue = _get_range_bits_value(adifHeader, currentBitOffset, 1);
+ currentBitOffset += 1;
+ if (!fieldValue) {
+ pData->streamType = AAC_STREAM_CONSTANT;
+ } else {
+ pData->streamType = AAC_STREAM_VARIABLE;
+ }
+
+ /*Bit-rate */
+ pData->streamInfo.bitRate = _get_range_bits_value(adifHeader, currentBitOffset, 23);
+ currentBitOffset += 23;
+
+ /*Num of program config elements */
+ fieldValue = _get_range_bits_value(adifHeader, currentBitOffset, 4);
+ currentBitOffset += 4;
+
+ /*skipping adif buffer fullness */
+ currentBitOffset += 20;
+
+ /*skipping element instance tag */
+ currentBitOffset += 4;
+
+ /*Profile */
+ pData->streamInfo.profileType = _get_range_bits_value(adifHeader, currentBitOffset, 2);
+ currentBitOffset += 2;
+
+ /*sampling freq index */
+ fieldValue = _get_range_bits_value(adifHeader, currentBitOffset, 4);
+ currentBitOffset += 4;
+ pData->streamInfo.samplingRate = Sampling_freq_table[fieldValue];
+
+ /*num_front_channel_elements */
+ pData->streamInfo.numAudioChannels = _get_range_bits_value(adifHeader, currentBitOffset, 4);
+ currentBitOffset += 4;
+
+ /*num_side_channel_elements */
+ pData->streamInfo.numAudioChannels += _get_range_bits_value(adifHeader, currentBitOffset, 4);
+ currentBitOffset += 4;
+
+ /*num_back_channel_elements */
+ pData->streamInfo.numAudioChannels += _get_range_bits_value(adifHeader, currentBitOffset, 4);
+ currentBitOffset += 4;
+
+ /*num_lfe_channel_elements */
+ pData->streamInfo.numAudioChannels += _get_range_bits_value(adifHeader, currentBitOffset, 2);
+
+ return MMFILE_AAC_PARSER_SUCCESS;
+
}
-int _parse_aac_adts_header(tMMFILE_AAC_HANDLE* pData)
+int _parse_aac_adts_header(tMMFILE_AAC_HANDLE *pData)
{
- unsigned char adtsHeader[MMFILE_AAC_ADTS_HEADER_MAX_SIZE] = {0,};
- int currentBitOffset = 0;
- unsigned int fieldValue = 0;
- int readed = 0;
-
- mmfile_seek(pData->hFile, pData->streamOffset, MMFILE_SEEK_SET);
- readed = mmfile_read(pData->hFile, adtsHeader, MMFILE_AAC_ADTS_HEADER_MAX_SIZE);
- if (readed < 0) {
- return MMFILE_AAC_PARSER_FAIL;
- }
-
- if(!IS_AAC_ADTS_HEADER(adtsHeader)) {
- return MMFILE_AAC_PARSER_FAIL;
- }
- currentBitOffset += 12;
-
- //adtsId
- fieldValue = _get_range_bits_value(adtsHeader, currentBitOffset, 1);
- currentBitOffset += 1;
- pData->mpegType = (fieldValue != 0);
-
- //LayerType
- fieldValue = _get_range_bits_value(adtsHeader, currentBitOffset, 2);
- currentBitOffset += 2;
-
- //skipping Protection Absent
- currentBitOffset += 1;
-
- //ProfileType
- fieldValue = _get_range_bits_value(adtsHeader, currentBitOffset, 2);
- currentBitOffset += 2;
- pData->streamInfo.profileType = fieldValue;
-
- //SamplingrateIndex
- fieldValue = _get_range_bits_value(adtsHeader, currentBitOffset, 4);
- currentBitOffset += 4;
- pData->streamInfo.samplingRate = Sampling_freq_table[fieldValue];
-
- //skipping PrivateBit
- currentBitOffset += 1;
-
- //ChannelConfig
- pData->streamInfo.numAudioChannels = _get_range_bits_value(adtsHeader, currentBitOffset, 3);
- currentBitOffset += 3;
-
- //Original/copy status
- fieldValue = _get_range_bits_value(adtsHeader, currentBitOffset, 1);
- currentBitOffset += 1;
-
- //skipping Home status
- fieldValue = _get_range_bits_value(adtsHeader, currentBitOffset, 1);
- currentBitOffset += 1;
-
- //copy right Id status bit
- currentBitOffset += 1;
-
- return MMFILE_AAC_PARSER_SUCCESS;
+ unsigned char adtsHeader[MMFILE_AAC_ADTS_HEADER_MAX_SIZE] = {0, };
+ int currentBitOffset = 0;
+ unsigned int fieldValue = 0;
+ int readed = 0;
+
+ mmfile_seek(pData->hFile, pData->streamOffset, MMFILE_SEEK_SET);
+ readed = mmfile_read(pData->hFile, adtsHeader, MMFILE_AAC_ADTS_HEADER_MAX_SIZE);
+ if (readed < 0) {
+ return MMFILE_AAC_PARSER_FAIL;
+ }
+
+ if (!IS_AAC_ADTS_HEADER(adtsHeader)) {
+ return MMFILE_AAC_PARSER_FAIL;
+ }
+ currentBitOffset += 12;
+
+ /*adtsId */
+ fieldValue = _get_range_bits_value(adtsHeader, currentBitOffset, 1);
+ currentBitOffset += 1;
+ pData->mpegType = (fieldValue != 0);
+
+ /*LayerType */
+ fieldValue = _get_range_bits_value(adtsHeader, currentBitOffset, 2);
+ currentBitOffset += 2;
+
+ /*skipping Protection Absent */
+ currentBitOffset += 1;
+
+ /*ProfileType */
+ fieldValue = _get_range_bits_value(adtsHeader, currentBitOffset, 2);
+ currentBitOffset += 2;
+ pData->streamInfo.profileType = fieldValue;
+
+ /*SamplingrateIndex */
+ fieldValue = _get_range_bits_value(adtsHeader, currentBitOffset, 4);
+ currentBitOffset += 4;
+ pData->streamInfo.samplingRate = Sampling_freq_table[fieldValue];
+
+ /*skipping PrivateBit */
+ currentBitOffset += 1;
+
+ /*ChannelConfig */
+ pData->streamInfo.numAudioChannels = _get_range_bits_value(adtsHeader, currentBitOffset, 3);
+ currentBitOffset += 3;
+
+ /*Original/copy status */
+ fieldValue = _get_range_bits_value(adtsHeader, currentBitOffset, 1);
+ currentBitOffset += 1;
+
+ /*skipping Home status */
+ fieldValue = _get_range_bits_value(adtsHeader, currentBitOffset, 1);
+
+ return MMFILE_AAC_PARSER_SUCCESS;
}
-int _get_next_adts_frame_length(tMMFILE_AAC_HANDLE* pData, int* frameLen)
+int _get_next_adts_frame_length(tMMFILE_AAC_HANDLE *pData, int *frameLen)
{
- unsigned char adtsHeader[MMFILE_AAC_ADTS_HEADER_MAX_SIZE] = {0,};
- int ret = MMFILE_AAC_PARSER_SUCCESS;
- long long filePosBefore = mmfile_tell(pData->hFile);
- int readed = 0;
+ unsigned char adtsHeader[MMFILE_AAC_ADTS_HEADER_MAX_SIZE] = {0, };
+ int ret = MMFILE_AAC_PARSER_SUCCESS;
+ long long filePosBefore = mmfile_tell(pData->hFile);
+ int readed = 0;
+
+ readed = mmfile_read(pData->hFile, adtsHeader, MMFILE_AAC_ADTS_HEADER_MAX_SIZE);
+ if (readed < 0)
+ return MMFILE_AAC_PARSER_FAIL;
- readed = mmfile_read(pData->hFile, adtsHeader, MMFILE_AAC_ADTS_HEADER_MAX_SIZE);
- if (readed < 0)
- return MMFILE_AAC_PARSER_FAIL;
-
#ifdef __MMFILE_TEST_MODE__
- debug_msg("\nFILE POS: %lld\n", filePosBefore);
- debug_msg("\nADTS HEADER: [%2x] [%2x] [%2x] [%2x] [%2x] [%2x]\n",
- adtsHeader[0], adtsHeader[1], adtsHeader[2], adtsHeader[3], adtsHeader[4], adtsHeader[5]);
+ debug_msg("\nFILE POS: %lld\n", filePosBefore);
+ debug_msg("\nADTS HEADER: [%2x] [%2x] [%2x] [%2x] [%2x] [%2x]\n",
+ adtsHeader[0], adtsHeader[1], adtsHeader[2], adtsHeader[3], adtsHeader[4], adtsHeader[5]);
#endif
-
- if(mmfile_tell(pData->hFile) >= pData->streamInfo.fileSize) {
- *frameLen = 0;
- ret = MMFILE_AAC_PARSER_FILE_END;
- goto function_end;
- }
-
- if(!IS_AAC_ADTS_HEADER(adtsHeader)) {
- *frameLen = 0;
- ret = MMFILE_AAC_PARSER_FAIL;
- goto function_end;
- }
-
- *frameLen = _get_range_bits_value(adtsHeader, AAC_ADTS_FRAME_LEN_OFFSET, 13);
-
- if(*frameLen == 0 || *frameLen > (pData->streamInfo.fileSize - filePosBefore)) {
- *frameLen = 0;
- ret = MMFILE_AAC_PARSER_FAIL;
- goto function_end;
- }
+
+ if (mmfile_tell(pData->hFile) >= pData->streamInfo.fileSize) {
+ *frameLen = 0;
+ ret = MMFILE_AAC_PARSER_FILE_END;
+ goto function_end;
+ }
+
+ if (!IS_AAC_ADTS_HEADER(adtsHeader)) {
+ *frameLen = 0;
+ ret = MMFILE_AAC_PARSER_FAIL;
+ goto function_end;
+ }
+
+ *frameLen = _get_range_bits_value(adtsHeader, AAC_ADTS_FRAME_LEN_OFFSET, 13);
+
+ if (*frameLen == 0 || *frameLen > (pData->streamInfo.fileSize - filePosBefore)) {
+ *frameLen = 0;
+ ret = MMFILE_AAC_PARSER_FAIL;
+ goto function_end;
+ }
function_end:
-
- mmfile_seek(pData->hFile, filePosBefore + *frameLen, MMFILE_SEEK_SET);
-
- return ret;
+
+ mmfile_seek(pData->hFile, filePosBefore + *frameLen, MMFILE_SEEK_SET);
+
+ return ret;
}
-int mmfile_aacparser_open (MMFileAACHandle *handle, const char *filenamec)
+int mmfile_aacparser_open(MMFileAACHandle *handle, const char *filenamec)
{
- tMMFILE_AAC_HANDLE *privateData = NULL;
- int ret = 0;
- unsigned char header[4] = {0,};
- int firstFrameLen = 0;
- int readed = 0;
-
- if (NULL == filenamec) {
- debug_error ("file source is NULL\n");
- return MMFILE_AAC_PARSER_FAIL;
- }
-
- privateData = mmfile_malloc (sizeof(tMMFILE_AAC_HANDLE));
- if (NULL == privateData) {
- debug_error ("file source is NULL\n");
- return MMFILE_AAC_PARSER_FAIL;
- }
-
- ret = mmfile_open (&privateData->hFile, filenamec, MMFILE_RDONLY);
- if(ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
- goto exception;
- }
-
- /* Initialize the members of handle */
- _aac_init_handle(privateData);
-
- mmfile_seek (privateData->hFile, 0, MMFILE_SEEK_END);
- privateData->streamInfo.fileSize= mmfile_tell(privateData->hFile);
-
- mmfile_seek (privateData->hFile, 0, MMFILE_SEEK_SET);
-
- /* Search the existance of ID3 tag */
- ret = _search_id3tag(privateData);
- if(ret == MMFILE_AAC_PARSER_FAIL) {
- debug_error("Error in searching the ID3 tag\n");
- goto exception;
- }
-
- mmfile_seek (privateData->hFile, privateData->streamOffset, MMFILE_SEEK_SET);
- readed = mmfile_read (privateData->hFile, header, 4);
- if (readed != 4)
- goto exception;
-
- if(IS_AAC_ADIF_HEADER(header)) {
- privateData->formatType = AAC_FORMAT_ADIF;
-
-#ifdef __MMFILE_TEST_MODE__
- debug_msg("AAC Format: ADIF\n");
-#endif
-
- }
- else if(IS_AAC_ADTS_HEADER(header)) {
- privateData->formatType = AAC_FORMAT_ADTS;
-
-#ifdef __MMFILE_TEST_MODE__
- debug_msg("AAC Format: ADTS\n");
-#endif
-
- /* Verify whether the first frame size is proper */
- mmfile_seek (privateData->hFile, privateData->streamOffset, MMFILE_SEEK_SET);
- ret = _get_next_adts_frame_length(privateData, &firstFrameLen);
- if(ret == MMFILE_AAC_PARSER_FAIL) {
- debug_error("Invalid Frame length in ADTS header\n");
- goto exception;
- }
- }
- else {
- privateData->formatType = AAC_FORMAT_UNKNOWN;
- debug_error("AAC Format: UNKNOWN\n");
- goto exception;
- }
-
- *handle = privateData;
-
- return MMFILE_AAC_PARSER_SUCCESS;
+ tMMFILE_AAC_HANDLE *privateData = NULL;
+ int ret = 0;
+ unsigned char header[4] = {0, };
+ int firstFrameLen = 0;
+ int readed = 0;
+
+ if (NULL == filenamec) {
+ debug_error("file source is NULL\n");
+ return MMFILE_AAC_PARSER_FAIL;
+ }
+
+ privateData = mmfile_malloc(sizeof(tMMFILE_AAC_HANDLE));
+ if (NULL == privateData) {
+ debug_error("file source is NULL\n");
+ return MMFILE_AAC_PARSER_FAIL;
+ }
+
+ ret = mmfile_open(&privateData->hFile, filenamec, MMFILE_RDONLY);
+ if (ret == MMFILE_UTIL_FAIL) {
+ debug_error("error: mmfile_open\n");
+ goto exception;
+ }
+
+ /* Initialize the members of handle */
+ _aac_init_handle(privateData);
+
+ mmfile_seek(privateData->hFile, 0, MMFILE_SEEK_END);
+ privateData->streamInfo.fileSize = mmfile_tell(privateData->hFile);
+
+ mmfile_seek(privateData->hFile, 0, MMFILE_SEEK_SET);
+
+ /* Search the existance of ID3 tag */
+ ret = _search_id3tag(privateData);
+ if (ret == MMFILE_AAC_PARSER_FAIL) {
+ debug_error("Error in searching the ID3 tag\n");
+ goto exception;
+ }
+
+ mmfile_seek(privateData->hFile, privateData->streamOffset, MMFILE_SEEK_SET);
+ readed = mmfile_read(privateData->hFile, header, 4);
+ if (readed != 4)
+ goto exception;
+
+ if (IS_AAC_ADIF_HEADER(header)) {
+ privateData->formatType = AAC_FORMAT_ADIF;
+
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("AAC Format: ADIF\n");
+#endif
+
+ } else if (IS_AAC_ADTS_HEADER(header)) {
+ privateData->formatType = AAC_FORMAT_ADTS;
+
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("AAC Format: ADTS\n");
+#endif
+
+ /* Verify whether the first frame size is proper */
+ mmfile_seek(privateData->hFile, privateData->streamOffset, MMFILE_SEEK_SET);
+ ret = _get_next_adts_frame_length(privateData, &firstFrameLen);
+ if (ret == MMFILE_AAC_PARSER_FAIL) {
+ debug_error("Invalid Frame length in ADTS header\n");
+ goto exception;
+ }
+ } else {
+ privateData->formatType = AAC_FORMAT_UNKNOWN;
+ debug_error("AAC Format: UNKNOWN\n");
+ goto exception;
+ }
+
+ *handle = privateData;
+
+ return MMFILE_AAC_PARSER_SUCCESS;
exception:
- if (privateData) {
- mmfile_close (privateData->hFile);
- mmfile_free (privateData);
- *handle = NULL;
- }
- return MMFILE_AAC_PARSER_FAIL;
-
+ if (privateData) {
+ mmfile_close(privateData->hFile);
+ mmfile_free(privateData);
+ *handle = NULL;
+ }
+ return MMFILE_AAC_PARSER_FAIL;
+
}
-int mmfile_aacparser_get_stream_info (MMFileAACHandle handle, tMMFILE_AAC_STREAM_INFO *aacinfo)
+int mmfile_aacparser_get_stream_info(MMFileAACHandle handle, tMMFILE_AAC_STREAM_INFO *aacinfo)
{
- tMMFILE_AAC_HANDLE *privateData = NULL;
- int frameLen = 0;
- long long totalFrames = 0, totalFrameLength = 0;
- unsigned long long streamDataSize = 0;
- int ret = MMFILE_AAC_PARSER_SUCCESS;
-
- if (NULL == handle || NULL == aacinfo) {
- debug_error ("handle is NULL\n");
- return MMFILE_AAC_PARSER_FAIL;
- }
-
- privateData = (tMMFILE_AAC_HANDLE *) handle;
-
- if(privateData->formatType == AAC_FORMAT_ADIF) {
- ret = _parse_aac_adif_header(privateData);
- aacinfo->iseekable = 0;
- }
- else {
- ret = _parse_aac_adts_header(privateData);
- aacinfo->iseekable = 1;
- }
-
- if(ret == MMFILE_AAC_PARSER_FAIL) {
- debug_error("Error in parsing the stream header\n");
- return ret;
- }
-
- mmfile_seek(privateData->hFile, privateData->streamOffset, MMFILE_SEEK_SET);
-
- if(privateData->formatType == AAC_FORMAT_ADTS) {
-
- while(TRUE) {
- ret = _get_next_adts_frame_length(privateData, &frameLen);
- if(ret != MMFILE_AAC_PARSER_SUCCESS) {
- break;
- }
- totalFrameLength += frameLen - MMFILE_AAC_ADTS_HEADER_MAX_SIZE;
- totalFrames++;
- }
-
- if(ret == MMFILE_AAC_PARSER_FAIL) {
- debug_error("Found corrupted frames!!! Ignoring\n");
- }
-
-#ifdef __MMFILE_TEST_MODE__
- debug_msg("No of ADTS frames: %d\n", totalFrames);
-#endif
- privateData->streamInfo.frameRate = privateData->streamInfo.samplingRate / AAC_ADTS_SAMPLES_PER_FRAME;
-
- if(privateData->streamInfo.frameRate)
- privateData->streamInfo.duration = (totalFrames * 1000) / privateData->streamInfo.frameRate;
- else privateData->streamInfo.duration = 0;
-
- if(privateData->streamInfo.duration)
- privateData->streamInfo.bitRate = (totalFrameLength * 8 * 1000) / (privateData->streamInfo.duration);
- else privateData->streamInfo.bitRate = 0;
-
- }
- else {
- streamDataSize = (unsigned long long)privateData->streamInfo.fileSize - privateData->tagInfoSize;
- privateData->streamInfo.duration = streamDataSize * 8 * 1000 / privateData->streamInfo.bitRate;
- }
-
- // Return the stream info structure
- memcpy(aacinfo, &(privateData->streamInfo), sizeof(tMMFILE_AAC_STREAM_INFO));
-
- return MMFILE_AAC_PARSER_SUCCESS;
+ tMMFILE_AAC_HANDLE *privateData = NULL;
+ int frameLen = 0;
+ long long totalFrames = 0, totalFrameLength = 0;
+ unsigned long long streamDataSize = 0;
+ int ret = MMFILE_AAC_PARSER_SUCCESS;
+
+ if (NULL == handle || NULL == aacinfo) {
+ debug_error("handle is NULL\n");
+ return MMFILE_AAC_PARSER_FAIL;
+ }
+
+ privateData = (tMMFILE_AAC_HANDLE *) handle;
+
+ if (privateData->formatType == AAC_FORMAT_ADIF) {
+ ret = _parse_aac_adif_header(privateData);
+ aacinfo->iseekable = 0;
+ } else {
+ ret = _parse_aac_adts_header(privateData);
+ aacinfo->iseekable = 1;
+ }
+
+ if (ret == MMFILE_AAC_PARSER_FAIL) {
+ debug_error("Error in parsing the stream header\n");
+ return ret;
+ }
+
+ mmfile_seek(privateData->hFile, privateData->streamOffset, MMFILE_SEEK_SET);
+
+ if (privateData->formatType == AAC_FORMAT_ADTS) {
+
+ while (TRUE) {
+ ret = _get_next_adts_frame_length(privateData, &frameLen);
+ if (ret != MMFILE_AAC_PARSER_SUCCESS) {
+ break;
+ }
+ totalFrameLength += frameLen - MMFILE_AAC_ADTS_HEADER_MAX_SIZE;
+ totalFrames++;
+ }
+
+ if (ret == MMFILE_AAC_PARSER_FAIL) {
+ debug_error("Found corrupted frames!!! Ignoring\n");
+ }
+
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("No of ADTS frames: %d\n", totalFrames);
+#endif
+ privateData->streamInfo.frameRate = privateData->streamInfo.samplingRate / AAC_ADTS_SAMPLES_PER_FRAME;
+
+ if (privateData->streamInfo.frameRate)
+ privateData->streamInfo.duration = (totalFrames * 1000) / privateData->streamInfo.frameRate;
+ else privateData->streamInfo.duration = 0;
+
+ if (privateData->streamInfo.duration)
+ privateData->streamInfo.bitRate = (totalFrameLength * 8 * 1000) / (privateData->streamInfo.duration);
+ else privateData->streamInfo.bitRate = 0;
+
+ } else {
+ streamDataSize = (unsigned long long)privateData->streamInfo.fileSize - privateData->tagInfoSize;
+ privateData->streamInfo.duration = streamDataSize * 8 * 1000 / privateData->streamInfo.bitRate;
+ }
+
+ /* Return the stream info structure */
+ memcpy(aacinfo, &(privateData->streamInfo), sizeof(tMMFILE_AAC_STREAM_INFO));
+
+ return MMFILE_AAC_PARSER_SUCCESS;
}
-int mmfile_aacparser_get_tag_info (MMFileAACHandle handle, tMMFILE_AAC_TAG_INFO *tagInfo)
+int mmfile_aacparser_get_tag_info(MMFileAACHandle handle, tMMFILE_AAC_TAG_INFO *tagInfo)
{
tMMFILE_AAC_HANDLE *privateData = NULL;
int ret = 0;
if (NULL == handle || NULL == tagInfo) {
- debug_error ("handle is NULL\n");
+ debug_error("handle is NULL\n");
return MMFILE_AAC_PARSER_FAIL;
}
privateData = (tMMFILE_AAC_HANDLE *) handle;
- if(privateData->id3Handle.tagV2Info.tagVersion == 0)
- {
- debug_warning ("There is no Tag info\n");
+ if (privateData->id3Handle.tagV2Info.tagVersion == 0) {
+ debug_warning("There is no Tag info\n");
return MMFILE_AAC_PARSER_SUCCESS;
}
ret = _parse_id3_tag(privateData);
- if(ret == MMFILE_AAC_PARSER_FAIL) {
- debug_warning ("Error in parsing the Tag info\n");
+ if (ret == MMFILE_AAC_PARSER_FAIL) {
+ debug_warning("Error in parsing the Tag info\n");
return ret;
}
- // Return the tag info structure
+ /* Return the tag info structure */
memcpy(tagInfo, &(privateData->tagInfo), sizeof(tMMFILE_AAC_TAG_INFO));
return MMFILE_AAC_PARSER_SUCCESS;
}
-int mmfile_aacparser_close (MMFileAACHandle handle)
+int mmfile_aacparser_close(MMFileAACHandle handle)
{
- tMMFILE_AAC_HANDLE *privateData = NULL;
+ tMMFILE_AAC_HANDLE *privateData = NULL;
+
+ if (NULL == handle) {
+ debug_error("handle is NULL\n");
+ return MMFILE_AAC_PARSER_FAIL;
+ }
- if (NULL == handle) {
- debug_error ("handle is NULL\n");
- return MMFILE_AAC_PARSER_FAIL;
- }
+ privateData = (tMMFILE_AAC_HANDLE *) handle;
+ mm_file_free_AvFileContentInfo(&privateData->id3Handle);
- privateData = (tMMFILE_AAC_HANDLE *) handle;
- mm_file_free_AvFileContentInfo(&privateData->id3Handle);
-
- mmfile_close(privateData->hFile);
+ mmfile_close(privateData->hFile);
- return MMFILE_AAC_PARSER_SUCCESS;
+ return MMFILE_AAC_PARSER_SUCCESS;
}
-
-
+
+
/* mm plugin interface */
-int mmfile_format_read_stream_aac (MMFileFormatContext *formatContext);
-int mmfile_format_read_frame_aac (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
-int mmfile_format_read_tag_aac (MMFileFormatContext *formatContext);
-int mmfile_format_close_aac (MMFileFormatContext *formatContext);
+int mmfile_format_read_stream_aac(MMFileFormatContext *formatContext);
+int mmfile_format_read_frame_aac(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
+int mmfile_format_read_tag_aac(MMFileFormatContext *formatContext);
+int mmfile_format_close_aac(MMFileFormatContext *formatContext);
EXPORT_API
-int mmfile_format_open_aac (MMFileFormatContext *formatContext)
+int mmfile_format_open_aac(MMFileFormatContext *formatContext)
{
MMFileAACHandle handle = NULL;
int res = MMFILE_FORMAT_FAIL;
if (NULL == formatContext || NULL == formatContext->uriFileName) {
- debug_error ("error: mmfile_format_open_aac\n");
+ debug_error("error: mmfile_format_open_aac\n");
return MMFILE_FORMAT_FAIL;
}
if (formatContext->pre_checked == 0) {
- res = MMFileFormatIsValidAAC (formatContext->uriFileName);
+ res = MMFileFormatIsValidAAC(NULL, formatContext->uriFileName);
if (res == 0) {
debug_error("It is not AAC file\n");
- return MMFILE_FORMAT_FAIL;
+ return MMFILE_FORMAT_FAIL;
}
}
@@ -781,9 +771,9 @@ int mmfile_format_open_aac (MMFileFormatContext *formatContext)
formatContext->videoTotalTrackNum = 0;
formatContext->audioTotalTrackNum = 1;
- res = mmfile_aacparser_open (&handle, formatContext->uriFileName);
+ res = mmfile_aacparser_open(&handle, formatContext->uriFileName);
if (MMFILE_AAC_PARSER_FAIL == res) {
- debug_error ("mmfile_aacparser_open\n");
+ debug_error("mmfile_aacparser_open\n");
return MMFILE_FORMAT_FAIL;
}
@@ -793,177 +783,177 @@ int mmfile_format_open_aac (MMFileFormatContext *formatContext)
}
EXPORT_API
-int mmfile_format_read_stream_aac (MMFileFormatContext *formatContext)
+int mmfile_format_read_stream_aac(MMFileFormatContext *formatContext)
{
- MMFileAACHandle handle = NULL;
- tMMFILE_AAC_STREAM_INFO aacinfo = {0,};
- MMFileFormatStream *audioStream = NULL;
-
- int ret = MMFILE_FORMAT_FAIL;
-
- if (NULL == formatContext ) {
- debug_error ("error: invalid params\n");
- ret = MMFILE_FORMAT_FAIL;
- goto exception;
- }
-
- handle = formatContext->privateFormatData;
-
- ret = mmfile_aacparser_get_stream_info (handle, &aacinfo);
- if (MMFILE_FORMAT_SUCCESS != ret) {
- debug_error ("error: mmfile_aacparser_get_stream_info\n");
- ret = MMFILE_FORMAT_FAIL;
- goto exception;
- }
-
- formatContext->isseekable = aacinfo.iseekable;
- formatContext->duration = aacinfo.duration;
- formatContext->videoStreamId = -1;
- formatContext->videoTotalTrackNum = 0;
- formatContext->audioTotalTrackNum = aacinfo.numTracks;
- formatContext->nbStreams = 1;
-
- audioStream = mmfile_malloc (sizeof(MMFileFormatStream));
- if (NULL == audioStream) {
- debug_error ("error: calloc_audiostream\n");
- ret = MMFILE_FORMAT_FAIL;
- goto exception;
- }
-
- audioStream->streamType = MMFILE_AUDIO_STREAM;
- audioStream->codecId = MM_AUDIO_CODEC_AAC;
- audioStream->bitRate = aacinfo.bitRate;
- audioStream->framePerSec = aacinfo.frameRate;
- audioStream->width = 0;
- audioStream->height = 0;
- audioStream->nbChannel = aacinfo.numAudioChannels;
- audioStream->samplePerSec = aacinfo.samplingRate;
- formatContext->streams[MMFILE_AUDIO_STREAM] = audioStream;
-
+ MMFileAACHandle handle = NULL;
+ tMMFILE_AAC_STREAM_INFO aacinfo = {0, };
+ MMFileFormatStream *audioStream = NULL;
+
+ int ret = MMFILE_FORMAT_FAIL;
+
+ if (NULL == formatContext) {
+ debug_error("error: invalid params\n");
+ ret = MMFILE_FORMAT_FAIL;
+ goto exception;
+ }
+
+ handle = formatContext->privateFormatData;
+
+ ret = mmfile_aacparser_get_stream_info(handle, &aacinfo);
+ if (MMFILE_FORMAT_SUCCESS != ret) {
+ debug_error("error: mmfile_aacparser_get_stream_info\n");
+ ret = MMFILE_FORMAT_FAIL;
+ goto exception;
+ }
+
+ formatContext->isseekable = aacinfo.iseekable;
+ formatContext->duration = aacinfo.duration;
+ formatContext->videoStreamId = -1;
+ formatContext->videoTotalTrackNum = 0;
+ formatContext->audioTotalTrackNum = aacinfo.numTracks;
+ formatContext->nbStreams = 1;
+
+ audioStream = mmfile_malloc(sizeof(MMFileFormatStream));
+ if (NULL == audioStream) {
+ debug_error("error: calloc_audiostream\n");
+ ret = MMFILE_FORMAT_FAIL;
+ goto exception;
+ }
+
+ audioStream->streamType = MMFILE_AUDIO_STREAM;
+ audioStream->codecId = MM_AUDIO_CODEC_AAC;
+ audioStream->bitRate = aacinfo.bitRate;
+ audioStream->framePerSec = aacinfo.frameRate;
+ audioStream->width = 0;
+ audioStream->height = 0;
+ audioStream->nbChannel = aacinfo.numAudioChannels;
+ audioStream->samplePerSec = aacinfo.samplingRate;
+ formatContext->streams[MMFILE_AUDIO_STREAM] = audioStream;
+
#ifdef __MMFILE_TEST_MODE__
- mmfile_format_print_contents (formatContext);
+ mmfile_format_print_contents(formatContext);
#endif
- return MMFILE_FORMAT_SUCCESS;
+ return MMFILE_FORMAT_SUCCESS;
exception:
- return ret;
+ return ret;
}
EXPORT_API
-int mmfile_format_read_tag_aac (MMFileFormatContext *formatContext)
+int mmfile_format_read_tag_aac(MMFileFormatContext *formatContext)
{
- MMFileAACHandle handle = NULL;
- tMMFILE_AAC_TAG_INFO aacinfo = {0,};
- int ret= MMFILE_FORMAT_FAIL;
-
- if (NULL == formatContext) {
- debug_error ("error: invalid params\n");
- ret = MMFILE_FORMAT_FAIL;
- goto exception;
- }
-
- handle = formatContext->privateFormatData;
-
- ret = mmfile_aacparser_get_tag_info (handle, &aacinfo);
- if (MMFILE_FORMAT_SUCCESS != ret) {
- debug_warning ("error: mmfile_aacparser_get_tag_info\n");
- ret = MMFILE_FORMAT_FAIL;
- goto exception;
- }
-
- if(aacinfo.title)
- formatContext->title = mmfile_strdup(aacinfo.title);
- if(aacinfo.author)
- formatContext->author = mmfile_strdup(aacinfo.author);
- if(aacinfo.artist)
- formatContext->artist = mmfile_strdup(aacinfo.artist);
- if(aacinfo.album)
- formatContext->album = mmfile_strdup(aacinfo.album);
- if(aacinfo.album_artist)
- formatContext->album_artist = mmfile_strdup(aacinfo.album_artist);
- if(aacinfo.year)
- formatContext->year = mmfile_strdup(aacinfo.year);
- if(aacinfo.copyright)
- formatContext->copyright = mmfile_strdup(aacinfo.copyright);
- if(aacinfo.comment)
- formatContext->comment = mmfile_strdup(aacinfo.comment);
- if(aacinfo.genre)
- formatContext->genre = mmfile_strdup(aacinfo.genre);
- if(aacinfo.tracknum)
- formatContext->tagTrackNum= mmfile_strdup(aacinfo.tracknum);
- if(aacinfo.composer)
- formatContext->composer = mmfile_strdup(aacinfo.composer);
- if(aacinfo.classification)
- formatContext->classification = mmfile_strdup(aacinfo.classification);
- if(aacinfo.rating)
- formatContext->rating = mmfile_strdup(aacinfo.rating); /*not exist rating tag in id3*/
- if(aacinfo.conductor)
- formatContext->conductor = mmfile_strdup(aacinfo.conductor);
- if(aacinfo.artworkMime)
- formatContext->artworkMime = mmfile_strdup(aacinfo.artworkMime);
- if(aacinfo.artwork) {
- formatContext->artworkSize = aacinfo.artworkSize;
- formatContext->artwork = mmfile_malloc(aacinfo.artworkSize);
- if(formatContext->artwork == NULL) {
- ret = MMFILE_FORMAT_FAIL;
- goto exception;
- }
- memcpy(formatContext->artwork, aacinfo.artwork, aacinfo.artworkSize);
- }
+ MMFileAACHandle handle = NULL;
+ tMMFILE_AAC_TAG_INFO aacinfo = {0, };
+ int ret = MMFILE_FORMAT_FAIL;
+
+ if (NULL == formatContext) {
+ debug_error("error: invalid params\n");
+ ret = MMFILE_FORMAT_FAIL;
+ goto exception;
+ }
+
+ handle = formatContext->privateFormatData;
+
+ ret = mmfile_aacparser_get_tag_info(handle, &aacinfo);
+ if (MMFILE_FORMAT_SUCCESS != ret) {
+ debug_warning("error: mmfile_aacparser_get_tag_info\n");
+ ret = MMFILE_FORMAT_FAIL;
+ goto exception;
+ }
+
+ if (aacinfo.title)
+ formatContext->title = mmfile_strdup(aacinfo.title);
+ if (aacinfo.author)
+ formatContext->author = mmfile_strdup(aacinfo.author);
+ if (aacinfo.artist)
+ formatContext->artist = mmfile_strdup(aacinfo.artist);
+ if (aacinfo.album)
+ formatContext->album = mmfile_strdup(aacinfo.album);
+ if (aacinfo.album_artist)
+ formatContext->album_artist = mmfile_strdup(aacinfo.album_artist);
+ if (aacinfo.year)
+ formatContext->year = mmfile_strdup(aacinfo.year);
+ if (aacinfo.copyright)
+ formatContext->copyright = mmfile_strdup(aacinfo.copyright);
+ if (aacinfo.comment)
+ formatContext->comment = mmfile_strdup(aacinfo.comment);
+ if (aacinfo.genre)
+ formatContext->genre = mmfile_strdup(aacinfo.genre);
+ if (aacinfo.tracknum)
+ formatContext->tagTrackNum = mmfile_strdup(aacinfo.tracknum);
+ if (aacinfo.composer)
+ formatContext->composer = mmfile_strdup(aacinfo.composer);
+ if (aacinfo.classification)
+ formatContext->classification = mmfile_strdup(aacinfo.classification);
+ if (aacinfo.rating)
+ formatContext->rating = mmfile_strdup(aacinfo.rating); /*not exist rating tag in id3*/
+ if (aacinfo.conductor)
+ formatContext->conductor = mmfile_strdup(aacinfo.conductor);
+ if (aacinfo.artworkMime)
+ formatContext->artworkMime = mmfile_strdup(aacinfo.artworkMime);
+ if (aacinfo.artwork) {
+ formatContext->artworkSize = aacinfo.artworkSize;
+ formatContext->artwork = mmfile_malloc(aacinfo.artworkSize);
+ if (formatContext->artwork == NULL) {
+ ret = MMFILE_FORMAT_FAIL;
+ goto exception;
+ }
+ memcpy(formatContext->artwork, aacinfo.artwork, aacinfo.artworkSize);
+ }
#ifdef __MMFILE_TEST_MODE__
- mmfile_format_print_contents (formatContext);
+ mmfile_format_print_contents(formatContext);
#endif
- return MMFILE_FORMAT_SUCCESS;
+ return MMFILE_FORMAT_SUCCESS;
exception:
- return ret;
+ return ret;
}
EXPORT_API
-int mmfile_format_read_frame_aac (MMFileFormatContext *formatContext,
- unsigned int timestamp, MMFileFormatFrame *frame)
+int mmfile_format_read_frame_aac(MMFileFormatContext *formatContext,
+ unsigned int timestamp, MMFileFormatFrame *frame)
{
- debug_error ("error: mmfile_format_read_frame_aac, no handling\n");
+ debug_error("error: mmfile_format_read_frame_aac, no handling\n");
- return MMFILE_FORMAT_FAIL;
+ return MMFILE_FORMAT_FAIL;
}
EXPORT_API
-int mmfile_format_close_aac (MMFileFormatContext *formatContext)
+int mmfile_format_close_aac(MMFileFormatContext *formatContext)
{
- MMFileAACHandle handle = NULL;
- int ret = MMFILE_FORMAT_FAIL;
-
- if (NULL == formatContext ) {
- debug_error ("error: invalid params\n");
- return MMFILE_FORMAT_FAIL;
- }
-
- handle = formatContext->privateFormatData;
-
- if(NULL != handle) {
- ret = mmfile_aacparser_close(handle);
- if(ret == MMFILE_AAC_PARSER_FAIL) {
- debug_error("error: mmfile_format_close_aac\n");
- }
- }
-
- if(formatContext->streams[MMFILE_AUDIO_STREAM]) {
- mmfile_free(formatContext->streams[MMFILE_AUDIO_STREAM]);
- formatContext->streams[MMFILE_AUDIO_STREAM] = NULL;
- }
-
- formatContext->ReadStream = NULL;
- formatContext->ReadFrame = NULL;
- formatContext->ReadTag = NULL;
- formatContext->Close = NULL;
-
- return MMFILE_FORMAT_SUCCESS;
+ MMFileAACHandle handle = NULL;
+ int ret = MMFILE_FORMAT_FAIL;
+
+ if (NULL == formatContext) {
+ debug_error("error: invalid params\n");
+ return MMFILE_FORMAT_FAIL;
+ }
+
+ handle = formatContext->privateFormatData;
+
+ if (NULL != handle) {
+ ret = mmfile_aacparser_close(handle);
+ if (ret == MMFILE_AAC_PARSER_FAIL) {
+ debug_error("error: mmfile_format_close_aac\n");
+ }
+ }
+
+ if (formatContext->streams[MMFILE_AUDIO_STREAM]) {
+ mmfile_free(formatContext->streams[MMFILE_AUDIO_STREAM]);
+ formatContext->streams[MMFILE_AUDIO_STREAM] = NULL;
+ }
+
+ formatContext->ReadStream = NULL;
+ formatContext->ReadFrame = NULL;
+ formatContext->ReadTag = NULL;
+ formatContext->Close = NULL;
+
+ return MMFILE_FORMAT_SUCCESS;
}
diff --git a/formats/ffmpeg/mm_file_format_amr.c b/formats/ffmpeg/mm_file_format_amr.c
index d15cf62..7edca53 100755
--- a/formats/ffmpeg/mm_file_format_amr.c
+++ b/formats/ffmpeg/mm_file_format_amr.c
@@ -19,20 +19,20 @@
*
*/
-#include <stdio.h>
+#include <stdio.h>
#include <string.h> /*memcmp*/
#include <stdlib.h> /*malloc*/
#include <mm_error.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
#include "mm_file_format_private.h"
#include "mm_file_format_amr.h"
-// Media specific definations
+/* Media specific definations */
#define NUM_AMR_NB_MODES 8
#define NUM_AMR_WB_MODES 9
@@ -47,7 +47,7 @@
#define MMFILE_AMR_MAX_HEADER_SIZE MMFILE_AMR_WB_MULTI_CH_HEADER_SIZE
#define MMFILE_AMR_MIN_HEADER_SIZE MMFILE_AMR_SINGLE_CH_HEADER_SIZE
-
+
#define MMFILE_AMR_FRAME_DUR 20
#define AMR_NB_SAMPLES_PER_SEC 8000
#define AMR_WB_SAMPLES_PER_SEC 16000
@@ -58,43 +58,42 @@
typedef enum _mmfile_amr_format_types {
- AMR_FORMAT_NB,
- AMR_FORMAT_WB,
- AMR_FORMAT_UNKNOWN
-}eAmrFormatType;
+ AMR_FORMAT_NB,
+ AMR_FORMAT_WB,
+ AMR_FORMAT_UNKNOWN
+} eAmrFormatType;
typedef enum _mmfile_amr_channel_type {
- AMR_CHANNEL_TYPE_SINGLE,
- AMR_CHANNEL_TYPE_MULTIPLE,
- AMR_CHANNEL_TYPE_UNKNOWN
-}eAmrChannelType;
+ AMR_CHANNEL_TYPE_SINGLE,
+ AMR_CHANNEL_TYPE_MULTIPLE,
+ AMR_CHANNEL_TYPE_UNKNOWN
+} eAmrChannelType;
typedef struct _mmfile_amr_handle {
- MMFileIOHandle* hFile;
- long long duration;
- long long fileSize;
- unsigned int streamOffset;
- unsigned int bitRate;
- unsigned int samplingRate;
- unsigned int frameRate;
- unsigned int numAudioChannels;
- long long numFrames;
- unsigned int numTracks;
- int amrMode;
- eAmrFormatType amrFormat;
- eAmrChannelType amrChannelType;
-}tMMFILE_AMR_HANDLE;
-
-
+ MMFileIOHandle *hFile;
+ long long duration;
+ long long fileSize;
+ unsigned int streamOffset;
+ unsigned int bitRate;
+ unsigned int samplingRate;
+ unsigned int frameRate;
+ unsigned int numAudioChannels;
+ long long numFrames;
+ unsigned int numTracks;
+ int amrMode;
+ eAmrFormatType amrFormat;
+ eAmrChannelType amrChannelType;
+} tMMFILE_AMR_HANDLE;
+
+
typedef struct _mmfile_amr_mode_config {
- unsigned int bitRate;
- unsigned int frameSize;
-}tAmrModeConfig;
+ unsigned int bitRate;
+ unsigned int frameSize;
+} tAmrModeConfig;
/*RTP format only supported*/
/*mode vs bitRate-frameSize lookup table; [0]->AMR-NB [1]->AMR-WB */
-const tAmrModeConfig AmrModeConfigTable[2][16] =
-{
+const tAmrModeConfig AmrModeConfigTable[2][16] = {
{
{4750, 13}, {5150, 14}, {5900, 16}, {6700, 18},
{7400, 20}, {7950, 21}, {10200,27}, {12200,32},
@@ -108,79 +107,79 @@ const tAmrModeConfig AmrModeConfigTable[2][16] =
{0, 1}, {0, 1}, {0, 1}, {0, 1},
}
};
-
-/* internal APIs */
-void _amr_init_handle(tMMFILE_AMR_HANDLE* pData)
+/* internal APIs */
+
+void _amr_init_handle(tMMFILE_AMR_HANDLE *pData)
{
- pData->hFile = NULL;
- pData->duration = 0;
- pData->fileSize = 0L;
- pData->streamOffset = 0;
- pData->bitRate = 0;
- pData->samplingRate = 0;
- pData->frameRate = 0;
- pData->numAudioChannels = 1;
- pData->numTracks = 1;
- pData->numFrames = 0;
- pData->amrChannelType = AMR_CHANNEL_TYPE_SINGLE;
+ pData->hFile = NULL;
+ pData->duration = 0;
+ pData->fileSize = 0L;
+ pData->streamOffset = 0;
+ pData->bitRate = 0;
+ pData->samplingRate = 0;
+ pData->frameRate = 0;
+ pData->numAudioChannels = 1;
+ pData->numTracks = 1;
+ pData->numFrames = 0;
+ pData->amrChannelType = AMR_CHANNEL_TYPE_SINGLE;
}
-int _parse_amr_header(tMMFILE_AMR_HANDLE* pData)
+int _parse_amr_header(tMMFILE_AMR_HANDLE *pData)
{
-
- unsigned char header[MMFILE_AMR_MAX_HEADER_SIZE];
- int ret = MMFILE_AMR_PARSER_SUCCESS;
-
- ret = mmfile_read(pData->hFile, header, MMFILE_AMR_MAX_HEADER_SIZE);
- if(ret != MMFILE_AMR_MAX_HEADER_SIZE) {
- return MMFILE_AMR_PARSER_FAIL;
- }
-
-#ifdef __MMFILE_TEST_MODE__
- debug_msg("\nAMR HEADER: [%2x] [%2x] [%2x] [%2x] [%2x]\n \
+
+ unsigned char header[MMFILE_AMR_MAX_HEADER_SIZE];
+ int ret = MMFILE_AMR_PARSER_SUCCESS;
+
+ ret = mmfile_read(pData->hFile, header, MMFILE_AMR_MAX_HEADER_SIZE);
+ if (ret != MMFILE_AMR_MAX_HEADER_SIZE) {
+ return MMFILE_AMR_PARSER_FAIL;
+ }
+
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("\nAMR HEADER: [%2x] [%2x] [%2x] [%2x] [%2x]\n \
[%2x] [%2x] [%2x] [%2x] [%2x]\n \
- [%2x] [%2x] [%2x] [%2x] [%2x]\n",
- header[0], header[1], header[2], header[3],header[4],
- header[5], header[6], header[7], header[8],header[9],
- header[10],header[11],header[12],header[13],header[14]);
+ [%2x] [%2x] [%2x] [%2x] [%2x]\n",
+ header[0], header[1], header[2], header[3], header[4],
+ header[5], header[6], header[7], header[8], header[9],
+ header[10], header[11], header[12], header[13], header[14]);
#endif
- if(!(memcmp(header, MMFILE_AMR_SINGLE_CH_HEADER, MMFILE_AMR_SINGLE_CH_HEADER_SIZE))) {
- pData->amrFormat = AMR_FORMAT_NB;
- pData->amrChannelType = AMR_CHANNEL_TYPE_SINGLE;
- pData->streamOffset = MMFILE_AMR_SINGLE_CH_HEADER_SIZE;
- }
-
- else if(!(memcmp(header, MMFILE_AMR_WB_SINGLE_CH_HEADER, MMFILE_AMR_WB_SINGLE_CH_HEADER_SIZE))) {
- pData->amrFormat = AMR_FORMAT_WB;
- pData->amrChannelType = AMR_CHANNEL_TYPE_SINGLE;
- pData->streamOffset = MMFILE_AMR_WB_SINGLE_CH_HEADER_SIZE;
- }
-
- else if(!(memcmp(header, MMFILE_AMR_MULTI_CH_HEADER, MMFILE_AMR_MULTI_CH_HEADER_SIZE))){
- pData->amrFormat = AMR_FORMAT_NB;
- pData->amrChannelType = AMR_CHANNEL_TYPE_MULTIPLE;
- pData->streamOffset = MMFILE_AMR_MULTI_CH_HEADER_SIZE;
- }
-
- else if(!(memcmp(header, MMFILE_AMR_WB_MULTI_CH_HEADER, MMFILE_AMR_WB_MULTI_CH_HEADER_SIZE))) {
- pData->amrFormat = AMR_FORMAT_WB;
- pData->amrChannelType = AMR_CHANNEL_TYPE_MULTIPLE;
- pData->streamOffset = MMFILE_AMR_WB_MULTI_CH_HEADER_SIZE;
- }
-
- else {
- pData->amrFormat = AMR_FORMAT_UNKNOWN;
- pData->amrChannelType = AMR_CHANNEL_TYPE_UNKNOWN;
- ret = MMFILE_AMR_PARSER_FAIL;
- }
-
- return ret;
+ if (!(memcmp(header, MMFILE_AMR_SINGLE_CH_HEADER, MMFILE_AMR_SINGLE_CH_HEADER_SIZE))) {
+ pData->amrFormat = AMR_FORMAT_NB;
+ pData->amrChannelType = AMR_CHANNEL_TYPE_SINGLE;
+ pData->streamOffset = MMFILE_AMR_SINGLE_CH_HEADER_SIZE;
+ }
+
+ else if (!(memcmp(header, MMFILE_AMR_WB_SINGLE_CH_HEADER, MMFILE_AMR_WB_SINGLE_CH_HEADER_SIZE))) {
+ pData->amrFormat = AMR_FORMAT_WB;
+ pData->amrChannelType = AMR_CHANNEL_TYPE_SINGLE;
+ pData->streamOffset = MMFILE_AMR_WB_SINGLE_CH_HEADER_SIZE;
+ }
+
+ else if (!(memcmp(header, MMFILE_AMR_MULTI_CH_HEADER, MMFILE_AMR_MULTI_CH_HEADER_SIZE))) {
+ pData->amrFormat = AMR_FORMAT_NB;
+ pData->amrChannelType = AMR_CHANNEL_TYPE_MULTIPLE;
+ pData->streamOffset = MMFILE_AMR_MULTI_CH_HEADER_SIZE;
+ }
+
+ else if (!(memcmp(header, MMFILE_AMR_WB_MULTI_CH_HEADER, MMFILE_AMR_WB_MULTI_CH_HEADER_SIZE))) {
+ pData->amrFormat = AMR_FORMAT_WB;
+ pData->amrChannelType = AMR_CHANNEL_TYPE_MULTIPLE;
+ pData->streamOffset = MMFILE_AMR_WB_MULTI_CH_HEADER_SIZE;
+ }
+
+ else {
+ pData->amrFormat = AMR_FORMAT_UNKNOWN;
+ pData->amrChannelType = AMR_CHANNEL_TYPE_UNKNOWN;
+ ret = MMFILE_AMR_PARSER_FAIL;
+ }
+
+ return ret;
}
-int _parse_amr_stream(tMMFILE_AMR_HANDLE* pData)
+int _parse_amr_stream(tMMFILE_AMR_HANDLE *pData)
{
int frameLen = 0;
unsigned char amrMode = 0;
@@ -191,19 +190,19 @@ int _parse_amr_stream(tMMFILE_AMR_HANDLE* pData)
int pos;
long long sum_bitrate = 0;
long long frames_bitrate = 0;
-
- buf = mmfile_malloc (AMR_MAX_READ_BUF_SZ);
+
+ buf = mmfile_malloc(AMR_MAX_READ_BUF_SZ);
if (!buf) {
- debug_error ("failed to memory allocaion.\n");
+ debug_error("failed to memory allocaion.\n");
return MMFILE_AMR_PARSER_FAIL;
}
for (readed = 0;;) {
- readed = mmfile_read (pData->hFile, buf, AMR_MAX_READ_BUF_SZ);
+ readed = mmfile_read(pData->hFile, buf, AMR_MAX_READ_BUF_SZ);
if (readed <= 0) break;
for (p = buf, pos = 0;;) {
- amrMode = AMR_GET_MODE ((*(char *)p));
+ amrMode = AMR_GET_MODE((*(char *)p));
frameLen = AmrModeConfigTable[pData->amrFormat][amrMode].frameSize;
sum_bitrate += AmrModeConfigTable[pData->amrFormat][amrMode].bitRate;
pData->numFrames++;
@@ -214,18 +213,18 @@ int _parse_amr_stream(tMMFILE_AMR_HANDLE* pData)
if (pos == readed) {
break;
} else if (pos > readed) {
- mmfile_seek (pData->hFile, (pos - readed), MMFILE_SEEK_CUR);
+ mmfile_seek(pData->hFile, (pos - readed), MMFILE_SEEK_CUR);
break;
}
}
}
- mmfile_free (buf);
+ mmfile_free(buf);
- pData->duration = pData->numFrames * MMFILE_AMR_FRAME_DUR;
+ pData->duration = pData->numFrames * MMFILE_AMR_FRAME_DUR;
pData->frameRate = 1000 / MMFILE_AMR_FRAME_DUR;
- if(frames_bitrate) {
+ if (frames_bitrate) {
pData->bitRate = sum_bitrate / frames_bitrate;
}
@@ -233,142 +232,141 @@ int _parse_amr_stream(tMMFILE_AMR_HANDLE* pData)
}
-int mmfile_amrparser_open (MMFileAMRHandle *handle, const char *filenamec)
+int mmfile_amrparser_open(MMFileAMRHandle *handle, const char *filenamec)
{
- tMMFILE_AMR_HANDLE *privateData = NULL;
- int ret = 0;
-
- if (NULL == filenamec || NULL == handle) {
- debug_error ("file source is NULL\n");
- return MMFILE_AMR_PARSER_FAIL;
- }
-
- privateData = mmfile_malloc (sizeof(tMMFILE_AMR_HANDLE));
- if (NULL == privateData) {
- debug_error ("file source is NULL\n");
- return MMFILE_AMR_PARSER_FAIL;
- }
-
- /* Initialize the members of handle */
- _amr_init_handle(privateData);
-
- ret = mmfile_open (&privateData->hFile, filenamec, MMFILE_RDONLY);
- if(ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
- goto exception;
- }
-
- mmfile_seek (privateData->hFile, 0, MMFILE_SEEK_END);
- privateData->fileSize= mmfile_tell(privateData->hFile);
- mmfile_seek (privateData->hFile, 0, MMFILE_SEEK_SET);
-
- if(privateData->fileSize < MMFILE_AMR_MIN_HEADER_SIZE) {
- debug_error("Too small file to parse!!\n");
- goto exception;
- }
-
- ret = _parse_amr_header(privateData);
- if(ret == MMFILE_AMR_PARSER_FAIL) {
- debug_error("Invalid AMR header\n");
- goto exception;
- }
-
- if(privateData->amrChannelType != AMR_CHANNEL_TYPE_SINGLE) {
- debug_error("Unsupported channel mode\n"); /*Need to study AMR_Format.txt, Pg:36*/
- goto exception;
- }
-
-#ifdef __MMFILE_TEST_MODE__
- debug_msg("AMR Format Type: %s\n", \
- privateData->amrFormat == AMR_FORMAT_NB? "AMR-NB":"AMR-WB");
+ tMMFILE_AMR_HANDLE *privateData = NULL;
+ int ret = 0;
+
+ if (NULL == filenamec || NULL == handle) {
+ debug_error("file source is NULL\n");
+ return MMFILE_AMR_PARSER_FAIL;
+ }
+
+ privateData = mmfile_malloc(sizeof(tMMFILE_AMR_HANDLE));
+ if (NULL == privateData) {
+ debug_error("file source is NULL\n");
+ return MMFILE_AMR_PARSER_FAIL;
+ }
+
+ /* Initialize the members of handle */
+ _amr_init_handle(privateData);
+
+ ret = mmfile_open(&privateData->hFile, filenamec, MMFILE_RDONLY);
+ if (ret == MMFILE_UTIL_FAIL) {
+ debug_error("error: mmfile_open\n");
+ goto exception;
+ }
+
+ mmfile_seek(privateData->hFile, 0, MMFILE_SEEK_END);
+ privateData->fileSize = mmfile_tell(privateData->hFile);
+ mmfile_seek(privateData->hFile, 0, MMFILE_SEEK_SET);
+
+ if (privateData->fileSize < MMFILE_AMR_MIN_HEADER_SIZE) {
+ debug_error("Too small file to parse!!\n");
+ goto exception;
+ }
+
+ ret = _parse_amr_header(privateData);
+ if (ret == MMFILE_AMR_PARSER_FAIL) {
+ debug_error("Invalid AMR header\n");
+ goto exception;
+ }
+
+ if (privateData->amrChannelType != AMR_CHANNEL_TYPE_SINGLE) {
+ debug_error("Unsupported channel mode\n"); /*Need to study AMR_Format.txt, Pg:36*/
+ goto exception;
+ }
+
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("AMR Format Type: %s\n", \
+ privateData->amrFormat == AMR_FORMAT_NB ? "AMR-NB" : "AMR-WB");
#endif
- *handle = privateData;
+ *handle = privateData;
+
+ return MMFILE_AMR_PARSER_SUCCESS;
- return MMFILE_AMR_PARSER_SUCCESS;
-
exception:
- if (privateData) {
- mmfile_close (privateData->hFile);
- mmfile_free (privateData);
- *handle = NULL;
- }
- return MMFILE_AMR_PARSER_FAIL;
-
+ if (privateData) {
+ mmfile_close(privateData->hFile);
+ mmfile_free(privateData);
+ *handle = NULL;
+ }
+ return MMFILE_AMR_PARSER_FAIL;
+
}
-int mmfile_amrparser_get_stream_info (MMFileAMRHandle handle, tMMFILE_AMR_STREAM_INFO *amrinfo)
+int mmfile_amrparser_get_stream_info(MMFileAMRHandle handle, tMMFILE_AMR_STREAM_INFO *amrinfo)
{
- tMMFILE_AMR_HANDLE *privateData = NULL;
- int ret;
-
- if (NULL == handle || NULL == amrinfo) {
- debug_error ("handle is NULL\n");
- return MMFILE_AMR_PARSER_FAIL;
- }
-
- privateData = (tMMFILE_AMR_HANDLE *) handle;
-
- mmfile_seek(privateData->hFile, privateData->streamOffset, MMFILE_SEEK_SET);
-
- ret = _parse_amr_stream(privateData);
- if(ret == MMFILE_AMR_PARSER_FAIL) {
- debug_error("Error in parsing the stream\n");
- return ret;
- }
-
- amrinfo->duration = privateData->duration;
- amrinfo->fileSize = privateData->fileSize;
- amrinfo->bitRate = privateData->bitRate;
- amrinfo->frameRate = privateData->frameRate;
- amrinfo->numAudioChannels = 1;
- amrinfo->numTracks = 1;
-
- if(privateData->amrFormat == AMR_FORMAT_NB) {
- amrinfo->samplingRate = AMR_NB_SAMPLES_PER_SEC;
- }
- else {
- amrinfo->samplingRate = AMR_WB_SAMPLES_PER_SEC;
- }
-
- return MMFILE_AMR_PARSER_SUCCESS;
+ tMMFILE_AMR_HANDLE *privateData = NULL;
+ int ret;
+
+ if (NULL == handle || NULL == amrinfo) {
+ debug_error("handle is NULL\n");
+ return MMFILE_AMR_PARSER_FAIL;
+ }
+
+ privateData = (tMMFILE_AMR_HANDLE *) handle;
+
+ mmfile_seek(privateData->hFile, privateData->streamOffset, MMFILE_SEEK_SET);
+
+ ret = _parse_amr_stream(privateData);
+ if (ret == MMFILE_AMR_PARSER_FAIL) {
+ debug_error("Error in parsing the stream\n");
+ return ret;
+ }
+
+ amrinfo->duration = privateData->duration;
+ amrinfo->fileSize = privateData->fileSize;
+ amrinfo->bitRate = privateData->bitRate;
+ amrinfo->frameRate = privateData->frameRate;
+ amrinfo->numAudioChannels = 1;
+ amrinfo->numTracks = 1;
+
+ if (privateData->amrFormat == AMR_FORMAT_NB) {
+ amrinfo->samplingRate = AMR_NB_SAMPLES_PER_SEC;
+ } else {
+ amrinfo->samplingRate = AMR_WB_SAMPLES_PER_SEC;
+ }
+
+ return MMFILE_AMR_PARSER_SUCCESS;
}
-int mmfile_amrparser_close (MMFileAMRHandle handle)
+int mmfile_amrparser_close(MMFileAMRHandle handle)
{
- tMMFILE_AMR_HANDLE *privateData = NULL;
+ tMMFILE_AMR_HANDLE *privateData = NULL;
+
+ if (NULL == handle) {
+ debug_error("handle is NULL\n");
+ return MMFILE_AMR_PARSER_FAIL;
+ }
- if (NULL == handle) {
- debug_error ("handle is NULL\n");
- return MMFILE_AMR_PARSER_FAIL;
- }
+ privateData = (tMMFILE_AMR_HANDLE *) handle;
- privateData = (tMMFILE_AMR_HANDLE *) handle;
-
- mmfile_close(privateData->hFile);
+ mmfile_close(privateData->hFile);
- return MMFILE_AMR_PARSER_SUCCESS;
+ return MMFILE_AMR_PARSER_SUCCESS;
}
-
-
-
+
+
+
/* mm plugin interface */
-int mmfile_format_read_stream_amr (MMFileFormatContext *formatContext);
-int mmfile_format_read_frame_amr (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
-int mmfile_format_read_tag_amr (MMFileFormatContext *formatContext);
-int mmfile_format_close_amr (MMFileFormatContext *formatContext);
+int mmfile_format_read_stream_amr(MMFileFormatContext *formatContext);
+int mmfile_format_read_frame_amr(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
+int mmfile_format_read_tag_amr(MMFileFormatContext *formatContext);
+int mmfile_format_close_amr(MMFileFormatContext *formatContext);
EXPORT_API
-int mmfile_format_open_amr (MMFileFormatContext *formatContext)
+int mmfile_format_open_amr(MMFileFormatContext *formatContext)
{
MMFileAMRHandle handle = NULL;
int res = MMFILE_FORMAT_FAIL;
if (NULL == formatContext || NULL == formatContext->uriFileName) {
- debug_error ("error: mmfile_format_open_amr\n");
+ debug_error("error: mmfile_format_open_amr\n");
return MMFILE_FORMAT_FAIL;
}
@@ -380,9 +378,9 @@ int mmfile_format_open_amr (MMFileFormatContext *formatContext)
formatContext->videoTotalTrackNum = 0;
formatContext->audioTotalTrackNum = 1;
- res = mmfile_amrparser_open (&handle, formatContext->uriFileName);
+ res = mmfile_amrparser_open(&handle, formatContext->uriFileName);
if (MMFILE_AMR_PARSER_FAIL == res) {
- debug_error ("mmfile_amrparser_open\n");
+ debug_error("mmfile_amrparser_open\n");
return MMFILE_FORMAT_FAIL;
}
@@ -392,110 +390,110 @@ int mmfile_format_open_amr (MMFileFormatContext *formatContext)
}
EXPORT_API
-int mmfile_format_read_stream_amr (MMFileFormatContext *formatContext)
+int mmfile_format_read_stream_amr(MMFileFormatContext *formatContext)
{
- MMFileAMRHandle handle = NULL;
- tMMFILE_AMR_STREAM_INFO amrinfo = {0,};
- MMFileFormatStream *audioStream = NULL;
-
- int ret = MMFILE_FORMAT_FAIL;
-
- if (NULL == formatContext ) {
- debug_error ("error: invalid params\n");
- ret = MMFILE_FORMAT_FAIL;
- goto exception;
- }
-
- handle = formatContext->privateFormatData;
-
- ret = mmfile_amrparser_get_stream_info (handle, &amrinfo);
- if (MMFILE_FORMAT_SUCCESS != ret) {
- debug_error ("error: mmfile_amrparser_get_stream_info\n");
- ret = MMFILE_FORMAT_FAIL;
- goto exception;
- }
-
- formatContext->duration = amrinfo.duration;
- formatContext->videoStreamId = -1;
- formatContext->videoTotalTrackNum = 0;
- formatContext->audioTotalTrackNum = amrinfo.numTracks;
- formatContext->nbStreams = 1;
-
- audioStream = mmfile_malloc (sizeof(MMFileFormatStream));
- if (NULL == audioStream) {
- debug_error ("error: calloc_audiostream\n");
- ret = MMFILE_FORMAT_FAIL;
- goto exception;
- }
-
- audioStream->streamType = MMFILE_AUDIO_STREAM;
- audioStream->codecId = MM_AUDIO_CODEC_AMR;
- audioStream->bitRate = amrinfo.bitRate;
- audioStream->framePerSec = amrinfo.frameRate;
- audioStream->width = 0;
- audioStream->height = 0;
- audioStream->nbChannel = amrinfo.numAudioChannels;
- audioStream->samplePerSec = amrinfo.samplingRate;
- formatContext->streams[MMFILE_AUDIO_STREAM] = audioStream;
-
+ MMFileAMRHandle handle = NULL;
+ tMMFILE_AMR_STREAM_INFO amrinfo = {0, };
+ MMFileFormatStream *audioStream = NULL;
+
+ int ret = MMFILE_FORMAT_FAIL;
+
+ if (NULL == formatContext) {
+ debug_error("error: invalid params\n");
+ ret = MMFILE_FORMAT_FAIL;
+ goto exception;
+ }
+
+ handle = formatContext->privateFormatData;
+
+ ret = mmfile_amrparser_get_stream_info(handle, &amrinfo);
+ if (MMFILE_FORMAT_SUCCESS != ret) {
+ debug_error("error: mmfile_amrparser_get_stream_info\n");
+ ret = MMFILE_FORMAT_FAIL;
+ goto exception;
+ }
+
+ formatContext->duration = amrinfo.duration;
+ formatContext->videoStreamId = -1;
+ formatContext->videoTotalTrackNum = 0;
+ formatContext->audioTotalTrackNum = amrinfo.numTracks;
+ formatContext->nbStreams = 1;
+
+ audioStream = mmfile_malloc(sizeof(MMFileFormatStream));
+ if (NULL == audioStream) {
+ debug_error("error: calloc_audiostream\n");
+ ret = MMFILE_FORMAT_FAIL;
+ goto exception;
+ }
+
+ audioStream->streamType = MMFILE_AUDIO_STREAM;
+ audioStream->codecId = MM_AUDIO_CODEC_AMR;
+ audioStream->bitRate = amrinfo.bitRate;
+ audioStream->framePerSec = amrinfo.frameRate;
+ audioStream->width = 0;
+ audioStream->height = 0;
+ audioStream->nbChannel = amrinfo.numAudioChannels;
+ audioStream->samplePerSec = amrinfo.samplingRate;
+ formatContext->streams[MMFILE_AUDIO_STREAM] = audioStream;
+
#ifdef __MMFILE_TEST_MODE__
- mmfile_format_print_contents (formatContext);
+ mmfile_format_print_contents(formatContext);
#endif
- return MMFILE_FORMAT_SUCCESS;
+ return MMFILE_FORMAT_SUCCESS;
exception:
- return ret;
+ return ret;
}
EXPORT_API
-int mmfile_format_read_tag_amr (MMFileFormatContext *formatContext)
+int mmfile_format_read_tag_amr(MMFileFormatContext *formatContext)
{
- return MMFILE_FORMAT_SUCCESS;
+ return MMFILE_FORMAT_SUCCESS;
}
EXPORT_API
-int mmfile_format_read_frame_amr (MMFileFormatContext *formatContext,
- unsigned int timestamp, MMFileFormatFrame *frame)
+int mmfile_format_read_frame_amr(MMFileFormatContext *formatContext,
+ unsigned int timestamp, MMFileFormatFrame *frame)
{
- debug_error ("error: mmfile_format_read_frame_amr, no handling\n");
-
- return MMFILE_FORMAT_FAIL;
+ debug_error("error: mmfile_format_read_frame_amr, no handling\n");
+
+ return MMFILE_FORMAT_FAIL;
}
EXPORT_API
-int mmfile_format_close_amr (MMFileFormatContext *formatContext)
+int mmfile_format_close_amr(MMFileFormatContext *formatContext)
{
- MMFileAMRHandle handle = NULL;
- int ret = MMFILE_FORMAT_FAIL;
-
- if (NULL == formatContext ) {
- debug_error ("error: invalid params\n");
- return MMFILE_FORMAT_FAIL;
- }
-
- handle = formatContext->privateFormatData;
-
- if(NULL != handle) {
- ret = mmfile_amrparser_close(handle);
- if(ret == MMFILE_AMR_PARSER_FAIL) {
- debug_error("error: mmfile_format_close_amr\n");
- }
- }
-
- if(formatContext->streams[MMFILE_AUDIO_STREAM]) {
- mmfile_free(formatContext->streams[MMFILE_AUDIO_STREAM]);
- formatContext->streams[MMFILE_AUDIO_STREAM] = NULL;
- }
-
- formatContext->ReadStream = NULL;
- formatContext->ReadFrame = NULL;
- formatContext->ReadTag = NULL;
- formatContext->Close = NULL;
-
- return MMFILE_FORMAT_SUCCESS;
+ MMFileAMRHandle handle = NULL;
+ int ret = MMFILE_FORMAT_FAIL;
+
+ if (NULL == formatContext) {
+ debug_error("error: invalid params\n");
+ return MMFILE_FORMAT_FAIL;
+ }
+
+ handle = formatContext->privateFormatData;
+
+ if (NULL != handle) {
+ ret = mmfile_amrparser_close(handle);
+ if (ret == MMFILE_AMR_PARSER_FAIL) {
+ debug_error("error: mmfile_format_close_amr\n");
+ }
+ }
+
+ if (formatContext->streams[MMFILE_AUDIO_STREAM]) {
+ mmfile_free(formatContext->streams[MMFILE_AUDIO_STREAM]);
+ formatContext->streams[MMFILE_AUDIO_STREAM] = NULL;
+ }
+
+ formatContext->ReadStream = NULL;
+ formatContext->ReadFrame = NULL;
+ formatContext->ReadTag = NULL;
+ formatContext->Close = NULL;
+
+ return MMFILE_FORMAT_SUCCESS;
}
diff --git a/formats/ffmpeg/mm_file_format_dummy.c b/formats/ffmpeg/mm_file_format_dummy.c
index b8f7a19..9ecd927 100755
--- a/formats/ffmpeg/mm_file_format_dummy.c
+++ b/formats/ffmpeg/mm_file_format_dummy.c
@@ -24,7 +24,7 @@
#include <mm_error.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_format_private.h"
#include "mm_file_format_dummy.h"
@@ -34,58 +34,57 @@
/* plugin manadatory API */
-int mmfile_format_read_stream_dummy (MMFileFormatContext *formatContext);
-int mmfile_format_read_frame_dummy (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
-int mmfile_format_read_tag_dummy (MMFileFormatContext *formatContext);
-int mmfile_format_close_dummy (MMFileFormatContext *formatContext);
+int mmfile_format_read_stream_dummy(MMFileFormatContext *formatContext);
+int mmfile_format_read_frame_dummy(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
+int mmfile_format_read_tag_dummy(MMFileFormatContext *formatContext);
+int mmfile_format_close_dummy(MMFileFormatContext *formatContext);
EXPORT_API
-int mmfile_format_open_dummy (MMFileFormatContext *formatContext)
+int mmfile_format_open_dummy(MMFileFormatContext *formatContext)
{
- debug_warning ("called mmfile_format_open_dummy\n");
-
- formatContext->ReadStream = mmfile_format_read_stream_dummy;
- formatContext->ReadFrame = mmfile_format_read_frame_dummy;
- formatContext->ReadTag = mmfile_format_read_tag_dummy;
- formatContext->Close = mmfile_format_close_dummy;
-
- return MMFILE_FORMAT_SUCCESS;
+ debug_warning("called mmfile_format_open_dummy\n");
+
+ formatContext->ReadStream = mmfile_format_read_stream_dummy;
+ formatContext->ReadFrame = mmfile_format_read_frame_dummy;
+ formatContext->ReadTag = mmfile_format_read_tag_dummy;
+ formatContext->Close = mmfile_format_close_dummy;
+
+ return MMFILE_FORMAT_SUCCESS;
}
EXPORT_API
-int mmfile_format_read_stream_dummy (MMFileFormatContext * formatContext)
+int mmfile_format_read_stream_dummy(MMFileFormatContext *formatContext)
{
- debug_warning ("called mmfile_format_read_stream_dummy\n");
- return MMFILE_FORMAT_SUCCESS;
+ debug_warning("called mmfile_format_read_stream_dummy\n");
+ return MMFILE_FORMAT_SUCCESS;
}
EXPORT_API
-int mmfile_format_read_frame_dummy (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame)
+int mmfile_format_read_frame_dummy(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame)
{
- debug_warning ("called mmfile_format_read_frame_dummy\n");
- return MMFILE_FORMAT_SUCCESS;
+ debug_warning("called mmfile_format_read_frame_dummy\n");
+ return MMFILE_FORMAT_SUCCESS;
}
EXPORT_API
-int mmfile_format_read_tag_dummy (MMFileFormatContext *formatContext)
+int mmfile_format_read_tag_dummy(MMFileFormatContext *formatContext)
{
- debug_warning ("called mmfile_format_read_tag_dummy\n");
- return MMFILE_FORMAT_SUCCESS;
+ debug_warning("called mmfile_format_read_tag_dummy\n");
+ return MMFILE_FORMAT_SUCCESS;
}
EXPORT_API
-int mmfile_format_close_dummy (MMFileFormatContext *formatContext)
+int mmfile_format_close_dummy(MMFileFormatContext *formatContext)
{
- debug_warning ("called mmfile_format_close_dummy\n");
- if (formatContext)
- {
- formatContext->ReadStream = NULL;
- formatContext->ReadFrame = NULL;
- formatContext->ReadTag = NULL;
- formatContext->Close = NULL;
- }
-
- return MMFILE_FORMAT_SUCCESS;
+ debug_warning("called mmfile_format_close_dummy\n");
+ if (formatContext) {
+ formatContext->ReadStream = NULL;
+ formatContext->ReadFrame = NULL;
+ formatContext->ReadTag = NULL;
+ formatContext->Close = NULL;
+ }
+
+ return MMFILE_FORMAT_SUCCESS;
}
diff --git a/formats/ffmpeg/mm_file_format_ffmpeg.c b/formats/ffmpeg/mm_file_format_ffmpeg.c
index 2091b97..9309669 100755
--- a/formats/ffmpeg/mm_file_format_ffmpeg.c
+++ b/formats/ffmpeg/mm_file_format_ffmpeg.c
@@ -18,11 +18,12 @@
* limitations under the License.
*
*/
-
+
#include <string.h>
#include <stdlib.h>
#include <libavformat/avformat.h>
+#include <libavformat/url.h>
#include <libavcodec/avcodec.h>
#include <libavutil/samplefmt.h>
#ifdef __MMFILE_FFMPEG_V085__
@@ -30,52 +31,50 @@
#endif
#include <mm_error.h>
#include <mm_types.h>
-
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_formats.h"
#include "mm_file_utils.h"
#include "mm_file_format_ffmpeg.h"
-
#include "mm_file_format_ffmpeg_mem.h"
#include <sys/time.h>
#define _SHORT_MEDIA_LIMIT 2000 /* under X seconds duration*/
-extern int img_convert (AVPicture *dst, int dst_pix_fmt, const AVPicture *src, int src_pix_fmt,int src_width, int src_height);
+extern int img_convert(AVPicture *dst, int dst_pix_fmt, const AVPicture *src, int src_pix_fmt, int src_width, int src_height);
/* internal functions */
-static int _is_good_pgm (unsigned char *buf, int wrap, int xsize, int ysize);
+static int _is_good_pgm(unsigned char *buf, int wrap, int xsize, int ysize);
#ifdef MMFILE_FORMAT_DEBUG_DUMP
-static void _save_pgm (unsigned char *buf, int wrap, int xsize, int ysize, char *filename);
+static void _save_pgm(unsigned char *buf, int wrap, int xsize, int ysize, char *filename);
#endif
#ifdef __MMFILE_TEST_MODE__
-static void _dump_av_packet (AVPacket *pkt);
+static void _dump_av_packet(AVPacket *pkt);
#endif
-static int _get_video_fps (int frame_cnt, int duration, AVRational r_frame_rate, int is_roundup);
-static int _get_first_good_video_frame (AVFormatContext *pFormatCtx, AVCodecContext *pCodecCtx, int videoStream, AVFrame **pFrame, int cdis);
+static int _get_video_fps(int frame_cnt, int duration, AVRational r_frame_rate, int is_roundup);
+static int _get_first_good_video_frame(AVFormatContext *pFormatCtx, AVCodecContext *pCodecCtx, int videoStream, AVFrame **pFrame, int cdis);
-static int ConvertVideoCodecEnum (int AVVideoCodecID);
-static int ConvertAudioCodecEnum (int AVAudioCodecID);
+static int ConvertVideoCodecEnum(int AVVideoCodecID);
+static int ConvertAudioCodecEnum(int AVAudioCodecID);
/* plugin manadatory API */
-int mmfile_format_read_stream_ffmpg (MMFileFormatContext * formatContext);
-int mmfile_format_read_frame_ffmpg (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
-int mmfile_format_read_tag_ffmpg (MMFileFormatContext *formatContext);
-int mmfile_format_close_ffmpg (MMFileFormatContext *formatContext);
-static int getMimeType(int formatId, char *mimeType);
+int mmfile_format_read_stream_ffmpg(MMFileFormatContext *formatContext);
+int mmfile_format_read_frame_ffmpg(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
+int mmfile_format_read_tag_ffmpg(MMFileFormatContext *formatContext);
+int mmfile_format_close_ffmpg(MMFileFormatContext *formatContext);
+static int getMimeType(int formatId, char *mimeType, int buf_size);
EXPORT_API
-int mmfile_format_open_ffmpg (MMFileFormatContext *formatContext)
+int mmfile_format_open_ffmpg(MMFileFormatContext *formatContext)
{
AVFormatContext *pFormatCtx = NULL;
AVInputFormat *grab_iformat = NULL;
int ret = 0;
- int i;
- char ffmpegFormatName[MMFILE_FILE_FMT_MAX_LEN] = {0,};
- char mimeType[MMFILE_MIMETYPE_MAX_LEN] = {0,};
+ unsigned int i;
+ char ffmpegFormatName[MMFILE_FILE_FMT_MAX_LEN] = {0, };
+ char mimeType[MMFILE_MIMETYPE_MAX_LEN] = {0, };
formatContext->ReadStream = mmfile_format_read_stream_ffmpg;
formatContext->ReadFrame = mmfile_format_read_frame_ffmpg;
@@ -83,7 +82,7 @@ int mmfile_format_open_ffmpg (MMFileFormatContext *formatContext)
formatContext->Close = mmfile_format_close_ffmpg;
#ifdef __MMFILE_TEST_MODE__
- debug_msg ("ffmpeg version: %d\n", avformat_version ());
+ debug_msg("ffmpeg version: %d\n", avformat_version());
/**
* FFMPEG DEBUG LEVEL
* AV_LOG_QUIET -1
@@ -93,46 +92,46 @@ int mmfile_format_open_ffmpg (MMFileFormatContext *formatContext)
* AV_LOG_INFO 1
* AV_LOG_VERBOSE 1
* AV_LOG_DEBUG 2
- */
- av_log_set_level (AV_LOG_DEBUG);
+ */
+ av_log_set_level(AV_LOG_DEBUG);
#else
- av_log_set_level (AV_LOG_QUIET);
+ av_log_set_level(AV_LOG_QUIET);
#endif
av_register_all();
if (formatContext->filesrc->type == MM_FILE_SRC_TYPE_MEMORY) {
-#ifdef __MMFILE_FFMPEG_V085__
- ffurl_register_protocol(&MMFileMEMProtocol, sizeof (URLProtocol));
+#if (defined __MMFILE_FFMPEG_V085__ && !defined __MMFILE_LIBAV_VERSION__)
+ ffurl_register_protocol(&MMFileMEMProtocol, sizeof(URLProtocol));
#else
- register_protocol (&MMFileMEMProtocol);
-#endif
- if(getMimeType(formatContext->filesrc->memory.format,mimeType)< 0) {
- debug_error ("error: Error in MIME Type finding\n");
+ ffurl_register_protocol(&MMFileMEMProtocol);
+#endif
+ if (getMimeType(formatContext->filesrc->memory.format, mimeType, MMFILE_MIMETYPE_MAX_LEN) < 0) {
+ debug_error("error: Error in MIME Type finding\n");
return MMFILE_FORMAT_FAIL;
}
- memset (ffmpegFormatName, 0x00, MMFILE_FILE_FMT_MAX_LEN);
-
- ret = mmfile_util_get_ffmpeg_format (mimeType,ffmpegFormatName);
+ memset(ffmpegFormatName, 0x00, MMFILE_FILE_FMT_MAX_LEN);
+
+ ret = mmfile_util_get_ffmpeg_format(mimeType, ffmpegFormatName);
if (MMFILE_UTIL_SUCCESS != ret) {
- debug_error ("error: mmfile_util_get_ffmpeg_format\n");
+ debug_error("error: mmfile_util_get_ffmpeg_format\n");
return MMFILE_FORMAT_FAIL;
}
- grab_iformat = av_find_input_format (ffmpegFormatName);
+ grab_iformat = av_find_input_format(ffmpegFormatName);
if (NULL == grab_iformat) {
- debug_error ("error: cannot find format\n");
+ debug_error("error: cannot find format\n");
goto exception;
}
#ifdef __MMFILE_FFMPEG_V085__
- ret = avformat_open_input (&pFormatCtx, formatContext->uriFileName, grab_iformat, NULL);
+ ret = avformat_open_input(&pFormatCtx, formatContext->uriFileName, grab_iformat, NULL);
#else
- ret = av_open_input_file (&pFormatCtx, formatContext->uriFileName, grab_iformat, 0, NULL);
+ ret = av_open_input_file(&pFormatCtx, formatContext->uriFileName, grab_iformat, 0, NULL);
#endif
if (ret < 0) {
debug_error("error: cannot open %s %d\n", formatContext->uriFileName, ret);
@@ -140,7 +139,7 @@ int mmfile_format_open_ffmpg (MMFileFormatContext *formatContext)
}
formatContext->privateFormatData = pFormatCtx;
}
-
+
if (formatContext->filesrc->type == MM_FILE_SRC_TYPE_FILE) {
#ifdef __MMFILE_FFMPEG_V085__
ret = avformat_open_input(&pFormatCtx, formatContext->filesrc->file.path, NULL, NULL);
@@ -151,71 +150,72 @@ int mmfile_format_open_ffmpg (MMFileFormatContext *formatContext)
debug_error("error: cannot open %s %d\n", formatContext->filesrc->file.path, ret);
goto exception;
}
+
formatContext->privateFormatData = pFormatCtx;
}
- if (!pFormatCtx || !(pFormatCtx->nb_streams > 0)) {
- debug_warning ("failed to find av stream. maybe corrupted data.\n");
+ if (!pFormatCtx/* || !(pFormatCtx->nb_streams > 0)*/) {
+ debug_warning("failed to find av stream. maybe corrupted data.\n");
goto exception;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("number of stream: %d\n", pFormatCtx->nb_streams);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("number of stream: %d\n", pFormatCtx->nb_streams);
+#endif
formatContext->videoTotalTrackNum = 0;
formatContext->audioTotalTrackNum = 0;
- for(i = 0; i < pFormatCtx->nb_streams; i++) {
-#ifdef __MMFILE_FFMPEG_V085__
+ for (i = 0; i < pFormatCtx->nb_streams; i++) {
+#ifdef __MMFILE_FFMPEG_V085__
if (pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("FFMPEG video codec id: 0x%08X\n", pFormatCtx->streams[i]->codec->codec_id);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("FFMPEG video codec id: 0x%08X\n", pFormatCtx->streams[i]->codec->codec_id);
+#endif
AVPacket pkt = pFormatCtx->streams[i]->attached_pic;
- if((pkt.data != NULL) && (pkt.size > 0))
+ if ((pkt.data != NULL) && (pkt.size > 0))
continue;
- //eventhough codec_id is 0, avformat_find_stream_info() can find proper codec_id.
+ /*eventhough codec_id is 0, avformat_find_stream_info() can find proper codec_id. */
formatContext->videoTotalTrackNum += 1;
}
if (pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("FFMPEG audio codec id: 0x%08X\n", pFormatCtx->streams[i]->codec->codec_id);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("FFMPEG audio codec id: 0x%08X\n", pFormatCtx->streams[i]->codec->codec_id);
+#endif
formatContext->audioTotalTrackNum += 1;
}
-#else
- if (pFormatCtx->streams[i]->codec->codec_type == CODEC_TYPE_VIDEO) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("FFMPEG video codec id: 0x%08X\n", pFormatCtx->streams[i]->codec->codec_id);
- #endif
+#else
+ if (pFormatCtx->streams[i]->codec->codec_type == AV_CODEC_TYPE_VIDEO) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("FFMPEG video codec id: 0x%08X\n", pFormatCtx->streams[i]->codec->codec_id);
+#endif
formatContext->videoTotalTrackNum += 1;
}
- if (pFormatCtx->streams[i]->codec->codec_type == CODEC_TYPE_AUDIO) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("FFMPEG audio codec id: 0x%08X\n", pFormatCtx->streams[i]->codec->codec_id);
- #endif
+ if (pFormatCtx->streams[i]->codec->codec_type == AV_CODEC_TYPE_AUDIO) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("FFMPEG audio codec id: 0x%08X\n", pFormatCtx->streams[i]->codec->codec_id);
+#endif
formatContext->audioTotalTrackNum += 1;
}
#endif
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("format: %s (%s)\n", pFormatCtx->iformat->name, pFormatCtx->iformat->long_name);
- #ifdef __MMFILE_FFMPEG_V085__
- av_dump_format (pFormatCtx, 0, formatContext->filesrc->file.path, 0);
- #else
- dump_format (pFormatCtx, 0, formatContext->filesrc->file.path, 0);
- #endif
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("format: %s (%s)\n", pFormatCtx->iformat->name, pFormatCtx->iformat->long_name);
+#ifdef __MMFILE_FFMPEG_V085__
+ av_dump_format(pFormatCtx, 0, formatContext->filesrc->file.path, 0);
+#else
+ dump_format(pFormatCtx, 0, formatContext->filesrc->file.path, 0);
+#endif
+#endif
return MMFILE_FORMAT_SUCCESS;
exception: /* fail to get content information */
- mmfile_format_close_ffmpg (formatContext);
+ mmfile_format_close_ffmpg(formatContext);
formatContext->privateFormatData = NULL;
return MMFILE_FORMAT_FAIL;
@@ -242,7 +242,7 @@ static bool __check_uhqa(int sample_rate, enum AVSampleFormat sample_fmt_info)
}
EXPORT_API
-int mmfile_format_read_stream_ffmpg (MMFileFormatContext * formatContext)
+int mmfile_format_read_stream_ffmpg(MMFileFormatContext *formatContext)
{
AVFormatContext *pFormatCtx = NULL;
AVCodecContext *pAudioCodecCtx = NULL;
@@ -253,7 +253,7 @@ int mmfile_format_read_stream_ffmpg (MMFileFormatContext * formatContext)
int ret = 0;
if (NULL == formatContext || NULL == formatContext->privateFormatData) {
- debug_error ("invalid param\n");
+ debug_error("invalid param\n");
return MMFILE_FORMAT_FAIL;
}
@@ -266,47 +266,48 @@ int mmfile_format_read_stream_ffmpg (MMFileFormatContext * formatContext)
*/
#ifdef __MMFILE_FFMPEG_V100__
if (formatContext->cdis != 1)
- ret = avformat_find_stream_info (pFormatCtx, NULL);
+ ret = avformat_find_stream_info(pFormatCtx, NULL);
else
ret = 0;
#else
- ret = av_find_stream_info (pFormatCtx);
+ ret = av_find_stream_info(pFormatCtx);
#endif
- if ( ret < 0 ) {
- debug_warning ("failed to find stream info. errcode = %d\n", ret);
+ if (ret < 0) {
+ debug_warning("failed to find stream info. errcode = %d\n", ret);
goto exception;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("FFMPEG: dur %lld, start %lld\n", pFormatCtx->duration, pFormatCtx->start_time);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("FFMPEG: dur %lld, start %lld\n", pFormatCtx->duration, pFormatCtx->start_time);
+#endif
/**
*@note asf has long duration bug. and Some content's start time is wrong(negative number).
*/
- if(pFormatCtx->start_time < 0) {
- debug_warning ("Wrong Start time = %lld\n", pFormatCtx->start_time);
+ if (pFormatCtx->start_time < 0) {
+ debug_warning("Wrong Start time = %lld\n", pFormatCtx->start_time);
formatContext->duration = (long long)(pFormatCtx->duration) * 1000 / AV_TIME_BASE;
- }
- else {
+ } else {
formatContext->duration = (long long)(pFormatCtx->duration + pFormatCtx->start_time) * 1000 / AV_TIME_BASE;
}
formatContext->videoStreamId = -1;
formatContext->audioStreamId = -1;
formatContext->nbStreams = 0;
+ formatContext->videoTotalTrackNum = 0;
+ formatContext->audioTotalTrackNum = 0;
- int i = 0;
- for ( i = 0; i < pFormatCtx->nb_streams; i++ ) {
-#ifdef __MMFILE_FFMPEG_V085__
- if ( pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
+ unsigned int i = 0;
+ for (i = 0; i < pFormatCtx->nb_streams; i++) {
+#ifdef __MMFILE_FFMPEG_V085__
+ if (pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
#else
- if ( pFormatCtx->streams[i]->codec->codec_type == CODEC_TYPE_VIDEO) {
+ if (pFormatCtx->streams[i]->codec->codec_type == AV_CODEC_TYPE_VIDEO) {
#endif
if (formatContext->videoStreamId == -1) {
- videoStream = mmfile_malloc (sizeof(MMFileFormatStream));
+ videoStream = mmfile_malloc(sizeof(MMFileFormatStream));
if (NULL == videoStream) {
- debug_error ("mmfile_malloc error\n");
+ debug_error("mmfile_malloc error\n");
goto exception;
}
@@ -314,10 +315,11 @@ int mmfile_format_read_stream_ffmpg (MMFileFormatContext * formatContext)
formatContext->streams[MMFILE_VIDEO_STREAM] = videoStream;
formatContext->nbStreams += 1;
formatContext->videoStreamId = i;
+ formatContext->videoTotalTrackNum += 1;
pVideoCodecCtx = pFormatCtx->streams[i]->codec;
if (pVideoCodecCtx) {
- videoStream->codecId = ConvertVideoCodecEnum (pVideoCodecCtx->codec_id);
+ videoStream->codecId = ConvertVideoCodecEnum(pVideoCodecCtx->codec_id);
if (videoStream->codecId == MM_VIDEO_CODEC_NONE) {
debug_error("Proper codec is not found in [%d] stream", i);
formatContext->videoStreamId = -1;
@@ -332,29 +334,34 @@ int mmfile_format_read_stream_ffmpg (MMFileFormatContext * formatContext)
* 1. try to get average fps of video stream.
* 2. if (1) failed, try to get fps of media container.
*/
- videoStream->framePerSec = _get_video_fps (pFormatCtx->streams[i]->nb_frames,
- pFormatCtx->streams[i]->duration,
- pFormatCtx->streams[i]->time_base,
- 1);
-
- if (videoStream->framePerSec == 0)
- videoStream->framePerSec = av_q2d (pFormatCtx->streams[i]->r_frame_rate);
+ videoStream->framePerSec = _get_video_fps(pFormatCtx->streams[i]->nb_frames,
+ pFormatCtx->streams[i]->duration,
+ pFormatCtx->streams[i]->time_base,
+ 1);
+
+ if (videoStream->framePerSec == 0) {
+#ifndef __MMFILE_LIBAV_VERSION__
+ videoStream->framePerSec = av_q2d(pFormatCtx->streams[i]->r_frame_rate);
+#else
+ videoStream->framePerSec = av_q2d(pFormatCtx->streams[i]->avg_frame_rate);
+#endif
+ }
videoStream->width = pVideoCodecCtx->width;
videoStream->height = pVideoCodecCtx->height;
videoStream->bitRate = pVideoCodecCtx->bit_rate;
}
}
- }
+ }
#ifdef __MMFILE_FFMPEG_V085__
- else if ( pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO ) {
+ else if (pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
#else
- else if ( pFormatCtx->streams[i]->codec->codec_type == CODEC_TYPE_AUDIO ) {
+ else if (pFormatCtx->streams[i]->codec->codec_type == AV_CODEC_TYPE_AUDIO) {
#endif
if (formatContext->audioStreamId == -1) {
- audioStream = mmfile_malloc (sizeof(MMFileFormatStream));
+ audioStream = mmfile_malloc(sizeof(MMFileFormatStream));
if (NULL == audioStream) {
- debug_error ("mmfile_malloc error\n");
+ debug_error("mmfile_malloc error\n");
goto exception;
}
@@ -362,47 +369,51 @@ int mmfile_format_read_stream_ffmpg (MMFileFormatContext * formatContext)
formatContext->streams[MMFILE_AUDIO_STREAM] = audioStream;
formatContext->nbStreams += 1;
formatContext->audioStreamId = i;
+ formatContext->audioTotalTrackNum += 1;
pAudioCodecCtx = pFormatCtx->streams[i]->codec;
if (pAudioCodecCtx) {
- audioStream->codecId = ConvertAudioCodecEnum (pAudioCodecCtx->codec_id);
+ audioStream->codecId = ConvertAudioCodecEnum(pAudioCodecCtx->codec_id);
audioStream->bitRate = pAudioCodecCtx->bit_rate;
audioStream->nbChannel = pAudioCodecCtx->channels;
audioStream->samplePerSec = pAudioCodecCtx->sample_rate;
- audioStream->bitPerSample = pAudioCodecCtx->bits_per_raw_sample;
+ if (audioStream->codecId == MM_AUDIO_CODEC_FLAC)
+ audioStream->bitPerSample = pAudioCodecCtx->bits_per_raw_sample;
+ else
+ audioStream->bitPerSample = pAudioCodecCtx->bits_per_coded_sample;
audioStream->is_uhqa = __check_uhqa(audioStream->samplePerSec, pFormatCtx->streams[i]->codec->sample_fmt);
}
}
}
}
- if ( formatContext->nbStreams == 0 ) {
+ if (formatContext->nbStreams == 0) {
debug_error("error: there is no audio and video track\n");
goto exception;
}
- #ifdef __MMFILE_TEST_MODE__
- mmfile_format_print_contents (formatContext);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ mmfile_format_print_contents(formatContext);
+#endif
return MMFILE_FORMAT_SUCCESS;
exception:
if (videoStream) {
- mmfile_free (videoStream);
+ mmfile_free(videoStream);
formatContext->streams[MMFILE_VIDEO_STREAM] = NULL;
}
if (audioStream) {
- mmfile_free (audioStream);
+ mmfile_free(audioStream);
formatContext->streams[MMFILE_AUDIO_STREAM] = NULL;
}
if (pFormatCtx) {
#ifdef __MMFILE_FFMPEG_V100__
- avformat_close_input (&pFormatCtx);
+ avformat_close_input(&pFormatCtx);
#else
- av_close_input_file (pFormatCtx);
+ av_close_input_file(pFormatCtx);
#endif
formatContext->privateFormatData = NULL;
}
@@ -416,39 +427,39 @@ exception:
#define DATA_LENGTH 4
#define POS_OF_MIME_LEN DATA_LENGTH
-#define CONVERT_TO_INT(dest, src) {dest = 0; dest |= (0 |src[0] << 24) | (0 | src[1] << 16) | (0 | src[2] << 8) | (0 | src[3]);}
+#define CONVERT_TO_INT(dest, src) {dest = 0; dest |= (0 | src[0] << 24) | (0 | src[1] << 16) | (0 | src[2] << 8) | (0 | src[3]);}
EXPORT_API
-int mmfile_format_read_tag_ffmpg (MMFileFormatContext *formatContext)
+int mmfile_format_read_tag_ffmpg(MMFileFormatContext *formatContext)
{
AVFormatContext *pFormatCtx = NULL;
if (NULL == formatContext || NULL == formatContext->privateFormatData) {
- debug_error ("invalid param\n");
+ debug_error("invalid param\n");
return MMFILE_FORMAT_FAIL;
}
pFormatCtx = formatContext->privateFormatData;
- if (formatContext->formatType == MM_FILE_FORMAT_3GP ||formatContext->formatType == MM_FILE_FORMAT_MP4) {
- MMFileUtilGetMetaDataFromMP4 (formatContext);
+ if (formatContext->formatType == MM_FILE_FORMAT_3GP || formatContext->formatType == MM_FILE_FORMAT_MP4) {
+ MMFileUtilGetMetaDataFromMP4(formatContext);
}
#ifdef __MMFILE_FFMPEG_V085__
-/*metadata extracted by ffmpeg*/
- int idx = 0;
+ /*metadata extracted by ffmpeg*/
+ unsigned int idx = 0;
- if(pFormatCtx != NULL) {
- for(idx = 0; idx < pFormatCtx->nb_streams + 1; idx++) {
+ if (pFormatCtx != NULL) {
+ for (idx = 0; idx < pFormatCtx->nb_streams + 1; idx++) {
AVDictionary *metainfo = NULL;
AVStream *st = NULL;
- if(idx < pFormatCtx->nb_streams) { //Check metadata of normal stream like audio, video, video cover art(cover art saved in new stream). refer to mov_read_covr() in ffmpeg.
+ if (idx < pFormatCtx->nb_streams) { /*Check metadata of normal stream like audio, video, video cover art(cover art saved in new stream). refer to mov_read_covr() in ffmpeg. */
st = pFormatCtx->streams[idx];
- if(st != NULL)
- metainfo = st->metadata;
- } else { //Check metadata of Content
- if(pFormatCtx->metadata != NULL) {
+ if (st != NULL)
+ metainfo = st->metadata;
+ } else { /*Check metadata of Content */
+ if (pFormatCtx->metadata != NULL) {
metainfo = pFormatCtx->metadata;
} else {
continue;
@@ -456,79 +467,80 @@ int mmfile_format_read_tag_ffmpg (MMFileFormatContext *formatContext)
}
/*refer to mov_read_covr() in ffmpeg.*/
- if(st != NULL) {
+ if (st != NULL) {
AVPacket pkt = st->attached_pic;
int codec_id = st->codec->codec_id;
- if((pkt.data != NULL) && (pkt.size > 0)) {
+ if ((pkt.data != NULL) && (pkt.size > 0)) {
/*Set mime type*/
- if (formatContext->artworkMime) mmfile_free (formatContext->artworkMime);
+ if (formatContext->artworkMime) mmfile_free(formatContext->artworkMime);
- if(codec_id == AV_CODEC_ID_MJPEG)
+ if (codec_id == AV_CODEC_ID_MJPEG)
formatContext->artworkMime = mmfile_strdup("image/jpeg");
- else if(codec_id == AV_CODEC_ID_PNG)
+ else if (codec_id == AV_CODEC_ID_PNG)
formatContext->artworkMime = mmfile_strdup("image/png");
- else if(codec_id == AV_CODEC_ID_BMP)
+ else if (codec_id == AV_CODEC_ID_BMP)
formatContext->artworkMime = mmfile_strdup("image/bmp");
else
- debug_error ("Unknown cover type: 0x%x\n", codec_id);
+ debug_error("Unknown cover type: 0x%x\n", codec_id);
/*Copy artwork*/
- if (formatContext->artwork) mmfile_free (formatContext->artwork);
+ if (formatContext->artwork) mmfile_free(formatContext->artwork);
formatContext->artworkSize = pkt.size;
- formatContext->artwork = mmfile_malloc (pkt.size);
- memcpy (formatContext->artwork, pkt.data, pkt.size);
+ formatContext->artwork = mmfile_malloc(pkt.size);
+ if(formatContext->artwork != NULL)
+ memcpy(formatContext->artwork, pkt.data, pkt.size);
}
}
- if(metainfo != NULL) {
+ if (metainfo != NULL) {
AVDictionaryEntry *tag = NULL;
- while((tag=av_dict_get(metainfo, "", tag, AV_DICT_IGNORE_SUFFIX))) {
- if(tag->key != NULL) {
- if(!strcasecmp(tag->key, "title")) {
- if (formatContext->title) free (formatContext->title);
- formatContext->title = mmfile_strdup (tag->value);
- } else if(!strcasecmp(tag->key, "artist")) {
- if (formatContext->artist) free (formatContext->artist);
- formatContext->artist = mmfile_strdup (tag->value);
- } else if(!strcasecmp(tag->key, "composer")) {
- if (formatContext->composer) free (formatContext->composer);
- formatContext->composer = mmfile_strdup (tag->value);
- } else if(!strcasecmp(tag->key, "album")) {
- if (formatContext->album) free (formatContext->album);
- formatContext->album = mmfile_strdup (tag->value);
- } else if(!strcasecmp(tag->key, "album_artist")) {
- if (formatContext->album_artist) free (formatContext->album_artist);
- formatContext->album_artist = mmfile_strdup (tag->value);
- } else if(!strcasecmp(tag->key, "copyright")) {
- if (formatContext->copyright) free (formatContext->copyright);
- formatContext->copyright = mmfile_strdup (tag->value);
- } else if(!strcasecmp(tag->key, "comment")) {
- if (formatContext->comment) free (formatContext->comment);
- formatContext->comment = mmfile_strdup (tag->value);
- } else if(!strcasecmp(tag->key, "description")) {
- if (formatContext->description) free (formatContext->description);
- formatContext->description = mmfile_strdup (tag->value);
- } else if(!strcasecmp(tag->key, "genre")) {
- if (formatContext->genre) free (formatContext->genre);
- formatContext->genre = mmfile_strdup (tag->value);
- } else if(!strcasecmp(tag->key, "date")) {
- if (formatContext->year) free (formatContext->year);
- formatContext->year = mmfile_strdup (tag->value);
- } else if(!strcasecmp(tag->key, "creation_time")) {
- if (formatContext->recDate) free (formatContext->recDate);
- formatContext->recDate = mmfile_strdup (tag->value);
- } else if((!strcasecmp(tag->key, "track")) || (!strcasecmp(tag->key, "tracknumber"))) {
- if (formatContext->tagTrackNum) free (formatContext->tagTrackNum);
- formatContext->tagTrackNum = mmfile_strdup (tag->value);
- } else if(!strcasecmp(tag->key, "lyrics")) {
- if (formatContext->unsyncLyrics) free (formatContext->unsyncLyrics);
- formatContext->unsyncLyrics= mmfile_strdup (tag->value);
- } else if(!strcasecmp(tag->key, "rotate")) { //can be "90", "180", "270"
- if (formatContext->rotate) free (formatContext->rotate);
- formatContext->rotate= mmfile_strdup (tag->value);
- } else if(!strcasecmp(tag->key, "metadata_block_picture")) {
+ while ((tag = av_dict_get(metainfo, "", tag, AV_DICT_IGNORE_SUFFIX))) {
+ if (tag->key != NULL) {
+ if (!strcasecmp(tag->key, "title")) {
+ if (formatContext->title) free(formatContext->title);
+ formatContext->title = mmfile_strdup(tag->value);
+ } else if (!strcasecmp(tag->key, "artist")) {
+ if (formatContext->artist) free(formatContext->artist);
+ formatContext->artist = mmfile_strdup(tag->value);
+ } else if (!strcasecmp(tag->key, "composer")) {
+ if (formatContext->composer) free(formatContext->composer);
+ formatContext->composer = mmfile_strdup(tag->value);
+ } else if (!strcasecmp(tag->key, "album")) {
+ if (formatContext->album) free(formatContext->album);
+ formatContext->album = mmfile_strdup(tag->value);
+ } else if (!strcasecmp(tag->key, "album_artist")) {
+ if (formatContext->album_artist) free(formatContext->album_artist);
+ formatContext->album_artist = mmfile_strdup(tag->value);
+ } else if (!strcasecmp(tag->key, "copyright")) {
+ if (formatContext->copyright) free(formatContext->copyright);
+ formatContext->copyright = mmfile_strdup(tag->value);
+ } else if (!strcasecmp(tag->key, "comment")) {
+ if (formatContext->comment) free(formatContext->comment);
+ formatContext->comment = mmfile_strdup(tag->value);
+ } else if (!strcasecmp(tag->key, "description")) {
+ if (formatContext->description) free(formatContext->description);
+ formatContext->description = mmfile_strdup(tag->value);
+ } else if (!strcasecmp(tag->key, "genre")) {
+ if (formatContext->genre) free(formatContext->genre);
+ formatContext->genre = mmfile_strdup(tag->value);
+ } else if (!strcasecmp(tag->key, "date")) {
+ if (formatContext->year) free(formatContext->year);
+ formatContext->year = mmfile_strdup(tag->value);
+ } else if (!strcasecmp(tag->key, "creation_time")) {
+ if (formatContext->recDate) free(formatContext->recDate);
+ formatContext->recDate = mmfile_strdup(tag->value);
+ } else if ((!strcasecmp(tag->key, "track")) || (!strcasecmp(tag->key, "tracknumber"))) {
+ if (formatContext->tagTrackNum) free(formatContext->tagTrackNum);
+ formatContext->tagTrackNum = mmfile_strdup(tag->value);
+ } else if (!strcasecmp(tag->key, "lyrics")) {
+ if (formatContext->unsyncLyrics) free(formatContext->unsyncLyrics);
+ formatContext->unsyncLyrics = mmfile_strdup(tag->value);
+ } else if (!strcasecmp(tag->key, "rotate")) { /*can be "90", "180", "270" */
+ if (formatContext->rotate) free(formatContext->rotate);
+ formatContext->rotate = mmfile_strdup(tag->value);
+ } else if (!strcasecmp(tag->key, "metadata_block_picture")) {
gsize len = 0;
guchar *meta_data = NULL;
@@ -562,80 +574,80 @@ int mmfile_format_read_tag_ffmpg (MMFileFormatContext *formatContext)
/* set mime type */
current_pos = POS_OF_MIME_LEN + DATA_LENGTH; /*current position is mime type */
- if (formatContext->artworkMime) mmfile_free (formatContext->artworkMime);
- formatContext->artworkMime = strndup((const char*)meta_data + current_pos, mime_len);
+ if (formatContext->artworkMime) mmfile_free(formatContext->artworkMime);
+ formatContext->artworkMime = strndup((const char *)meta_data + current_pos, mime_len);
/* set art work data */
current_pos = mime_len + description_len + (DATA_LENGTH * 8); /*current position is picture data */
- if (formatContext->artwork) mmfile_free (formatContext->artwork);
+ if (formatContext->artwork) mmfile_free(formatContext->artwork);
- formatContext->artwork = mmfile_malloc (data_len);
- if(formatContext->artwork != NULL)
+ formatContext->artwork = mmfile_malloc(data_len);
+ if (formatContext->artwork != NULL)
memcpy(formatContext->artwork, meta_data + current_pos, data_len);
g_free(meta_data);
}
} else {
- #ifdef __MMFILE_TEST_MODE__
+#ifdef __MMFILE_TEST_MODE__
debug_log("Not support metadata. [%s:%s]", tag->key, tag->value);
- #endif
+#endif
}
}
}
}
#ifdef __MMFILE_TEST_MODE__
- mmfile_format_print_tags (formatContext);
+ mmfile_format_print_tags(formatContext);
#endif
}
}
#else
if (pFormatCtx->title[0]) {
if (formatContext->title)
- free (formatContext->title);
- formatContext->title = mmfile_strdup (pFormatCtx->title);
+ free(formatContext->title);
+ formatContext->title = mmfile_strdup(pFormatCtx->title);
}
- if (pFormatCtx->author[0]){
+ if (pFormatCtx->author[0]) {
if (formatContext->author)
- free (formatContext->author);
- formatContext->author = mmfile_strdup (pFormatCtx->author);
+ free(formatContext->author);
+ formatContext->author = mmfile_strdup(pFormatCtx->author);
}
if (pFormatCtx->copyright[0]) {
if (formatContext->copyright)
- free (formatContext->copyright);
- formatContext->copyright = mmfile_strdup (pFormatCtx->copyright);
+ free(formatContext->copyright);
+ formatContext->copyright = mmfile_strdup(pFormatCtx->copyright);
}
if (pFormatCtx->comment[0]) {
if (formatContext->comment)
- free (formatContext->comment);
- formatContext->comment = mmfile_strdup (pFormatCtx->comment);
+ free(formatContext->comment);
+ formatContext->comment = mmfile_strdup(pFormatCtx->comment);
}
if (pFormatCtx->album[0]) {
if (formatContext->album)
- free (formatContext->album);
- formatContext->album = mmfile_strdup (pFormatCtx->album);
+ free(formatContext->album);
+ formatContext->album = mmfile_strdup(pFormatCtx->album);
}
if (pFormatCtx->genre[0]) {
if (formatContext->genre)
- free (formatContext->genre);
- formatContext->genre = mmfile_strdup (pFormatCtx->genre);
+ free(formatContext->genre);
+ formatContext->genre = mmfile_strdup(pFormatCtx->genre);
}
if (pFormatCtx->year) {
- char year[10] = {0,};
- snprintf (year, 10, "%d", pFormatCtx->year);
+ char year[10] = {0, };
+ snprintf(year, 10, "%d", pFormatCtx->year);
year[9] = '\0';
if (formatContext->year)
- free (formatContext->year);
- formatContext->year = mmfile_strdup (year);
+ free(formatContext->year);
+ formatContext->year = mmfile_strdup(year);
}
if (pFormatCtx->track) {
- char tracknum[10] = {0,};
- snprintf (tracknum, 10, "%d", pFormatCtx->track);
+ char tracknum[10] = {0, };
+ snprintf(tracknum, 10, "%d", pFormatCtx->track);
tracknum[9] = '\0';
if (formatContext->tagTrackNum)
- free (formatContext->tagTrackNum);
- formatContext->tagTrackNum = mmfile_strdup (tracknum);
+ free(formatContext->tagTrackNum);
+ formatContext->tagTrackNum = mmfile_strdup(tracknum);
}
#endif
@@ -644,7 +656,7 @@ int mmfile_format_read_tag_ffmpg (MMFileFormatContext *formatContext)
EXPORT_API
-int mmfile_format_read_frame_ffmpg (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame)
+int mmfile_format_read_frame_ffmpg(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame)
{
AVFormatContext *pFormatCtx = NULL;
AVCodecContext *pVideoCodecCtx = NULL;
@@ -658,16 +670,11 @@ int mmfile_format_read_frame_ffmpg (MMFileFormatContext *formatContext, unsigne
int ret = 0;
if (NULL == formatContext ||
- NULL == frame ||
- NULL == formatContext->privateFormatData ||
- formatContext->videoTotalTrackNum <= 0) {
+ NULL == frame ||
+ NULL == formatContext->privateFormatData ||
+ formatContext->videoTotalTrackNum <= 0) {
- debug_error ("invalid param\n");
- return MMFILE_FORMAT_FAIL;
- }
-
- if (formatContext->isdrm == MM_FILE_DRM_PROTECTED) {
- debug_error ("This is protected drm file\n");
+ debug_error("invalid param\n");
return MMFILE_FORMAT_FAIL;
}
@@ -676,27 +683,27 @@ int mmfile_format_read_frame_ffmpg (MMFileFormatContext *formatContext, unsigne
if (formatContext->videoStreamId != -1) {
pVideoCodecCtx = pFormatCtx->streams[formatContext->videoStreamId]->codec;
if (NULL == pVideoCodecCtx) {
- debug_error ("invalid param\n");
+ debug_error("invalid param\n");
return MMFILE_FORMAT_FAIL;
}
- pVideoCodec = avcodec_find_decoder (pVideoCodecCtx->codec_id);
- if ( NULL == pVideoCodec ) {
- debug_error ("error: avcodec_find_decoder failed\n");
+ pVideoCodec = avcodec_find_decoder(pVideoCodecCtx->codec_id);
+ if (NULL == pVideoCodec) {
+ debug_error("error: avcodec_find_decoder failed\n");
return MMFILE_FORMAT_FAIL;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("flag: 0x%08X\n", pVideoCodec->capabilities);
- // debug_msg (" DRAW_HORIZ_BAND : %d\n", pVideoCodec->capabilities & CODEC_CAP_DRAW_HORIZ_BAND ? 1 : 0);
- // debug_msg (" DR1 : %d\n", pVideoCodec->capabilities & CODEC_CAP_DR1 ? 1 : 0);
- // debug_msg (" PARSE_ONLY : %d\n", pVideoCodec->capabilities & CODEC_CAP_PARSE_ONLY ? 1 : 0);
- // debug_msg (" TRUNCATED : %d\n", pVideoCodec->capabilities & CODEC_CAP_TRUNCATED ? 1 : 0);
- // debug_msg (" HWACCEL : %d\n", pVideoCodec->capabilities & CODEC_CAP_HWACCEL ? 1 : 0);
- // debug_msg (" DELAY : %d\n", pVideoCodec->capabilities & CODEC_CAP_DELAY ? 1 : 0);
- // debug_msg (" SMALL_LAST_FRAME: %d\n", pVideoCodec->capabilities & CODEC_CAP_SMALL_LAST_FRAME ? 1 : 0);
- // debug_msg (" HWACCEL_VDPAU : %d\n", pVideoCodec->capabilities & CODEC_CAP_HWACCEL_VDPAU ? 1 : 0);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("flag: 0x%08X\n", pVideoCodec->capabilities);
+ /* debug_msg(" DRAW_HORIZ_BAND : %d\n", pVideoCodec->capabilities & CODEC_CAP_DRAW_HORIZ_BAND ? 1 : 0); */
+ /* debug_msg(" DR1 : %d\n", pVideoCodec->capabilities & CODEC_CAP_DR1 ? 1 : 0); */
+ /* debug_msg(" PARSE_ONLY : %d\n", pVideoCodec->capabilities & CODEC_CAP_PARSE_ONLY ? 1 : 0); */
+ /* debug_msg(" TRUNCATED : %d\n", pVideoCodec->capabilities & CODEC_CAP_TRUNCATED ? 1 : 0); */
+ /* debug_msg(" HWACCEL : %d\n", pVideoCodec->capabilities & CODEC_CAP_HWACCEL ? 1 : 0); */
+ /* debug_msg(" DELAY : %d\n", pVideoCodec->capabilities & CODEC_CAP_DELAY ? 1 : 0); */
+ /* debug_msg(" SMALL_LAST_FRAME: %d\n", pVideoCodec->capabilities & CODEC_CAP_SMALL_LAST_FRAME ? 1 : 0); */
+ /* debug_msg(" HWACCEL_VDPAU : %d\n", pVideoCodec->capabilities & CODEC_CAP_HWACCEL_VDPAU ? 1 : 0); */
+#endif
if (pVideoCodec->capabilities & CODEC_CAP_TRUNCATED) {
pVideoCodecCtx->flags |= CODEC_FLAG_TRUNCATED;
@@ -706,47 +713,47 @@ int mmfile_format_read_frame_ffmpg (MMFileFormatContext *formatContext, unsigne
pVideoCodecCtx->workaround_bugs = FF_BUG_AUTODETECT;
#ifdef __MMFILE_FFMPEG_V100__
/* this is solution for PLM issue P13091703323 */
- /* If using thread when decoding frame, the result of decoding is not always same.
+ /* If using thread when decoding frame, the result of decoding is not always same.
Thumbnail of video content is different with original file when copying file. */
pVideoCodecCtx->thread_type = 0;
pVideoCodecCtx->thread_count = 0;
- ret = avcodec_open2 (pVideoCodecCtx, pVideoCodec, NULL);
+ ret = avcodec_open2(pVideoCodecCtx, pVideoCodec, NULL);
#else
- ret = avcodec_open (pVideoCodecCtx, pVideoCodec);
+ ret = avcodec_open(pVideoCodecCtx, pVideoCodec);
#endif
if (ret < 0) {
- debug_error ("error: avcodec_open fail.\n");
+ debug_error("error: avcodec_open fail.\n");
return MMFILE_FORMAT_FAIL;
}
- pFrameRGB = avcodec_alloc_frame ();
+ pFrameRGB = av_frame_alloc();
if (!pFrameRGB) {
- debug_error ("error: pFrame or pFrameRGB is NULL\n");
+ debug_error("error: pFrame or pFrameRGB is NULL\n");
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
/* search & decode */
- // seek_ts = formatContext->duration > _SHORT_MEDIA_LIMIT ? seek_ts : 0; /*if short media, seek first key frame*/
- ret = _get_first_good_video_frame (pFormatCtx, pVideoCodecCtx, formatContext->videoStreamId, &pFrame, formatContext->cdis);
- if ( ret != MMFILE_FORMAT_SUCCESS ) {
- debug_error ("error: get key frame\n");
+ /* seek_ts = formatContext->duration > _SHORT_MEDIA_LIMIT ? seek_ts : 0; */ /*if short media, seek first key frame*/
+ ret = _get_first_good_video_frame(pFormatCtx, pVideoCodecCtx, formatContext->videoStreamId, &pFrame, formatContext->cdis);
+ if (ret != MMFILE_FORMAT_SUCCESS) {
+ debug_error("error: get key frame\n");
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("Video default resolution = [%dx%d]\n", pVideoCodecCtx->coded_width, pVideoCodecCtx->coded_height);
- debug_msg ("Video coded resolution = [%dx%d]\n", pVideoCodecCtx->width, pVideoCodecCtx->height);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Video default resolution = [%dx%d]\n", pVideoCodecCtx->coded_width, pVideoCodecCtx->coded_height);
+ debug_msg("Video coded resolution = [%dx%d]\n", pVideoCodecCtx->width, pVideoCodecCtx->height);
+#endif
/*sometimes, ffmpeg's width/height is wrong*/
- #if 0 /*coded_width/height sometimes wrong. so use width/height*/
+#if 0 /*coded_width/height sometimes wrong. so use width/height*/
width = pVideoCodecCtx->coded_width == 0 ? pVideoCodecCtx->width : pVideoCodecCtx->coded_width;
height = pVideoCodecCtx->coded_height == 0 ? pVideoCodecCtx->height : pVideoCodecCtx->coded_height;
- #endif
- if((pVideoCodecCtx->width == 0) || (pVideoCodecCtx->height == 0)) {
+#endif
+ if ((pVideoCodecCtx->width == 0) || (pVideoCodecCtx->height == 0)) {
width = pVideoCodecCtx->coded_width;
height = pVideoCodecCtx->coded_height;
} else {
@@ -756,21 +763,21 @@ int mmfile_format_read_frame_ffmpg (MMFileFormatContext *formatContext, unsigne
numBytes = avpicture_get_size(PIX_FMT_RGB24, width, height);
if (numBytes < 0) {
- debug_error ("error: avpicture_get_size. [%d x %d]\n", width, height);
+ debug_error("error: avpicture_get_size. [%d x %d]\n", width, height);
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
- frame->frameData = mmfile_malloc (numBytes);
+ frame->frameData = mmfile_malloc(numBytes);
if (NULL == frame->frameData) {
- debug_error ("error: avpicture_get_size. [%d]\n", numBytes);
+ debug_error("error: avpicture_get_size. [%d]\n", numBytes);
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
- ret = avpicture_fill ((AVPicture *)pFrameRGB, frame->frameData, PIX_FMT_RGB24, width, height);
+ ret = avpicture_fill((AVPicture *)pFrameRGB, frame->frameData, PIX_FMT_RGB24, width, height);
if (ret < 0) {
- debug_error ("error: avpicture_fill fail. errcode = 0x%08X\n", ret);
+ debug_error("error: avpicture_fill fail. errcode = 0x%08X\n", ret);
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
@@ -778,19 +785,19 @@ int mmfile_format_read_frame_ffmpg (MMFileFormatContext *formatContext, unsigne
#ifdef __MMFILE_FFMPEG_V085__
struct SwsContext *img_convert_ctx = NULL;
- img_convert_ctx = sws_getContext (width, height, pVideoCodecCtx->pix_fmt,
- width, height, PIX_FMT_RGB24, SWS_BICUBIC, NULL, NULL, NULL);
+ img_convert_ctx = sws_getContext(width, height, pVideoCodecCtx->pix_fmt,
+ width, height, PIX_FMT_RGB24, SWS_BICUBIC, NULL, NULL, NULL);
if (NULL == img_convert_ctx) {
- debug_error ("failed to get img convet ctx\n");
+ debug_error("failed to get img convet ctx\n");
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
- ret = sws_scale (img_convert_ctx, (const uint8_t* const*)pFrame->data, pFrame->linesize,
- 0, height, pFrameRGB->data, pFrameRGB->linesize);
- if ( ret < 0 ) {
- debug_error ("failed to convet image\n");
+ ret = sws_scale(img_convert_ctx, (const uint8_t * const *)pFrame->data, pFrame->linesize,
+ 0, height, pFrameRGB->data, pFrameRGB->linesize);
+ if (ret < 0) {
+ debug_error("failed to convet image\n");
ret = MMFILE_FORMAT_FAIL;
sws_freeContext(img_convert_ctx);
img_convert_ctx = NULL;
@@ -800,9 +807,9 @@ int mmfile_format_read_frame_ffmpg (MMFileFormatContext *formatContext, unsigne
sws_freeContext(img_convert_ctx);
img_convert_ctx = NULL;
#else
- ret = img_convert ((AVPicture *)pFrameRGB, PIX_FMT_RGB24, (AVPicture*)pFrame, pVideoCodecCtx->pix_fmt, width, height);
- if ( ret < 0 ) {
- debug_error ("failed to convet image\n");
+ ret = img_convert((AVPicture *)pFrameRGB, PIX_FMT_RGB24, (AVPicture *)pFrame, pVideoCodecCtx->pix_fmt, width, height);
+ if (ret < 0) {
+ debug_error("failed to convet image\n");
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
@@ -813,8 +820,8 @@ int mmfile_format_read_frame_ffmpg (MMFileFormatContext *formatContext, unsigne
frame->configLenth = 0;
frame->bCompressed = 0; /* false */
- if (pFrame) av_free (pFrame);
- if (pFrameRGB) av_free (pFrameRGB);
+ if (pFrame) av_free(pFrame);
+ if (pFrameRGB) av_free(pFrameRGB);
avcodec_close(pVideoCodecCtx);
@@ -823,10 +830,13 @@ int mmfile_format_read_frame_ffmpg (MMFileFormatContext *formatContext, unsigne
exception:
- if (pVideoCodecCtx) avcodec_close (pVideoCodecCtx);
- if (frame->frameData) { mmfile_free (frame->frameData); frame->frameData = NULL; }
- if (pFrame) av_free (pFrame);
- if (pFrameRGB) av_free (pFrameRGB);
+ if (pVideoCodecCtx) avcodec_close(pVideoCodecCtx);
+ if (frame->frameData) {
+ mmfile_free(frame->frameData);
+ frame->frameData = NULL;
+ }
+ if (pFrame) av_free(pFrame);
+ if (pFrameRGB) av_free(pFrameRGB);
return ret;
}
@@ -841,10 +851,14 @@ int mmfile_format_close_ffmpg(MMFileFormatContext *formatContext)
#ifdef __MMFILE_FFMPEG_V100__
avformat_close_input(&pFormatCtx);
#else
- av_close_input_file (pFormatCtx);
+ av_close_input_file(pFormatCtx);
#endif
formatContext->privateFormatData = NULL;
}
+
+ if (formatContext->filesrc->type == MM_FILE_SRC_TYPE_MEMORY) {
+ ffurl_deregister_protocol(&MMFileMEMProtocol);
+ }
}
return MMFILE_FORMAT_SUCCESS;
@@ -853,12 +867,12 @@ int mmfile_format_close_ffmpg(MMFileFormatContext *formatContext)
/**
* return average of difference
*/
-static unsigned int _diff_memory (const void *s1, const void *s2, unsigned int n)
+static unsigned int _diff_memory(const void *s1, const void *s2, unsigned int n)
{
char *s = (char *)s1;
char *d = (char *)s2;
- int i;
- int ret;
+ unsigned int i;
+ unsigned int ret;
int tmp;
for (i = 0, ret = 0; i < n; i++) {
@@ -874,7 +888,7 @@ static unsigned int _diff_memory (const void *s1, const void *s2, unsigned int n
int64_t gettime(void)
{
struct timeval tv;
- gettimeofday(&tv,NULL);
+ gettimeofday(&tv, NULL);
return (int64_t)tv.tv_sec * 1000000 + tv.tv_usec;
}
@@ -884,7 +898,7 @@ int64_t gettime(void)
/**
* compare with center line.
*/
-static int _is_good_pgm (unsigned char *buf, int wrap, int xsize, int ysize)
+static int _is_good_pgm(unsigned char *buf, int wrap, int xsize, int ysize)
{
#define _MM_CHUNK_NUM 8 /*FIXME*/
#define _MM_CHUNK_LIMIT (_MM_CHUNK_NUM / 2)
@@ -903,9 +917,9 @@ static int _is_good_pgm (unsigned char *buf, int wrap, int xsize, int ysize)
cnt_offset = (ysize / 2);
cnt = buf + cnt_offset * wrap;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("checking frame. %p, %d, %d, %d\n", buf, wrap, xsize, ysize);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("checking frame. %p, %d, %d, %d\n", buf, wrap, xsize, ysize);
+#endif
/*if too small, always ok return.*/
if (ysize < _MM_CHUNK_NUM)
@@ -913,26 +927,26 @@ static int _is_good_pgm (unsigned char *buf, int wrap, int xsize, int ysize)
for (point = 0, sum_diff = 0, i = step; i < ysize; i += step) {
if (i != cnt_offset) {
-
+
/*binary compare*/
- is_different = _diff_memory (cnt, buf + i * wrap, xsize);
+ is_different = _diff_memory(cnt, buf + i * wrap, xsize);
point += (is_different == 0 ? 0 : 1);
sum_diff += is_different;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("check %04d line. %s [%d]\n", i, (is_different == 0 ? "same" : "different"), is_different);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("check %04d line. %s [%d]\n", i, (is_different == 0 ? "same" : "different"), is_different);
+#endif
if (point >= _MM_CHUNK_LIMIT) {
if (sum_diff > _MM_CHUNK_DIFF_LIMIT) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("Good :-)\n");
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Good :-)\n");
+#endif
return 1;
} else {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("Bad :-(\n");
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Bad :-(\n");
+#endif
return 0;
}
}
@@ -941,20 +955,20 @@ static int _is_good_pgm (unsigned char *buf, int wrap, int xsize, int ysize)
}
return 0;
}
-#else // IS_GOOD_OLD_METHOD
+#else /* IS_GOOD_OLD_METHOD */
/* ToDo : for enhancement */
-#endif // IS_GOOD_OLD_METHOD
+#endif /* IS_GOOD_OLD_METHOD */
static int
-_get_video_fps (int frame_cnt, int duration, AVRational r_frame_rate, int is_roundup)
+_get_video_fps(int frame_cnt, int duration, AVRational r_frame_rate, int is_roundup)
{
double fps, round;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("frame count: %d, dur: %d, num: %d, den: %d\n", frame_cnt, duration, r_frame_rate.num, r_frame_rate.den)
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("frame count: %d, dur: %d, num: %d, den: %d\n", frame_cnt, duration, r_frame_rate.num, r_frame_rate.den);
+#endif
if (duration <= 0 || r_frame_rate.num <= 0 || r_frame_rate.den <= 0)
return 0;
@@ -967,62 +981,62 @@ _get_video_fps (int frame_cnt, int duration, AVRational r_frame_rate, int is_rou
}
#ifdef MMFILE_FORMAT_DEBUG_DUMP
-static void _save_pgm (unsigned char *buf,int wrap, int xsize,int ysize,char *filename)
+static void _save_pgm(unsigned char *buf, int wrap, int xsize, int ysize, char *filename)
{
FILE *f;
int i;
- f = fopen(filename,"w");
+ f = fopen(filename, "w");
if (f) {
- fprintf (f,"P5\n%d %d\n%d\n",xsize,ysize,255);
+ fprintf(f, "P5\n%d %d\n%d\n", xsize, ysize, 255);
for (i = 0; i < ysize; i++)
- fwrite (buf + i * wrap, 1, xsize, f);
- fclose (f);
+ fwrite(buf + i * wrap, 1, xsize, f);
+ fclose(f);
}
}
#endif
#ifdef __MMFILE_TEST_MODE__
-static void _dump_av_packet (AVPacket *pkt)
+static void _dump_av_packet(AVPacket *pkt)
{
- debug_msg ("--------- AV Packet -----------\n");
- debug_msg (" pts: %lld\n", pkt->pts);
- debug_msg (" dts: %lld\n", pkt->dts);
- debug_msg (" data: %p\n", pkt->data);
- debug_msg (" size: %d\n", pkt->size);
- debug_msg (" stream_index: %d\n", pkt->stream_index);
-#ifdef __MMFILE_FFMPEG_V085__
- debug_msg (" flags: 0x%08X, %s\n", pkt->flags, (pkt->flags & AV_PKT_FLAG_KEY) ? "Keyframe" : "_");
+ debug_msg("--------- AV Packet -----------\n");
+ debug_msg(" pts: %lld\n", pkt->pts);
+ debug_msg(" dts: %lld\n", pkt->dts);
+ debug_msg(" data: %p\n", pkt->data);
+ debug_msg(" size: %d\n", pkt->size);
+ debug_msg(" stream_index: %d\n", pkt->stream_index);
+#ifdef __MMFILE_FFMPEG_V085__
+ debug_msg(" flags: 0x%08X, %s\n", pkt->flags, (pkt->flags & AV_PKT_FLAG_KEY) ? "Keyframe" : "_");
#else
- debug_msg (" flags: 0x%08X, %s\n", pkt->flags, (pkt->flags & PKT_FLAG_KEY) ? "Keyframe" : "_");
+ debug_msg(" flags: 0x%08X, %s\n", pkt->flags, (pkt->flags & PKT_FLAG_KEY) ? "Keyframe" : "_");
#endif
- debug_msg (" duration: %d\n", pkt->duration);
- debug_msg (" destruct: %p\n", pkt->destruct);
- debug_msg (" priv: %p\n", pkt->priv);
- debug_msg (" pos: %lld\n", pkt->pos);
- debug_msg (" convergence_duration: %lld\n", pkt->convergence_duration);
- debug_msg ("-------------------------------\n");
+ debug_msg(" duration: %d\n", pkt->duration);
+ /*debug_msg(" destruct: %p\n", pkt->destruct);*/
+ /*debug_msg(" priv: %p\n", pkt->priv);*/
+ debug_msg(" pos: %lld\n", pkt->pos);
+ debug_msg(" convergence_duration: %lld\n", pkt->convergence_duration);
+ debug_msg("-------------------------------\n");
}
#endif
-static int _get_first_good_video_frame (AVFormatContext *pFormatCtx, AVCodecContext *pCodecCtx, int videoStream, AVFrame **pFrame, int cdis)
+static int _get_first_good_video_frame(AVFormatContext *pFormatCtx, AVCodecContext *pCodecCtx, int videoStream, AVFrame **pFrame, int cdis)
{
- // AVStream *st = NULL;
+ /* AVStream *st = NULL; */
AVPacket pkt;
AVFrame *frame = NULL;
AVFrame *tmp_frame = NULL;
AVFrame *first_frame = NULL;
- // long long timestamp;
- int stream_id = videoStream;
+ /* long long timestamp; */
+ /*int stream_id = videoStream;*/
int ret;
int found = 0;
- int i,v, len, got_picture;
+ int i, v, len, got_picture;
int retry = 0;
int key_detected;
#ifdef MMFILE_FORMAT_DEBUG_DUMP
- char pgm_name[256] = {0,};
+ char pgm_name[256] = {0, };
#endif
int key_search_limit = 0;
int frame_search_limit = 0;
@@ -1035,19 +1049,19 @@ static int _get_first_good_video_frame (AVFormatContext *pFormatCtx, AVCodecCont
#define _KEY_SEARCH_LIMIT_CDIS (_RETRY_SEARCH_LIMIT*2) /*2 = 1 read. some frame need to read one more*/
#define _FRAME_SEARCH_LIMIT_CDIS 10
- first_frame = avcodec_alloc_frame ();
- tmp_frame = avcodec_alloc_frame ();
+ first_frame = av_frame_alloc();
+ tmp_frame = av_frame_alloc();
if (!first_frame || !tmp_frame) {
- debug_error ("failed to alloc frame.\n");
- if (first_frame) av_free (first_frame);
- if (tmp_frame) av_free (tmp_frame);
+ debug_error("failed to alloc frame.\n");
+ if (first_frame) av_free(first_frame);
+ if (tmp_frame) av_free(tmp_frame);
return MMFILE_FORMAT_FAIL;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("frame: 1. %p, 2. %p\n", first_frame, tmp_frame);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("frame: 1. %p, 2. %p\n", first_frame, tmp_frame);
+#endif
#ifdef __MMFILE_FFMPEG_V085__
pCodecCtx->skip_frame = AVDISCARD_BIDIR;
@@ -1063,68 +1077,68 @@ static int _get_first_good_video_frame (AVFormatContext *pFormatCtx, AVCodecCont
frame_search_limit = _FRAME_SEARCH_LIMIT;
}
- for(i = 0, v = 0, key_detected = 0, frame = first_frame; i < key_search_limit && v < frame_search_limit;) {
- av_init_packet (&pkt);
+ for (i = 0, v = 0, key_detected = 0, frame = first_frame; i < key_search_limit && v < frame_search_limit;) {
+ av_init_packet(&pkt);
got_picture = 0;
- ret = av_read_frame (pFormatCtx, &pkt);
+ ret = av_read_frame(pFormatCtx, &pkt);
if (ret < 0) {
- debug_error ("read failed. (maybe EOF or broken)\n");
+ debug_error("read failed. (maybe EOF or broken)\n");
break;
} else {
- if (pkt.stream_index == stream_id) {
+ if (avcodec_get_type(pFormatCtx->streams[pkt.stream_index]->codec->codec_id) == AVMEDIA_TYPE_VIDEO) {
v++;
-#ifdef __MMFILE_FFMPEG_V085__
- if ((pkt.flags & AV_PKT_FLAG_KEY ) || (key_detected == 1))
+#ifdef __MMFILE_FFMPEG_V085__
+ if ((pkt.flags & AV_PKT_FLAG_KEY) || (key_detected == 1))
#else
- if ((pkt.flags & PKT_FLAG_KEY ) || (key_detected == 1))
+ if ((pkt.flags & PKT_FLAG_KEY) || (key_detected == 1))
#endif
{
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("video frame: %d, %d, %d\n", retry, i, v);
- _dump_av_packet (&pkt);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("video frame: %d, %d, %d\n", retry, i, v);
+ _dump_av_packet(&pkt);
+#endif
i++;
key_detected = 0;
#ifdef __MMFILE_FFMPEG_V085__
- len = avcodec_decode_video2 (pCodecCtx, frame, &got_picture, &pkt);
+ len = avcodec_decode_video2(pCodecCtx, frame, &got_picture, &pkt);
#else
- len = avcodec_decode_video (pCodecCtx, frame, &got_picture, pkt.data, pkt.size);
+ len = avcodec_decode_video(pCodecCtx, frame, &got_picture, pkt.data, pkt.size);
#endif
if (len < 0) {
- debug_warning ("Error while decoding frame %dth\n", i);
+ debug_warning("Error while decoding frame %dth\n", i);
} else if (got_picture) {
if (frame->key_frame) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("key frame!\n");
- #endif
- #ifdef MMFILE_FORMAT_DEBUG_DUMP
- sprintf (pgm_name, "./key_%d_%d_%d.pgm", retry, i, v);
- _save_pgm (frame->data[0], frame->linesize[0], pCodecCtx->width, pCodecCtx->height, pgm_name);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("key frame!\n");
+#endif
+#ifdef MMFILE_FORMAT_DEBUG_DUMP
+ sprintf(pgm_name, "./key_%d_%d_%d.pgm", retry, i, v);
+ _save_pgm(frame->data[0], frame->linesize[0], pCodecCtx->width, pCodecCtx->height, pgm_name);
+#endif
found++;
- #ifdef __MMFILE_TEST_MODE__
+#ifdef __MMFILE_TEST_MODE__
int64_t ti;
ti = gettime();
- #endif
- ret = _is_good_pgm (frame->data[0], frame->linesize[0], pCodecCtx->width, pCodecCtx->height);
- #ifdef __MMFILE_TEST_MODE__
+#endif
+ ret = _is_good_pgm(frame->data[0], frame->linesize[0], pCodecCtx->width, pCodecCtx->height);
+#ifdef __MMFILE_TEST_MODE__
ti = gettime() - ti;
- debug_msg ("Elapsed time = %lld\n", ti);
- #endif
+ debug_msg("Elapsed time = %lld\n", ti);
+#endif
if (ret != 0) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("is good frame.\n");
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("is good frame.\n");
+#endif
break;
} else {
/*reset video frame count & retry searching*/
- #ifdef __MMFILE_TEST_MODE__
- debug_warning ("not good fame. retry scanning.\n");
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_warning("not good fame. retry scanning.\n");
+#endif
i = 0;
v = 0;
retry++;
@@ -1137,52 +1151,52 @@ static int _get_first_good_video_frame (AVFormatContext *pFormatCtx, AVCodecCont
if (retry > _RETRY_SEARCH_LIMIT) break;
} else {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("skip (not key frame).\n");
- #endif
- #ifdef MMFILE_FORMAT_DEBUG_DUMP
- sprintf (pgm_name, "./not_key_%d_%d_%d.pgm", retry, i, v);
- _save_pgm (frame->data[0], frame->linesize[0], pCodecCtx->width, pCodecCtx->height, pgm_name);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("skip (not key frame).\n");
+#endif
+#ifdef MMFILE_FORMAT_DEBUG_DUMP
+ sprintf(pgm_name, "./not_key_%d_%d_%d.pgm", retry, i, v);
+ _save_pgm(frame->data[0], frame->linesize[0], pCodecCtx->width, pCodecCtx->height, pgm_name);
+#endif
}
} else {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("decode not completed.\n");
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("decode not completed.\n");
+#endif
key_detected = 1;
}
}
}
}
- av_free_packet (&pkt);
+ av_free_packet(&pkt);
}
/*free pkt after loop breaking*/
- if (pkt.data) av_free_packet (&pkt);
+ if (pkt.data) av_free_packet(&pkt);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("found: %d, retry: %d\n", found, retry);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("found: %d, retry: %d\n", found, retry);
+#endif
/*set decode frame to output*/
if (found > 0) {
ret = MMFILE_FORMAT_SUCCESS;
if (retry == 0 || found == retry) {
*pFrame = first_frame;
- if (tmp_frame) av_free (tmp_frame);
+ if (tmp_frame) av_free(tmp_frame);
} else {
*pFrame = tmp_frame;
- if (first_frame) av_free (first_frame);
+ if (first_frame) av_free(first_frame);
}
} else {
ret = MMFILE_FORMAT_FAIL;
- if (first_frame) av_free (first_frame);
- if (tmp_frame) av_free (tmp_frame);
+ if (first_frame) av_free(first_frame);
+ if (tmp_frame) av_free(tmp_frame);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("out frame: %p\n", *pFrame);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("out frame: %p\n", *pFrame);
+#endif
#ifdef __MMFILE_FFMPEG_V085__
pCodecCtx->skip_frame = AVDISCARD_NONE;
@@ -1193,22 +1207,20 @@ static int _get_first_good_video_frame (AVFormatContext *pFormatCtx, AVCodecCont
return ret;
}
-static int ConvertVideoCodecEnum (int AVVideoCodecID)
+static int ConvertVideoCodecEnum(int AVVideoCodecID)
{
int ret_codecid = 0;
- switch (AVVideoCodecID)
- {
+ switch (AVVideoCodecID) {
case AV_CODEC_ID_NONE:
ret_codecid = MM_VIDEO_CODEC_NONE;
break;
case AV_CODEC_ID_MPEG1VIDEO:
ret_codecid = MM_VIDEO_CODEC_MPEG1;
break;
- case AV_CODEC_ID_MPEG2VIDEO: ///< preferred ID for MPEG-1/2 video decoding
- ret_codecid = MM_VIDEO_CODEC_MPEG2;
- break;
+ case AV_CODEC_ID_MPEG2VIDEO: /*/< preferred ID for MPEG-1/2 video decoding */
case AV_CODEC_ID_MPEG2VIDEO_XVMC:
+ case AV_CODEC_ID_MPEG2TS:
ret_codecid = MM_VIDEO_CODEC_MPEG2;
break;
case AV_CODEC_ID_H261:
@@ -1259,8 +1271,8 @@ static int ConvertVideoCodecEnum (int AVVideoCodecID)
case AV_CODEC_ID_CINEPAK:
ret_codecid = MM_VIDEO_CODEC_CINEPAK;
break;
-#ifndef __MMFILE_FFMPEG_V085__
- case CODEC_ID_XVID:
+#if (!defined __MMFILE_FFMPEG_V085__ && !defined __MMFILE_LIBAV_VERSION__)
+ case AV_CODEC_ID_XVID:
ret_codecid = MM_VIDEO_CODEC_XVID;
break;
#endif
@@ -1274,8 +1286,17 @@ static int ConvertVideoCodecEnum (int AVVideoCodecID)
ret_codecid = MM_VIDEO_CODEC_AVS;
break;
case AV_CODEC_ID_RL2:
+ case AV_CODEC_ID_RV10: /* RealVideo 1 */
+ case AV_CODEC_ID_RV20: /* RealVideo 2 */
+ case AV_CODEC_ID_RV30: /* RealVideo 3 */
+ case AV_CODEC_ID_RV40: /* RealVideo 4 */
ret_codecid = MM_VIDEO_CODEC_REAL;
break;
+#ifdef __MMFILE_LIBAV_VERSION__
+ case AV_CODEC_ID_HEVC:
+ ret_codecid = MM_VIDEO_CODEC_MPEG4;
+ break;
+#endif
default:
ret_codecid = MM_VIDEO_CODEC_NONE;
break;
@@ -1285,19 +1306,19 @@ static int ConvertVideoCodecEnum (int AVVideoCodecID)
}
-static int ConvertAudioCodecEnum (int AVAudioCodecID)
+static int ConvertAudioCodecEnum(int AVAudioCodecID)
{
int ret_codecid = 0;
- switch (AVAudioCodecID)
- {
+ switch (AVAudioCodecID) {
case AV_CODEC_ID_AMR_NB:
case AV_CODEC_ID_AMR_WB:
ret_codecid = MM_AUDIO_CODEC_AMR;
break;
/* RealAudio codecs*/
- case AV_CODEC_ID_RA_144:
- case AV_CODEC_ID_RA_288:
+ case AV_CODEC_ID_RA_144: /* RealAudio 1 */
+ case AV_CODEC_ID_RA_288: /* RealAudio 2 */
+ case AV_CODEC_ID_COOK: /* RealAudio 6 */
ret_codecid = MM_AUDIO_CODEC_REAL;
break;
case AV_CODEC_ID_MP2:
@@ -1338,6 +1359,12 @@ static int ConvertAudioCodecEnum (int AVAudioCodecID)
case AV_CODEC_ID_EAC3:
ret_codecid = MM_AUDIO_CODEC_AC3;
break;
+ case AV_CODEC_ID_PCM_S8:
+ case AV_CODEC_ID_PCM_S16BE:
+ case AV_CODEC_ID_PCM_S24BE:
+ case AV_CODEC_ID_PCM_S32BE:
+ ret_codecid = MM_AUDIO_CODEC_PCM;
+ break;
default:
ret_codecid = MM_AUDIO_CODEC_NONE;
break;
@@ -1348,81 +1375,93 @@ static int ConvertAudioCodecEnum (int AVAudioCodecID)
-static int getMimeType(int formatId, char *mimeType)
+static int getMimeType(int formatId, char *mimeType, int buf_size)
{
int ret = 0; /*default: success*/
- switch(formatId) {
+ switch (formatId) {
case MM_FILE_FORMAT_3GP:
case MM_FILE_FORMAT_MP4:
- sprintf(mimeType,"video/3gpp");
+ snprintf(mimeType, buf_size, "video/3gpp");
break;
case MM_FILE_FORMAT_ASF:
case MM_FILE_FORMAT_WMA:
case MM_FILE_FORMAT_WMV:
- sprintf(mimeType,"video/x-ms-asf");
+ snprintf(mimeType, buf_size, "video/x-ms-asf");
break;
case MM_FILE_FORMAT_AVI:
- sprintf(mimeType,"video/avi");
+ snprintf(mimeType, buf_size, "video/avi");
break;
case MM_FILE_FORMAT_OGG:
- sprintf(mimeType,"video/ogg");
+ snprintf(mimeType, buf_size, "video/ogg");
break;
case MM_FILE_FORMAT_REAL:
- sprintf(mimeType,"video/vnd.rn-realvideo");
+ snprintf(mimeType, buf_size, "video/vnd.rn-realmedia");
break;
case MM_FILE_FORMAT_AMR:
- sprintf(mimeType,"audio/AMR");
+ snprintf(mimeType, buf_size, "audio/AMR");
break;
case MM_FILE_FORMAT_AAC:
- sprintf(mimeType,"audio/aac");
+ snprintf(mimeType, buf_size, "audio/aac");
break;
case MM_FILE_FORMAT_MP3:
- sprintf(mimeType,"audio/mp3");
+ snprintf(mimeType, buf_size, "audio/mp3");
break;
case MM_FILE_FORMAT_AIFF:
case MM_FILE_FORMAT_WAV:
- sprintf(mimeType,"audio/wave");
+ snprintf(mimeType, buf_size, "audio/wave");
break;
case MM_FILE_FORMAT_MID:
- sprintf(mimeType,"audio/midi");
+ snprintf(mimeType, buf_size, "audio/midi");
break;
case MM_FILE_FORMAT_MMF:
- sprintf(mimeType,"audio/mmf");
+ snprintf(mimeType, buf_size, "audio/mmf");
break;
case MM_FILE_FORMAT_DIVX:
- sprintf(mimeType,"video/divx");
+ snprintf(mimeType, buf_size, "video/divx");
break;
case MM_FILE_FORMAT_IMELODY:
- sprintf(mimeType,"audio/iMelody");
+ snprintf(mimeType, buf_size, "audio/iMelody");
break;
case MM_FILE_FORMAT_JPG:
- sprintf(mimeType,"image/jpeg");
+ snprintf(mimeType, buf_size, "image/jpeg");
break;
case MM_FILE_FORMAT_AU:
- sprintf(mimeType,"audio/basic");
+ snprintf(mimeType, buf_size, "audio/basic");
break;
case MM_FILE_FORMAT_VOB:
- sprintf(mimeType,"video/mpeg");
+ snprintf(mimeType, buf_size, "video/dvd");
break;
case MM_FILE_FORMAT_FLV:
- sprintf(mimeType,"video/x-flv");
+ snprintf(mimeType, buf_size, "video/x-flv");
break;
case MM_FILE_FORMAT_QT:
- sprintf(mimeType,"video/quicktime");
+ snprintf(mimeType, buf_size, "video/quicktime");
break;
case MM_FILE_FORMAT_MATROSKA:
- sprintf(mimeType,"video/x-matroska");
+ snprintf(mimeType, buf_size, "video/x-matroska");
break;
case MM_FILE_FORMAT_FLAC:
- sprintf(mimeType,"audio/x-flac");
+ snprintf(mimeType, buf_size, "audio/x-flac");
+ break;
+ case MM_FILE_FORMAT_M2TS:
+ snprintf(mimeType, buf_size, "video/MP2T");
+ break;
+ case MM_FILE_FORMAT_M2PS:
+ snprintf(mimeType, buf_size, "video/MP2P");
+ break;
+ case MM_FILE_FORMAT_M1AUDIO:
+ snprintf(mimeType, buf_size, "audio/x-mpegaudio");
+ break;
+ case MM_FILE_FORMAT_M1VIDEO:
+ snprintf(mimeType, buf_size, "video/mpeg");
break;
default:
ret = -1;
}
#ifdef __MMFILE_TEST_MODE__
- debug_msg ("id: %d, mimetype: %s\n", formatId, mimeType);
+ debug_msg("id: %d, mimetype: %s\n", formatId, mimeType);
#endif
return ret;
diff --git a/formats/ffmpeg/mm_file_format_ffmpeg_mem.c b/formats/ffmpeg/mm_file_format_ffmpeg_mem.c
index b117132..d02d2e0 100755
--- a/formats/ffmpeg/mm_file_format_ffmpeg_mem.c
+++ b/formats/ffmpeg/mm_file_format_ffmpeg_mem.c
@@ -18,15 +18,16 @@
* limitations under the License.
*
*/
-
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <libavformat/avformat.h>
#include <libavformat/avio.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
+#include "mm_file_format_ffmpeg_mem.h"
typedef struct {
@@ -36,213 +37,196 @@ typedef struct {
int state;
} MMFmemIOHandle;
-static int mmf_mem_open (URLContext *handle, const char *filename, int flags)
+static int mmf_mem_open(URLContext *handle, const char *filename, int flags)
{
- MMFmemIOHandle *memHandle = NULL;
- char **splitedString = NULL;
-
-
- if (!handle || !filename || !handle->prot)
- {
- debug_error ("invalid param\n");
- return MMFILE_UTIL_FAIL;
- }
-
- filename += strlen(handle->prot->name) + 3; /* ://%d:%d means (memory addr:mem size)*/
-
- splitedString = mmfile_strsplit (filename, ":");
- if (splitedString == NULL)
- {
- debug_error ("invalid param\n");
- return MMFILE_UTIL_FAIL;
- }
-
- if (!splitedString[0] || !splitedString[1])
-
- {
- debug_error ("invalid param\n");
- goto exception;
- }
-
- memHandle = mmfile_malloc (sizeof(MMFmemIOHandle));
- if (!memHandle)
- {
- debug_error ("error: mmfile_malloc memHandle\n");
- goto exception;
- }
-
- memHandle->ptr = (unsigned char *) atoll(splitedString[0]); //memory allocation address changed. memHandle->ptr = (unsigned char *) atoi(splitedString[0]);
- memHandle->size = atoi(splitedString[1]);
- memHandle->offset = 0;
- memHandle->state = 0;
-
- handle->priv_data = (void*) memHandle;
-
- // Imp to reset them otherwise file seek will fail
- handle->is_streamed = 0; /*FALSE*/
- handle->max_packet_size = 0;
-
- if (splitedString)
- {
- mmfile_strfreev (splitedString);
- }
-
- return MMFILE_UTIL_SUCCESS;
+ MMFmemIOHandle *memHandle = NULL;
+ char **splitedString = NULL;
+
+
+ if (!handle || !filename || !handle->prot) {
+ debug_error("invalid param\n");
+ return MMFILE_UTIL_FAIL;
+ }
+
+ filename += strlen(handle->prot->name) + 3; /* ://%d:%d means (memory addr:mem size)*/
+
+ splitedString = mmfile_strsplit(filename, ":");
+ if (splitedString == NULL) {
+ debug_error("invalid param\n");
+ return MMFILE_UTIL_FAIL;
+ }
+
+ if (!splitedString[0] || !splitedString[1])
+
+ {
+ debug_error("invalid param\n");
+ goto exception;
+ }
+
+ memHandle = mmfile_malloc(sizeof(MMFmemIOHandle));
+ if (!memHandle) {
+ debug_error("error: mmfile_malloc memHandle\n");
+ goto exception;
+ }
+
+ memHandle->ptr = (unsigned char *)atoll(splitedString[0]); /*memory allocation address changed. memHandle->ptr = (unsigned char *) atoi(splitedString[0]); */
+ memHandle->size = atoi(splitedString[1]);
+ memHandle->offset = 0;
+ memHandle->state = 0;
+
+ handle->priv_data = (void *) memHandle;
+
+ /* Imp to reset them otherwise file seek will fail */
+ handle->is_streamed = 0; /*FALSE*/
+ handle->max_packet_size = 0;
+
+ if (splitedString) {
+ mmfile_strfreev(splitedString);
+ }
+
+ return MMFILE_UTIL_SUCCESS;
exception:
- if (splitedString)
- {
- mmfile_strfreev (splitedString);
- }
-
-#if 0 //dead code
- if (memHandle)
- {
- mmfile_free (memHandle);
- handle->priv_data = NULL;
- }
+ if (splitedString) {
+ mmfile_strfreev(splitedString);
+ }
+
+#if 0 /*dead code */
+ if (memHandle) {
+ mmfile_free(memHandle);
+ handle->priv_data = NULL;
+ }
#endif
- return MMFILE_UTIL_FAIL;
+ return MMFILE_UTIL_FAIL;
}
-static int mmf_mem_read (URLContext *h, unsigned char *buf, int size)
+static int mmf_mem_read(URLContext *h, unsigned char *buf, int size)
{
- MMFmemIOHandle *memHandle = NULL;
- const unsigned char *c = NULL;
- int len = 0;
+ MMFmemIOHandle *memHandle = NULL;
+ const unsigned char *c = NULL;
+ int len = 0;
-
- if (!h || !h->priv_data || !buf)
- {
- debug_error ("invalid para\n");
- return MMFILE_UTIL_FAIL;
- }
- memHandle = h->priv_data;
+ if (!h || !h->priv_data || !buf) {
+ debug_error("invalid para\n");
+ return MMFILE_UTIL_FAIL;
+ }
- if (!memHandle->ptr)
- {
- debug_error ("invalid para\n");
- return MMFILE_UTIL_FAIL;
- }
+ memHandle = h->priv_data;
+
+ if (!memHandle->ptr) {
+ debug_error("invalid para\n");
+ return MMFILE_UTIL_FAIL;
+ }
if (memHandle->offset >= memHandle->size) {
- // for some file formats last file read
- debug_error ("File Read is beyond the file Size\n");
+ /* for some file formats last file read */
+ debug_error("File Read is beyond the file Size\n");
return MMFILE_UTIL_FAIL;
-
- }
-
- c = memHandle->ptr + memHandle->offset;
-
- if (memHandle->state != EOF)
- {
- len = size;
- if (len + memHandle->offset > memHandle->size)
- {
- len = memHandle->size - memHandle->offset;
- }
- }
-
- memcpy (buf, c, len);
-
- memHandle->offset += len;
-
- if ( memHandle->offset == memHandle->size)
- {
- memHandle->state = EOF;
- }
-
- return len;
+
+ }
+
+ c = memHandle->ptr + memHandle->offset;
+
+ if (memHandle->state != EOF) {
+ len = size;
+ if (len + memHandle->offset > memHandle->size) {
+ len = memHandle->size - memHandle->offset;
+ }
+ }
+
+ memcpy(buf, c, len);
+
+ memHandle->offset += len;
+
+ if (memHandle->offset == memHandle->size) {
+ memHandle->state = EOF;
+ }
+
+ return len;
}
-static int mmf_mem_write (URLContext *h, unsigned char *buf, int size)
+static int mmf_mem_write(URLContext *h, const unsigned char *buf, int size)
{
- if (!h || !h->priv_data || !buf)
- {
- debug_error ("invalid para\n");
- return MMFILE_UTIL_FAIL;
- }
-
- debug_error ("NOTE PERMITTED\n");
- return MMFILE_UTIL_FAIL;
+ if (!h || !h->priv_data || !buf) {
+ debug_error("invalid para\n");
+ return MMFILE_UTIL_FAIL;
+ }
+
+ debug_error("NOTE PERMITTED\n");
+ return MMFILE_UTIL_FAIL;
}
-static long long mmf_mem_seek (URLContext *h, long long pos, int whence)
+static int64_t mmf_mem_seek(URLContext *h, int64_t pos, int whence)
{
- MMFmemIOHandle *memHandle = NULL;
- long long tmp_offset = 0;
-
-
- if (!h || !h->priv_data)
- {
- debug_error ("invalid para\n");
- return MMFILE_UTIL_FAIL;
- }
-
- memHandle = h->priv_data;
-
- switch (whence)
- {
- case SEEK_SET:
- tmp_offset = 0 + pos;
- break;
- case SEEK_CUR:
- tmp_offset = memHandle->offset + pos;
- break;
- case SEEK_END:
- tmp_offset = memHandle->size + pos;
- break;
- case AVSEEK_SIZE: /*FFMPEG specific*/
- return memHandle->size;
- default:
- return MMFILE_UTIL_FAIL;
- }
-
- /*check validation*/
- if (tmp_offset < 0 && tmp_offset > memHandle->size)
- {
- debug_error ("invalid file offset\n");
- return MMFILE_UTIL_FAIL;
- }
-
- /*set */
- memHandle->state = (tmp_offset >= memHandle->size) ? EOF : !EOF;
- memHandle->offset = (unsigned int) tmp_offset;
-
- return tmp_offset;
+ MMFmemIOHandle *memHandle = NULL;
+ long long tmp_offset = 0;
+
+
+ if (!h || !h->priv_data) {
+ debug_error("invalid para\n");
+ return MMFILE_UTIL_FAIL;
+ }
+
+ memHandle = h->priv_data;
+
+ switch (whence) {
+ case SEEK_SET:
+ tmp_offset = 0 + pos;
+ break;
+ case SEEK_CUR:
+ tmp_offset = memHandle->offset + pos;
+ break;
+ case SEEK_END:
+ tmp_offset = memHandle->size + pos;
+ break;
+ case AVSEEK_SIZE: /*FFMPEG specific*/
+ return memHandle->size;
+ default:
+ return MMFILE_UTIL_FAIL;
+ }
+
+ /*check validation*/
+ if (tmp_offset < 0 && tmp_offset > memHandle->size) {
+ debug_error("invalid file offset\n");
+ return MMFILE_UTIL_FAIL;
+ }
+
+ /*set */
+ memHandle->state = (tmp_offset >= memHandle->size) ? EOF : !EOF;
+ memHandle->offset = (unsigned int) tmp_offset;
+
+ return tmp_offset;
}
-static int mmf_mem_close (URLContext *h)
+static int mmf_mem_close(URLContext *h)
{
- MMFmemIOHandle *memHandle = NULL;
+ MMFmemIOHandle *memHandle = NULL;
- if (!h || !h->priv_data)
- {
- debug_error ("invalid para\n");
- return MMFILE_UTIL_FAIL;
- }
+ if (!h || !h->priv_data) {
+ debug_error("invalid para\n");
+ return MMFILE_UTIL_FAIL;
+ }
- memHandle = h->priv_data;
+ memHandle = h->priv_data;
- if (memHandle)
- {
- mmfile_free (memHandle);
- h->priv_data = NULL;
- }
+ if (memHandle) {
+ mmfile_free(memHandle);
+ h->priv_data = NULL;
+ }
- return MMFILE_UTIL_SUCCESS;
+ return MMFILE_UTIL_SUCCESS;
}
URLProtocol MMFileMEMProtocol = {
- .name = "mem",
- .url_open = mmf_mem_open,
- .url_read = mmf_mem_read,
- .url_write = mmf_mem_write,
- .url_seek = mmf_mem_seek,
- .url_close = mmf_mem_close,
+ .name = "mem",
+ .url_open = mmf_mem_open,
+ .url_read = mmf_mem_read,
+ .url_write = mmf_mem_write,
+ .url_seek = mmf_mem_seek,
+ .url_close = mmf_mem_close,
};
diff --git a/formats/ffmpeg/mm_file_format_frame.c b/formats/ffmpeg/mm_file_format_frame.c
index 15f5bd1..e87cea4 100755
--- a/formats/ffmpeg/mm_file_format_frame.c
+++ b/formats/ffmpeg/mm_file_format_frame.c
@@ -24,7 +24,7 @@
#include <libswscale/swscale.h>
#include <mm_types.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_formats.h"
#include "mm_file_utils.h"
#include "mm_file_format_ffmpeg_mem.h"
@@ -34,102 +34,116 @@
#ifdef MMFILE_FORMAT_DEBUG_DUMP
static void __save_frame(AVFrame *pFrame, int width, int height, int iFrame);
-void __save_frame(AVFrame *pFrame, int width, int height, int iFrame) {
+void __save_frame(AVFrame *pFrame, int width, int height, int iFrame)
+{
FILE *pFile;
char szFilename[32];
int y;
- // Open file
+ /* Open file */
sprintf(szFilename, "frame%d.ppm", iFrame);
- pFile=fopen(szFilename, "wb");
- if(pFile==NULL)
+ pFile = fopen(szFilename, "wb");
+ if (pFile == NULL)
return;
- // Write header
+ /* Write header */
fprintf(pFile, "P6\n%d %d\n255\n", width, height);
- // Write pixel data
- for(y=0; y<height; y++)
- fwrite(pFrame->data[0]+y*pFrame->linesize[0], 1, width*3, pFile);
+ /* Write pixel data */
+ for (y = 0; y < height; y++)
+ fwrite(pFrame->data[0] + y * pFrame->linesize[0], 1, width * 3, pFile);
- // Close file
+ /* Close file */
fclose(pFile);
}
#endif
-static int __getMimeType(int formatId, char *mimeType)
+static int __getMimeType(int formatId, char *mimeType, int buf_size)
{
int ret = 0; /*default: success*/
- switch(formatId) {
+ switch (formatId) {
case MM_FILE_FORMAT_3GP:
case MM_FILE_FORMAT_MP4:
- sprintf(mimeType,"video/3gpp");
+ snprintf(mimeType, buf_size, "video/3gpp");
break;
case MM_FILE_FORMAT_ASF:
case MM_FILE_FORMAT_WMA:
case MM_FILE_FORMAT_WMV:
- sprintf(mimeType,"video/x-ms-asf");
+ snprintf(mimeType, buf_size, "video/x-ms-asf");
break;
case MM_FILE_FORMAT_AVI:
- sprintf(mimeType,"video/avi");
+ snprintf(mimeType, buf_size, "video/avi");
break;
case MM_FILE_FORMAT_OGG:
- sprintf(mimeType,"video/ogg");
+ snprintf(mimeType, buf_size, "video/ogg");
break;
case MM_FILE_FORMAT_REAL:
- sprintf(mimeType,"video/vnd.rn-realvideo");
+ snprintf(mimeType, buf_size, "video/vnd.rn-realmedia");
break;
case MM_FILE_FORMAT_AMR:
- sprintf(mimeType,"audio/AMR");
+ snprintf(mimeType, buf_size, "audio/AMR");
break;
case MM_FILE_FORMAT_AAC:
- sprintf(mimeType,"audio/aac");
+ snprintf(mimeType, buf_size, "audio/aac");
break;
case MM_FILE_FORMAT_MP3:
- sprintf(mimeType,"audio/mp3");
+ snprintf(mimeType, buf_size, "audio/mp3");
break;
case MM_FILE_FORMAT_AIFF:
case MM_FILE_FORMAT_WAV:
- sprintf(mimeType,"audio/wave");
+ snprintf(mimeType, buf_size, "audio/wave");
break;
case MM_FILE_FORMAT_MID:
- sprintf(mimeType,"audio/midi");
+ snprintf(mimeType, buf_size, "audio/midi");
break;
case MM_FILE_FORMAT_MMF:
- sprintf(mimeType,"audio/mmf");
+ snprintf(mimeType, buf_size, "audio/mmf");
break;
case MM_FILE_FORMAT_DIVX:
- sprintf(mimeType,"video/divx");
+ snprintf(mimeType, buf_size, "video/divx");
break;
case MM_FILE_FORMAT_IMELODY:
- sprintf(mimeType,"audio/iMelody");
+ snprintf(mimeType, buf_size, "audio/iMelody");
break;
case MM_FILE_FORMAT_JPG:
- sprintf(mimeType,"image/jpeg");
+ snprintf(mimeType, buf_size, "image/jpeg");
break;
case MM_FILE_FORMAT_AU:
- sprintf(mimeType,"audio/basic");
+ snprintf(mimeType, buf_size, "audio/basic");
break;
case MM_FILE_FORMAT_VOB:
- sprintf(mimeType,"video/mpeg");
+ snprintf(mimeType, buf_size, "video/dvd");
break;
case MM_FILE_FORMAT_FLV:
- sprintf(mimeType,"video/x-flv");
+ snprintf(mimeType, buf_size, "video/x-flv");
break;
case MM_FILE_FORMAT_QT:
- sprintf(mimeType,"video/quicktime");
+ snprintf(mimeType, buf_size, "video/quicktime");
break;
case MM_FILE_FORMAT_MATROSKA:
- sprintf(mimeType,"video/x-matroska");
+ snprintf(mimeType, buf_size, "video/x-matroska");
break;
case MM_FILE_FORMAT_FLAC:
- sprintf(mimeType,"audio/x-flac");
+ snprintf(mimeType, buf_size, "audio/x-flac");
+ break;
+ case MM_FILE_FORMAT_M2TS:
+ snprintf(mimeType, buf_size, "video/MP2T");
+ break;
+ case MM_FILE_FORMAT_M2PS:
+ snprintf(mimeType, buf_size, "video/MP2P");
+ break;
+ case MM_FILE_FORMAT_M1VIDEO:
+ snprintf(mimeType, buf_size, "video/mpeg");
+ break;
+ case MM_FILE_FORMAT_M1AUDIO:
+ snprintf(mimeType, buf_size, "audio/x-mpegaudio");
break;
default:
ret = -1;
+ break;
}
#ifdef __MMFILE_TEST_MODE__
- debug_msg ("id: %d, mimetype: %s\n", formatId, mimeType);
+ debug_msg("id: %d, mimetype: %s\n", formatId, mimeType);
#endif
return ret;
@@ -137,20 +151,31 @@ static int __getMimeType(int formatId, char *mimeType)
static int __get_fileformat(const char *urifilename, int *format)
{
int index;
+ int ret = 0;
+ MMFileIOHandle *fp = NULL;
debug_error("%s\n", urifilename);
+ ret = mmfile_open(&fp, urifilename, MMFILE_RDONLY);
+
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ if (fp)
+ mmfile_close(fp);
+ return MMFILE_FORMAT_FAIL;
+ }
+
for (index = 0; index < MM_FILE_FORMAT_NUM; index++) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("search index = [%d]\n", index);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("search index = [%d]\n", index);
+#endif
switch (index) {
case MM_FILE_FORMAT_QT:
case MM_FILE_FORMAT_3GP:
case MM_FILE_FORMAT_MP4: {
- if (MMFileFormatIsValidMP4 (urifilename)) {
+ if (MMFileFormatIsValidMP4(fp, NULL)) {
*format = MM_FILE_FORMAT_3GP;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
@@ -158,34 +183,74 @@ static int __get_fileformat(const char *urifilename, int *format)
case MM_FILE_FORMAT_ASF:
case MM_FILE_FORMAT_WMA:
case MM_FILE_FORMAT_WMV: {
- if (MMFileFormatIsValidASF (urifilename)) {
+ if (MMFileFormatIsValidASF(fp, NULL)) {
*format = MM_FILE_FORMAT_ASF;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
case MM_FILE_FORMAT_DIVX:
case MM_FILE_FORMAT_AVI: {
- if (MMFileFormatIsValidAVI(urifilename)) {
+ if (MMFileFormatIsValidAVI(fp, NULL)) {
*format = MM_FILE_FORMAT_AVI;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
case MM_FILE_FORMAT_MATROSKA: {
- if (MMFileFormatIsValidMatroska (urifilename)) {
+ if (MMFileFormatIsValidMatroska(fp, NULL)) {
*format = MM_FILE_FORMAT_MATROSKA;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
case MM_FILE_FORMAT_FLV: {
- if (MMFileFormatIsValidFLV (urifilename)) {
+ if (MMFileFormatIsValidFLV(fp, NULL)) {
*format = MM_FILE_FORMAT_FLV;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ break;
+ }
+
+ case MM_FILE_FORMAT_M2TS: {
+ if (MMFileFormatIsValidMPEGTS(fp, NULL)) {
+ *format = MM_FILE_FORMAT_M2TS;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ break;
+ }
+
+ case MM_FILE_FORMAT_M2PS: {
+ if (MMFileFormatIsValidMPEGPS(fp, NULL)) {
+ *format = MM_FILE_FORMAT_M2PS;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ break;
+ }
+
+ case MM_FILE_FORMAT_REAL: {
+ if (MMFileFormatIsValidREAL(fp, NULL)) {
+ *format = MM_FILE_FORMAT_REAL;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ break;
+ }
+
+ case MM_FILE_FORMAT_M1AUDIO: {
+ if (MMFileFormatIsValidMPEGAUDIO(fp, NULL)) {
+ *format = MM_FILE_FORMAT_M1AUDIO;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ break;
+ }
+
+ case MM_FILE_FORMAT_M1VIDEO: {
+ if (MMFileFormatIsValidMPEGVIDEO(fp, NULL)) {
+ *format = MM_FILE_FORMAT_M1VIDEO;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
@@ -203,14 +268,13 @@ static int __get_fileformat(const char *urifilename, int *format)
break;
/* not supported file */
case MM_FILE_FORMAT_NUT:
- case MM_FILE_FORMAT_REAL:
case MM_FILE_FORMAT_AIFF:
case MM_FILE_FORMAT_AU:
case MM_FILE_FORMAT_VOB:
case MM_FILE_FORMAT_JPG:
break;
default: {
- debug_error ("error: invaild format enum[%d]\n", index);
+ debug_error("error: invaild format enum[%d]\n", index);
break;
}
}
@@ -221,13 +285,23 @@ static int __get_fileformat(const char *urifilename, int *format)
}
*format = -1;
+
+ if (fp)
+ mmfile_close(fp);
+
return MMFILE_FORMAT_FAIL;
+
+FILE_FORMAT_SUCCESS:
+ if (fp)
+ mmfile_close(fp);
+
+ return MMFILE_FORMAT_SUCCESS;
}
static int __mmfile_get_frame(AVFormatContext *pFormatCtx, double timestamp, bool is_accurate, unsigned char **frame, int *size, int *width, int *height)
{
- int i = 0;
+ unsigned int i = 0;
int len = 0;
int ret = MMFILE_FORMAT_SUCCESS;
int videoStream = -1;
@@ -244,9 +318,9 @@ static int __mmfile_get_frame(AVFormatContext *pFormatCtx, double timestamp, boo
/* Retrieve stream information */
#ifdef __MMFILE_FFMPEG_V100__
- if(avformat_find_stream_info(pFormatCtx, NULL) < 0) {
+ if (avformat_find_stream_info(pFormatCtx, NULL) < 0) {
#else
- if(av_find_stream_info(pFormatCtx) < 0) {
+ if (av_find_stream_info(pFormatCtx) < 0) {
#endif
debug_error("error : av_find_stream_info failed");
ret = MMFILE_FORMAT_FAIL;
@@ -254,30 +328,30 @@ static int __mmfile_get_frame(AVFormatContext *pFormatCtx, double timestamp, boo
}
/* Find the first video stream */
- for(i = 0; i < pFormatCtx->nb_streams; i++) {
- if(pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
+ for (i = 0; i < pFormatCtx->nb_streams; i++) {
+ if (pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
videoStream = i;
break;
}
}
- if(videoStream == -1) {
+ if (videoStream == -1) {
debug_error("error : videoStream == -1");
ret = MMFILE_FORMAT_FAIL;
goto exception; /* Didn't find a video stream */
}
/* Get a pointer to the codec context for the video stream */
- pVideoCodecCtx=pFormatCtx->streams[videoStream]->codec;
+ pVideoCodecCtx = pFormatCtx->streams[videoStream]->codec;
if (pVideoCodecCtx == NULL) {
- debug_error ("invalid param\n");
+ debug_error("invalid param\n");
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
/* Find the decoder for the video stream */
pVideoCodec = avcodec_find_decoder(pVideoCodecCtx->codec_id);
- if(pVideoCodec == NULL) {
+ if (pVideoCodec == NULL) {
debug_error("error : Unsupported codec");
ret = MMFILE_FORMAT_FAIL;
goto exception; /* Codec not found */
@@ -287,9 +361,9 @@ static int __mmfile_get_frame(AVFormatContext *pFormatCtx, double timestamp, boo
#ifdef __MMFILE_FFMPEG_V100__
pVideoCodecCtx->thread_type = 0;
pVideoCodecCtx->thread_count = 0;
- if(avcodec_open2(pVideoCodecCtx, pVideoCodec, NULL) < 0) {
+ if (avcodec_open2(pVideoCodecCtx, pVideoCodec, NULL) < 0) {
#else
- if(avcodec_open(pVideoCodecCtx, pVideoCodec) < 0) {
+ if (avcodec_open(pVideoCodecCtx, pVideoCodec) < 0) {
#endif
debug_error("error : avcodec_open failed");
ret = MMFILE_FORMAT_FAIL;
@@ -298,17 +372,17 @@ static int __mmfile_get_frame(AVFormatContext *pFormatCtx, double timestamp, boo
/* Storing Data */
/* Allocate video frame */
- pFrame = avcodec_alloc_frame();
- if(pFrame == NULL) {
- debug_error ("error: pFrame is NULL\n");
+ pFrame = av_frame_alloc();
+ if (pFrame == NULL) {
+ debug_error("error: pFrame is NULL\n");
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
/* Allocate an AVFrame structure */
- pFrameRGB = avcodec_alloc_frame();
- if(pFrameRGB == NULL) {
- debug_error ("error: pFrameRGB is NULL\n");
+ pFrameRGB = av_frame_alloc();
+ if (pFrameRGB == NULL) {
+ debug_error("error: pFrameRGB is NULL\n");
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
@@ -330,7 +404,7 @@ static int __mmfile_get_frame(AVFormatContext *pFormatCtx, double timestamp, boo
}
#endif
duration = duration * MILLION;
- if ((duration <= 0) ||(duration <= pos)) {
+ if ((duration <= 0) || (duration <= pos)) {
debug_error("duration error duration[%f] pos[%f]", duration, pos);
ret = MMFILE_FORMAT_FAIL;
goto exception;
@@ -349,18 +423,18 @@ static int __mmfile_get_frame(AVFormatContext *pFormatCtx, double timestamp, boo
av_init_packet(&packet);
- while(av_read_frame(pFormatCtx, &packet) >= 0) {
+ while (av_read_frame(pFormatCtx, &packet) >= 0) {
got_picture = 0;
- // Is this a packet from the video stream?
- if(packet.stream_index == videoStream) {
+ /* Is this a packet from the video stream? */
+ if (packet.stream_index == videoStream) {
#ifdef __MMFILE_TEST_MODE__
debug_msg("find Video Stream+++++++[%2d]", idx++);
#endif
/* Decode video frame*/
len = avcodec_decode_video2(pVideoCodecCtx, pFrame, &got_picture, &packet);
if (len < 0) {
- debug_warning ("Error while decoding frame");
+ debug_warning("Error while decoding frame");
} else if ((packet.flags & AV_PKT_FLAG_KEY) || (key_detected == 1)) {
key_detected = 0;
@@ -372,42 +446,42 @@ static int __mmfile_get_frame(AVFormatContext *pFormatCtx, double timestamp, boo
Go back to previousto Key frame and decode frame until time stamp's frame*/
if (got_picture) {
- if(pFrame->key_frame) {
- #ifdef __MMFILE_TEST_MODE__
+ if (pFrame->key_frame) {
+#ifdef __MMFILE_TEST_MODE__
debug_msg("find Video Stream+++++++Find key frame");
- #endif
+#endif
} else {
- #ifdef __MMFILE_TEST_MODE__
+#ifdef __MMFILE_TEST_MODE__
debug_msg("find Video Stream+++++++ not key frame");
- #endif
+#endif
}
/*eventhough decoded pFrame is not key frame, if packet.flags is AV_PKT_FLAG_KEY then can extract frame*/
find = true;
} else {
- #ifdef __MMFILE_TEST_MODE__
+#ifdef __MMFILE_TEST_MODE__
debug_msg("find Video Stream+++++++Find key but no frame");
- #endif
+#endif
key_detected = 1;
}
}
} else {
- if(is_accurate) {
+ if (is_accurate) {
if (first_seek) {
- pts = (packet.pts == AV_NOPTS_VALUE) ? (packet.dts * av_q2d(pStream->time_base)) : packet.pts;
+ pts = (packet.pts == (int64_t)AV_NOPTS_VALUE) ? (packet.dts * av_q2d(pStream->time_base)) : packet.pts;
first_seek = false;
av_seek_frame(pFormatCtx, -1, pos, AVSEEK_FLAG_BACKWARD);
} else {
- tmpPts = (packet.pts == AV_NOPTS_VALUE) ? (packet.dts * av_q2d(pStream->time_base)) : packet.pts;
+ tmpPts = (packet.pts == (int64_t)AV_NOPTS_VALUE) ? (packet.dts * av_q2d(pStream->time_base)) : packet.pts;
if (pts == tmpPts)
find = true;
}
}
}
- if(find && got_picture) {
+ if (find && got_picture) {
break;
}
}
@@ -418,16 +492,16 @@ static int __mmfile_get_frame(AVFormatContext *pFormatCtx, double timestamp, boo
}
/*free pkt after loop breaking*/
- av_free_packet (&packet);
+ av_free_packet(&packet);
/* Did we get a video frame?*/
- if(got_picture && find) {
+ if (got_picture && find) {
#ifdef __MMFILE_TEST_MODE__
debug_msg("Find Frame");
#endif
/* return frame infromations*/
- if((pVideoCodecCtx->width == 0) || (pVideoCodecCtx->height == 0)) {
+ if ((pVideoCodecCtx->width == 0) || (pVideoCodecCtx->height == 0)) {
*width = pVideoCodecCtx->coded_width;
*height = pVideoCodecCtx->coded_height;
} else {
@@ -436,9 +510,12 @@ static int __mmfile_get_frame(AVFormatContext *pFormatCtx, double timestamp, boo
}
*size = avpicture_get_size(PIX_FMT_RGB24, *width, *height);
- *frame = mmfile_malloc (*size);
+
+ if (*size > 0)
+ *frame = mmfile_malloc(*size);
+
if (NULL == *frame) {
- debug_error ("error: avpicture_get_size. [%d]\n", size);
+ debug_error("error: avpicture_get_size. [%d]\n", size);
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
@@ -449,9 +526,9 @@ static int __mmfile_get_frame(AVFormatContext *pFormatCtx, double timestamp, boo
debug_msg("height : %d", *height);
debug_msg("frame : %x", *frame);
#endif
- ret = avpicture_fill ((AVPicture *)pFrameRGB, *frame, PIX_FMT_RGB24, *width, *height);
+ ret = avpicture_fill((AVPicture *)pFrameRGB, *frame, PIX_FMT_RGB24, *width, *height);
if (ret < 0) {
- debug_error ("error: avpicture_fill fail. errcode = 0x%08X\n", ret);
+ debug_error("error: avpicture_fill fail. errcode = 0x%08X\n", ret);
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
@@ -459,19 +536,19 @@ static int __mmfile_get_frame(AVFormatContext *pFormatCtx, double timestamp, boo
#ifdef __MMFILE_FFMPEG_V085__
struct SwsContext *img_convert_ctx = NULL;
- img_convert_ctx = sws_getContext (*width, *height, pVideoCodecCtx->pix_fmt,
- *width, *height, PIX_FMT_RGB24, SWS_BICUBIC, NULL, NULL, NULL);
+ img_convert_ctx = sws_getContext(*width, *height, pVideoCodecCtx->pix_fmt,
+ *width, *height, PIX_FMT_RGB24, SWS_BICUBIC, NULL, NULL, NULL);
if (NULL == img_convert_ctx) {
- debug_error ("failed to get img convet ctx\n");
+ debug_error("failed to get img convet ctx\n");
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
- ret = sws_scale (img_convert_ctx, (const uint8_t* const*)pFrame->data, pFrame->linesize,
- 0, *height, pFrameRGB->data, pFrameRGB->linesize);
- if ( ret < 0 ) {
- debug_error ("failed to convet image\n");
+ ret = sws_scale(img_convert_ctx, (const uint8_t * const *)pFrame->data, pFrame->linesize,
+ 0, *height, pFrameRGB->data, pFrameRGB->linesize);
+ if (ret < 0) {
+ debug_error("failed to convet image\n");
sws_freeContext(img_convert_ctx);
img_convert_ctx = NULL;
ret = MMFILE_FORMAT_FAIL;
@@ -481,41 +558,42 @@ static int __mmfile_get_frame(AVFormatContext *pFormatCtx, double timestamp, boo
sws_freeContext(img_convert_ctx);
img_convert_ctx = NULL;
#else
- ret = img_convert ((AVPicture *)pFrameRGB, PIX_FMT_RGB24, (AVPicture*)pFrame, pVideoCodecCtx->pix_fmt, *width, *height);
- if ( ret < 0 ) {
- debug_error ("failed to convet image\n");
+ ret = img_convert((AVPicture *)pFrameRGB, PIX_FMT_RGB24, (AVPicture *)pFrame, pVideoCodecCtx->pix_fmt, *width, *height);
+ if (ret < 0) {
+ debug_error("failed to convet image\n");
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
#endif
#ifdef MMFILE_FORMAT_DEBUG_DUMP
- __save_frame(pFrameRGB, pVideoCodecCtx->width, pVideoCodecCtx->height, (int)(pos/1000));
+ __save_frame(pFrameRGB, pVideoCodecCtx->width, pVideoCodecCtx->height, (int)(pos / 1000));
#endif
- }
- else
- {
+ } else {
debug_error("Not Found Proper Frame[%d][%d]", got_picture, find);
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
- if (pFrame) av_free (pFrame);
- if (pFrameRGB) av_free (pFrameRGB);
+ if (pFrame) av_free(pFrame);
+ if (pFrameRGB) av_free(pFrameRGB);
if (pVideoCodecCtx) avcodec_close(pVideoCodecCtx);
return MMFILE_FORMAT_SUCCESS;
exception:
- if (*frame) { mmfile_free (*frame); *frame = NULL; }
- if (pFrame) av_free (pFrame);
- if (pFrameRGB) av_free (pFrameRGB);
- if (pVideoCodecCtx) avcodec_close (pVideoCodecCtx);
+ if (*frame) {
+ mmfile_free(*frame);
+ *frame = NULL;
+ }
+ if (pFrame) av_free(pFrame);
+ if (pFrameRGB) av_free(pFrameRGB);
+ if (pVideoCodecCtx) avcodec_close(pVideoCodecCtx);
return ret;
}
-int mmfile_format_get_frame(const char* path, double timestamp, bool is_accurate, unsigned char **frame, int *size, int *width, int *height)
+int mmfile_format_get_frame(const char *path, double timestamp, bool is_accurate, unsigned char **frame, int *size, int *width, int *height)
{
int ret = MMFILE_FORMAT_SUCCESS;
AVFormatContext *pFormatCtx = NULL;
@@ -527,13 +605,13 @@ int mmfile_format_get_frame(const char* path, double timestamp, bool is_accurate
av_register_all();
/* Open video file */
- if(avformat_open_input(&pFormatCtx, path, NULL, NULL) != 0) {
+ if (avformat_open_input(&pFormatCtx, path, NULL, NULL) != 0) {
debug_error("error : avformat_open_input failed");
return MMFILE_FORMAT_FAIL; /* Couldn't open file */
}
if (!pFormatCtx) {
- debug_warning ("failed to find av stream. maybe corrupted data.\n");
+ debug_warning("failed to find av stream. maybe corrupted data.\n");
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
@@ -545,15 +623,15 @@ exception:
if (pFormatCtx) avformat_close_input(&pFormatCtx);
return ret;
- }
+}
int mmfile_format_get_frame_from_memory(const void *data, unsigned int datasize, double timestamp, bool is_accurate, unsigned char **frame, int *size, int *width, int *height)
{
int ret = MMFILE_FORMAT_SUCCESS;
int format = -1;
- char mimeType[MMFILE_MIMETYPE_MAX_LEN] = {0,};
- char ffmpegFormatName[MMFILE_FILE_FMT_MAX_LEN] = {0,};
- char tempURIBuffer[MMFILE_URI_MAX_LEN] = {0,};
+ char mimeType[MMFILE_MIMETYPE_MAX_LEN] = {0, };
+ char ffmpegFormatName[MMFILE_FILE_FMT_MAX_LEN] = {0, };
+ char tempURIBuffer[MMFILE_URI_MAX_LEN] = {0, };
char *urifilename = NULL;
AVFormatContext *pFormatCtx = NULL;
AVInputFormat *grab_iformat = NULL;
@@ -564,10 +642,10 @@ int mmfile_format_get_frame_from_memory(const void *data, unsigned int datasize,
av_register_all();
- sprintf (tempURIBuffer, "%s%u:%u", MMFILE_MEM_URI, (unsigned int)data, datasize);
- urifilename = mmfile_strdup (tempURIBuffer);
+ snprintf(tempURIBuffer, MMFILE_URI_MAX_LEN, "%s%u:%u", MMFILE_MEM_URI, (unsigned int)data, datasize);
+ urifilename = mmfile_strdup(tempURIBuffer);
if (!urifilename) {
- debug_error ("error: uri is NULL\n");
+ debug_error("error: uri is NULL\n");
return MMFILE_FORMAT_FAIL;
}
@@ -575,41 +653,41 @@ int mmfile_format_get_frame_from_memory(const void *data, unsigned int datasize,
ret = __get_fileformat(urifilename, &format);
if (ret != MMFILE_FORMAT_SUCCESS) {
- debug_error ("error: file format is invalid\n");
+ debug_error("error: file format is invalid\n");
return MMFILE_FORMAT_FAIL;
}
-#ifdef __MMFILE_FFMPEG_V085__
- ffurl_register_protocol(&MMFileMEMProtocol, sizeof (URLProtocol));
+#if (defined __MMFILE_FFMPEG_V085__ && !defined __MMFILE_LIBAV_VERSION__)
+ ffurl_register_protocol(&MMFileMEMProtocol, sizeof(URLProtocol));
#else
- register_protocol (&MMFileMEMProtocol);
+ ffurl_register_protocol(&MMFileMEMProtocol);
#endif
- if(__getMimeType(format,mimeType)< 0) {
- debug_error ("error: Error in MIME Type finding\n");
+ if (__getMimeType(format, mimeType, MMFILE_MIMETYPE_MAX_LEN) < 0) {
+ debug_error("error: Error in MIME Type finding\n");
return MMFILE_FORMAT_FAIL;
}
- memset (ffmpegFormatName, 0x00, MMFILE_FILE_FMT_MAX_LEN);
+ memset(ffmpegFormatName, 0x00, MMFILE_FILE_FMT_MAX_LEN);
- ret = mmfile_util_get_ffmpeg_format (mimeType,ffmpegFormatName);
+ ret = mmfile_util_get_ffmpeg_format(mimeType, ffmpegFormatName);
if (MMFILE_UTIL_SUCCESS != ret) {
- debug_error ("error: mmfile_util_get_ffmpeg_format\n");
+ debug_error("error: mmfile_util_get_ffmpeg_format\n");
return MMFILE_FORMAT_FAIL;
}
- grab_iformat = av_find_input_format (ffmpegFormatName);
+ grab_iformat = av_find_input_format(ffmpegFormatName);
if (NULL == grab_iformat) {
- debug_error ("error: cannot find format\n");
+ debug_error("error: cannot find format\n");
goto exception;
}
#ifdef __MMFILE_FFMPEG_V085__
- ret = avformat_open_input (&pFormatCtx, urifilename, grab_iformat, NULL);
+ ret = avformat_open_input(&pFormatCtx, urifilename, grab_iformat, NULL);
#else
- ret = av_open_input_file (&pFormatCtx, urifilename, grab_iformat, 0, NULL);
+ ret = av_open_input_file(&pFormatCtx, urifilename, grab_iformat, 0, NULL);
#endif
if (ret < 0) {
debug_error("error: cannot open %s %d\n", urifilename, ret);
@@ -617,7 +695,7 @@ int mmfile_format_get_frame_from_memory(const void *data, unsigned int datasize,
}
if (!pFormatCtx) {
- debug_warning ("failed to find av stream. maybe corrupted data.\n");
+ debug_warning("failed to find av stream. maybe corrupted data.\n");
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
@@ -628,5 +706,7 @@ exception:
/* Close video file */
if (pFormatCtx) avformat_close_input(&pFormatCtx);
+ ffurl_deregister_protocol(&MMFileMEMProtocol);
+
return ret;
- }
+}
diff --git a/formats/ffmpeg/mm_file_format_imelody.c b/formats/ffmpeg/mm_file_format_imelody.c
index 24384fc..4b3a1d5 100755
--- a/formats/ffmpeg/mm_file_format_imelody.c
+++ b/formats/ffmpeg/mm_file_format_imelody.c
@@ -23,7 +23,7 @@
#include <string.h> /*memcmp*/
#include <stdlib.h> /*malloc*/
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
#include "mm_file_format_private.h"
#include "mm_file_format_imelody.h"
@@ -39,14 +39,15 @@
#define MIDI_MAX 255
#define VOL_INTERVAL 12
-
+
#define MIDI_HEADER_LENGTH 52
static unsigned char midiData[AV_MIDI_COUNT_MAX] ;
-static unsigned char midiHeader[MIDI_HEADER_LENGTH]= {0x4d,0x54,0x68,0x64,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x30,0x4d,0x54,
- 0x72,0x6b,0x00,0x00,0x00,0x00,0x00,0xff,0x58,0x04,0x04,0x02,0x18,0x08,0x00,0xff,
- 0x59,0x02,0x00,0x00,0x00,0xff,0x51,0x03,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0xb0,
- 0x07,0x00,0x00,0x90};
+static unsigned char midiHeader[MIDI_HEADER_LENGTH] = {0x4d, 0x54, 0x68, 0x64, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x30, 0x4d, 0x54,
+ 0x72, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x58, 0x04, 0x04, 0x02, 0x18, 0x08, 0x00, 0xff,
+ 0x59, 0x02, 0x00, 0x00, 0x00, 0xff, 0x51, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xb0,
+ 0x07, 0x00, 0x00, 0x90
+ };
static unsigned char noteTotal[AV_MIDI_COUNT_MAX];
@@ -71,7 +72,7 @@ static struct {
} noteData[AV_MIDI_NOTE_MAX];
/*imelody key string (to validatation check)*/
-static const char *g_imy_key_str [] = {
+static const char *g_imy_key_str[] = {
"BEGIN:IMELODY",
"VERSION:",
"FORMAT:",
@@ -80,24 +81,24 @@ static const char *g_imy_key_str [] = {
};
-static int __is_good_imelody (unsigned char *src, unsigned int size);
-static unsigned char* __get_load_memory (char *src, int *out_size);
-static unsigned char __AvMIDISetVolume(char* pMelodyBuf);
-static int __AvMIDISetBeat(char* pMelodyBuf);
-static char __AvMIDISetStyle(char* pMelodyBuf);
-static unsigned char* __AvConvertIMelody2MIDI(char* pMelodyBuf, unsigned int* pBufLen);
-static int __get_imelody_tag (const char *uriname, tMMFileImelodyTagInfo *tags);
+static int __is_good_imelody(unsigned char *src, unsigned int size);
+static unsigned char *__get_load_memory(char *src, int *out_size);
+static unsigned char __AvMIDISetVolume(char *pMelodyBuf);
+static int __AvMIDISetBeat(char *pMelodyBuf);
+static char __AvMIDISetStyle(char *pMelodyBuf);
+static unsigned char *__AvConvertIMelody2MIDI(char *pMelodyBuf, unsigned int *pBufLen);
+static int __get_imelody_tag(const char *uriname, tMMFileImelodyTagInfo *tags);
+
-
/* interface functions */
-int mmfile_format_read_stream_imy (MMFileFormatContext *formatContext);
-int mmfile_format_read_frame_imy (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
-int mmfile_format_read_tag_imy (MMFileFormatContext *formatContext);
-int mmfile_format_close_imy (MMFileFormatContext *formatContext);
+int mmfile_format_read_stream_imy(MMFileFormatContext *formatContext);
+int mmfile_format_read_frame_imy(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
+int mmfile_format_read_tag_imy(MMFileFormatContext *formatContext);
+int mmfile_format_close_imy(MMFileFormatContext *formatContext);
EXPORT_API
-int mmfile_format_open_imy (MMFileFormatContext *formatContext)
+int mmfile_format_open_imy(MMFileFormatContext *formatContext)
{
int ret = 0;
@@ -107,10 +108,10 @@ int mmfile_format_open_imy (MMFileFormatContext *formatContext)
}
if (formatContext->pre_checked == 0) {
- ret = MMFileFormatIsValidIMY (formatContext->uriFileName);
+ ret = MMFileFormatIsValidIMY(NULL, formatContext->uriFileName);
if (ret == 0) {
debug_error("It is not imelody file\n");
- return MMFILE_FORMAT_FAIL;
+ return MMFILE_FORMAT_FAIL;
}
}
@@ -128,7 +129,7 @@ int mmfile_format_open_imy (MMFileFormatContext *formatContext)
}
EXPORT_API
-int mmfile_format_read_stream_imy (MMFileFormatContext *formatContext)
+int mmfile_format_read_stream_imy(MMFileFormatContext *formatContext)
{
MIDI_INFO_SIMPLE *info = NULL;
MMFileFormatStream *audioStream = NULL;
@@ -136,8 +137,8 @@ int mmfile_format_read_stream_imy (MMFileFormatContext *formatContext)
unsigned char *imy = NULL;
int imy_size = 0;
unsigned char *midi = NULL;
- unsigned int midi_size = 0;
- char src2[MMFILE_URI_MAX_LEN];
+ unsigned int midi_size = 0;
+ char src2[MMFILE_URI_MAX_LEN];
int ret = 0;
@@ -147,30 +148,30 @@ int mmfile_format_read_stream_imy (MMFileFormatContext *formatContext)
}
/*convert iMelody to Midi*/
- imy = __get_load_memory (formatContext->uriFileName, &imy_size);
+ imy = __get_load_memory(formatContext->uriFileName, &imy_size);
if (!imy) {
- debug_error ("failed to load memory.\n");
+ debug_error("failed to load memory.\n");
goto exception;
}
- ret = __is_good_imelody (imy, imy_size);
+ ret = __is_good_imelody(imy, imy_size);
if (ret != MMFILE_FORMAT_SUCCESS) {
- debug_error ("it's broken file.\n");
+ debug_error("it's broken file.\n");
goto exception;
}
- midi = __AvConvertIMelody2MIDI ((char *)imy, &midi_size);
+ midi = __AvConvertIMelody2MIDI((char *)imy, &midi_size);
if (!midi) {
- debug_error ("failed to convert.");
+ debug_error("failed to convert.");
goto exception;
}
-
+
/*make uri*/
- memset (src2, 0x00, MMFILE_URI_MAX_LEN);
- sprintf (src2, "%s%u:%u", MMFILE_MEM_URI, (unsigned int)midi, midi_size);
+ memset(src2, 0x00, MMFILE_URI_MAX_LEN);
+ snprintf(src2, sizeof(src2), "%s%u:%u", MMFILE_MEM_URI, (unsigned int)midi, midi_size);
/*get infomation*/
- info = mmfile_format_get_midi_infomation (src2);
+ info = mmfile_format_get_midi_infomation(src2);
if (!info) {
- debug_error ("failed to get infomation");
+ debug_error("failed to get infomation");
goto exception;
}
@@ -181,9 +182,9 @@ int mmfile_format_read_stream_imy (MMFileFormatContext *formatContext)
formatContext->nbStreams = 1;
- audioStream = mmfile_malloc (sizeof(MMFileFormatStream));
+ audioStream = mmfile_malloc(sizeof(MMFileFormatStream));
if (NULL == audioStream) {
- debug_error ("error: mmfile_malloc audiostream\n");
+ debug_error("error: mmfile_malloc audiostream\n");
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
@@ -197,344 +198,320 @@ int mmfile_format_read_stream_imy (MMFileFormatContext *formatContext)
audioStream->nbChannel = 1;
audioStream->samplePerSec = 0;
formatContext->streams[MMFILE_AUDIO_STREAM] = audioStream;
-
- #ifdef __MMFILE_TEST_MODE__
- mmfile_format_print_contents (formatContext);
- #endif
-
- mmfile_free (imy);
- mmfile_free (midi);
- mmfile_format_free_midi_infomation (info);
+
+#ifdef __MMFILE_TEST_MODE__
+ mmfile_format_print_contents(formatContext);
+#endif
+
+ mmfile_free(imy);
+ mmfile_free(midi);
+ mmfile_format_free_midi_infomation(info);
return MMFILE_FORMAT_SUCCESS;
exception:
- mmfile_free (imy);
- mmfile_free (midi);
- mmfile_format_free_midi_infomation (info);
- mmfile_free (audioStream);
+ mmfile_free(imy);
+ mmfile_free(midi);
+ mmfile_format_free_midi_infomation(info);
+ mmfile_free(audioStream);
return MMFILE_FORMAT_FAIL;
}
EXPORT_API
-int mmfile_format_read_frame_imy (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame)
+int mmfile_format_read_frame_imy(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame)
{
- return MMFILE_FORMAT_SUCCESS;
+ return MMFILE_FORMAT_SUCCESS;
}
EXPORT_API
-int mmfile_format_read_tag_imy (MMFileFormatContext *formatContext)
+int mmfile_format_read_tag_imy(MMFileFormatContext *formatContext)
{
- tMMFileImelodyTagInfo taginfo = {0,};
+ tMMFileImelodyTagInfo taginfo = {0, };
unsigned int tag_len;
unsigned int cnv_len;
- const char *locale = MMFileUtilGetLocale (NULL);
+ const char *locale = MMFileUtilGetLocale(NULL);
if (!formatContext) {
debug_error("formatContext is NULL\n");
return MMFILE_FORMAT_FAIL;
}
- __get_imelody_tag (formatContext->uriFileName, &taginfo);
+ __get_imelody_tag(formatContext->uriFileName, &taginfo);
/**
* UTF8 convert
*/
if (taginfo.title) {
- tag_len = strlen (taginfo.title);
+ tag_len = strlen(taginfo.title);
cnv_len = 0;
- formatContext->title = mmfile_string_convert ((const char*)taginfo.title,
- tag_len,
- "UTF-8",
- locale,
- NULL,
- (unsigned int*)&cnv_len);
-
+ formatContext->title = mmfile_string_convert((const char *)taginfo.title,
+ tag_len,
+ "UTF-8",
+ locale,
+ NULL,
+ (unsigned int *)&cnv_len);
+
if (formatContext->title == NULL) {
- debug_warning ("failed to UTF8 convert.\n");
- formatContext->title = mmfile_strdup (taginfo.title);
+ debug_warning("failed to UTF8 convert.\n");
+ formatContext->title = mmfile_strdup(taginfo.title);
}
- mmfile_free (taginfo.title);
+ mmfile_free(taginfo.title);
}
if (taginfo.composer) {
- tag_len = strlen (taginfo.composer);
+ tag_len = strlen(taginfo.composer);
cnv_len = 0;
- formatContext->composer = mmfile_string_convert ((const char*)taginfo.composer,
- tag_len,
- "UTF-8",
- locale,
- NULL,
- (unsigned int*)&cnv_len);
+ formatContext->composer = mmfile_string_convert((const char *)taginfo.composer,
+ tag_len,
+ "UTF-8",
+ locale,
+ NULL,
+ (unsigned int *)&cnv_len);
if (formatContext->composer == NULL) {
- debug_warning ("failed to UTF8 convert.\n");
- formatContext->composer = mmfile_strdup (taginfo.composer);
+ debug_warning("failed to UTF8 convert.\n");
+ formatContext->composer = mmfile_strdup(taginfo.composer);
}
- mmfile_free (taginfo.composer);
+ mmfile_free(taginfo.composer);
}
if (taginfo.comment) {
- tag_len = strlen (taginfo.comment);
+ tag_len = strlen(taginfo.comment);
cnv_len = 0;
- formatContext->comment = mmfile_string_convert ((const char*)taginfo.comment,
- tag_len,
- "UTF-8",
- locale,
- NULL,
- (unsigned int*)&cnv_len);
+ formatContext->comment = mmfile_string_convert((const char *)taginfo.comment,
+ tag_len,
+ "UTF-8",
+ locale,
+ NULL,
+ (unsigned int *)&cnv_len);
if (formatContext->comment == NULL) {
- debug_warning ("failed to UTF8 convert.\n");
- formatContext->comment = mmfile_strdup (taginfo.comment);
+ debug_warning("failed to UTF8 convert.\n");
+ formatContext->comment = mmfile_strdup(taginfo.comment);
}
- mmfile_free (taginfo.comment);
+ mmfile_free(taginfo.comment);
}
if (taginfo.copyright) {
- tag_len = strlen (taginfo.copyright);
+ tag_len = strlen(taginfo.copyright);
cnv_len = 0;
- formatContext->copyright = mmfile_string_convert ((const char*)taginfo.copyright,
- tag_len,
- "UTF-8",
- locale,
- NULL,
- (unsigned int*)&cnv_len);
+ formatContext->copyright = mmfile_string_convert((const char *)taginfo.copyright,
+ tag_len,
+ "UTF-8",
+ locale,
+ NULL,
+ (unsigned int *)&cnv_len);
if (formatContext->copyright == NULL) {
- debug_warning ("failed to UTF8 convert.\n");
- formatContext->copyright = mmfile_strdup (taginfo.copyright);
+ debug_warning("failed to UTF8 convert.\n");
+ formatContext->copyright = mmfile_strdup(taginfo.copyright);
}
- mmfile_free (taginfo.copyright);
+ mmfile_free(taginfo.copyright);
}
return MMFILE_FORMAT_SUCCESS;
}
EXPORT_API
-int mmfile_format_close_imy (MMFileFormatContext *formatContext)
+int mmfile_format_close_imy(MMFileFormatContext *formatContext)
{
return MMFILE_FORMAT_SUCCESS;
}
-static int __get_imelody_tag (const char *uriname, tMMFileImelodyTagInfo *tags)
+static int __get_imelody_tag(const char *uriname, tMMFileImelodyTagInfo *tags)
{
#define _MMFILE_IMY_TAG_BUFFER_LENGTH 512
#define _MMFILE_IMY_HEADER_LENGTH 20
#define _MMFILE_IMY_KEY_BUFFER_LENGTH 20
#define _MMFILE_IMY_VALUE_BUFFER_LENGTH 128
- MMFileIOHandle *fp = NULL;
- unsigned char buffer[_MMFILE_IMY_TAG_BUFFER_LENGTH] = {0,};
- int readed = 0;
- long long filesize = 0;
- unsigned int startoffset = 0;
- unsigned int endoffset = 0;
- unsigned int i = 0, j = 0;
- char imy_key_buffer[_MMFILE_IMY_KEY_BUFFER_LENGTH] = {0,};
- unsigned int imy_key_buffer_index = 0;
- char imy_value_buffer[_MMFILE_IMY_VALUE_BUFFER_LENGTH] = {0,};
- unsigned int imy_value_buffer_index = 0;
- int isKeyBuffer = 1;
- int isDone = 0;
-
- int ret = MMFILE_FORMAT_FAIL;
-
- if (!uriname || !tags)
- {
- debug_error("uriname or tags is NULL\n");
- return MMFILE_FORMAT_FAIL;
- }
-
- ret = mmfile_open (&fp, uriname, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL)
- {
- debug_error ( "open failed.\n");
- return MMFILE_FORMAT_FAIL;
- }
-
- mmfile_seek (fp, 0, MMFILE_SEEK_END);
- filesize = mmfile_tell (fp);
- mmfile_seek (fp, 0, MMFILE_SEEK_SET);
-
- if (filesize < _MMFILE_IMY_HEADER_LENGTH)
- {
- debug_error ( "header is too small.\n");
- ret = MMFILE_FORMAT_FAIL;
- goto exit;
- }
-
- /* set begin and end point at the file */
- startoffset = 0;
- endoffset = filesize;
-
- i = startoffset;
- isKeyBuffer = 1;
- while (i < endoffset)
- {
- mmfile_seek (fp, i, MMFILE_SEEK_SET);
- readed = mmfile_read (fp, buffer, _MMFILE_IMY_TAG_BUFFER_LENGTH);
- if (readed < 0)
- {
- debug_error ( "read error. size = %d. Maybe end of file.\n", readed);
- ret = 0;
- break;
- }
-
- j = 0;
- while (j < readed)
- {
- if ( *(buffer+j) == 0x3a )
- {
- isKeyBuffer = 0;
- }
- else if ( *(buffer+j) == 0x0d )
- {
- }
- else if ( *(buffer+j) == 0x0a )
- {
- isKeyBuffer = 1;
- isDone = 1;
- }
- else
- {
- if (isKeyBuffer)
- {
- if (imy_key_buffer_index < _MMFILE_IMY_KEY_BUFFER_LENGTH)
- {
- imy_key_buffer[imy_key_buffer_index++] = *(buffer+j);
- }
-
- }
- else
- {
- if (imy_value_buffer_index < _MMFILE_IMY_VALUE_BUFFER_LENGTH)
- {
- imy_value_buffer[imy_value_buffer_index++] = *(buffer+j);
- }
- }
- }
-
- if (isDone)
- {
- if (!strncmp (imy_key_buffer, "NAME", 4))
- {
- if(tags->title != NULL)
+ MMFileIOHandle *fp = NULL;
+ unsigned char buffer[_MMFILE_IMY_TAG_BUFFER_LENGTH] = {0, };
+ long long filesize = 0;
+ unsigned int startoffset = 0;
+ unsigned int endoffset = 0, i = 0;
+ int readed = 0, j = 0;
+ char imy_key_buffer[_MMFILE_IMY_KEY_BUFFER_LENGTH] = {0, };
+ unsigned int imy_key_buffer_index = 0;
+ char imy_value_buffer[_MMFILE_IMY_VALUE_BUFFER_LENGTH] = {0, };
+ unsigned int imy_value_buffer_index = 0;
+ int isKeyBuffer = 1;
+ int isDone = 0;
+
+ int ret = MMFILE_FORMAT_FAIL;
+
+ if (!uriname || !tags) {
+ debug_error("uriname or tags is NULL\n");
+ return MMFILE_FORMAT_FAIL;
+ }
+
+ ret = mmfile_open(&fp, uriname, MMFILE_RDONLY);
+ if (ret == MMFILE_UTIL_FAIL) {
+ debug_error("open failed.\n");
+ return MMFILE_FORMAT_FAIL;
+ }
+
+ mmfile_seek(fp, 0, MMFILE_SEEK_END);
+ filesize = mmfile_tell(fp);
+ mmfile_seek(fp, 0, MMFILE_SEEK_SET);
+
+ if (filesize < _MMFILE_IMY_HEADER_LENGTH) {
+ debug_error("header is too small.\n");
+ ret = MMFILE_FORMAT_FAIL;
+ goto exit;
+ }
+
+ /* set begin and end point at the file */
+ startoffset = 0;
+ endoffset = filesize;
+
+ i = startoffset;
+ isKeyBuffer = 1;
+ while (i < endoffset) {
+ mmfile_seek(fp, i, MMFILE_SEEK_SET);
+ readed = mmfile_read(fp, buffer, _MMFILE_IMY_TAG_BUFFER_LENGTH);
+ if (readed < 0) {
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
+ ret = 0;
+ break;
+ }
+
+ j = 0;
+ while (j < readed) {
+ if (*(buffer + j) == 0x3a) {
+ isKeyBuffer = 0;
+ } else if (*(buffer + j) == 0x0d) {
+ } else if (*(buffer + j) == 0x0a) {
+ isKeyBuffer = 1;
+ isDone = 1;
+ } else {
+ if (isKeyBuffer) {
+ if (imy_key_buffer_index < _MMFILE_IMY_KEY_BUFFER_LENGTH) {
+ imy_key_buffer[imy_key_buffer_index++] = *(buffer + j);
+ }
+
+ } else {
+ if (imy_value_buffer_index < _MMFILE_IMY_VALUE_BUFFER_LENGTH) {
+ imy_value_buffer[imy_value_buffer_index++] = *(buffer + j);
+ }
+ }
+ }
+
+ if (isDone) {
+ if (!strncmp(imy_key_buffer, "NAME", 4)) {
+ if (tags->title != NULL)
mmfile_free(tags->title);
- tags->title = mmfile_strdup (imy_value_buffer);
- }
- else if (!strncmp (imy_key_buffer, "COMPOSER", 8))
- {
- if(tags->composer != NULL)
+ tags->title = mmfile_strdup(imy_value_buffer);
+ } else if (!strncmp(imy_key_buffer, "COMPOSER", 8)) {
+ if (tags->composer != NULL)
mmfile_free(tags->composer);
- tags->composer = mmfile_strdup (imy_value_buffer);
- }
- else if (!strncmp (imy_key_buffer, "COPYRIGHT", 9))
- {
- if(tags->copyright != NULL)
+ tags->composer = mmfile_strdup(imy_value_buffer);
+ } else if (!strncmp(imy_key_buffer, "COPYRIGHT", 9)) {
+ if (tags->copyright != NULL)
mmfile_free(tags->copyright);
- tags->copyright = mmfile_strdup (imy_value_buffer);
- }
-
- memset (imy_key_buffer, 0x00, _MMFILE_IMY_KEY_BUFFER_LENGTH);
- memset (imy_value_buffer, 0x00, _MMFILE_IMY_VALUE_BUFFER_LENGTH);
- imy_key_buffer_index = 0;
- imy_value_buffer_index = 0;
- isDone = 0;
- }
-
- j++;
- }
-
- memset (buffer, 0x00, _MMFILE_IMY_TAG_BUFFER_LENGTH);
-
- i = i + j;
- }
+ tags->copyright = mmfile_strdup(imy_value_buffer);
+ }
+
+ memset(imy_key_buffer, 0x00, _MMFILE_IMY_KEY_BUFFER_LENGTH);
+ memset(imy_value_buffer, 0x00, _MMFILE_IMY_VALUE_BUFFER_LENGTH);
+ imy_key_buffer_index = 0;
+ imy_value_buffer_index = 0;
+ isDone = 0;
+ }
+
+ j++;
+ }
+
+ memset(buffer, 0x00, _MMFILE_IMY_TAG_BUFFER_LENGTH);
+
+ i = i + j;
+ }
exit:
- mmfile_close (fp);
- return ret;
+ mmfile_close(fp);
+ return ret;
}
static unsigned char *
-__get_load_memory (char *src, int *out_size)
+__get_load_memory(char *src, int *out_size)
{
unsigned char *buf = NULL;
MMFileIOHandle *fp = NULL;
long long src_size = 0L;
- int readed =0;
+ int readed = 0;
int ret = 0;
/*open*/
- ret = mmfile_open (&fp, src, MMFILE_RDONLY);
+ ret = mmfile_open(&fp, src, MMFILE_RDONLY);
if (ret == MMFILE_UTIL_FAIL) {
- debug_error ( "open failed.\n");
+ debug_error("open failed.\n");
return NULL;
}
/*get file size*/
- mmfile_seek (fp, 0L, MMFILE_SEEK_END);
- src_size = mmfile_tell (fp);
- mmfile_seek (fp, 0L, MMFILE_SEEK_SET);
+ mmfile_seek(fp, 0L, MMFILE_SEEK_END);
+ src_size = mmfile_tell(fp);
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
if (src_size <= 0) {
- debug_error ("failed to get file size.\n");
+ debug_error("failed to get file size.\n");
goto failed;
}
/*alloc read buffer*/
- if ((buf = mmfile_malloc (src_size)) == NULL) {
- debug_error ( "memory allocation failed.\n");
+ if ((buf = mmfile_malloc(src_size)) == NULL) {
+ debug_error("memory allocation failed.\n");
goto failed;
}
/*read data*/
- if ((readed = mmfile_read (fp, buf, src_size) ) != src_size) {
- debug_error ( "read error. size = %d\n", readed);
+ if ((readed = mmfile_read(fp, buf, src_size)) != src_size) {
+ debug_error("read error. size = %d\n", readed);
goto failed;
}
*out_size = (int)src_size;
- mmfile_close (fp);
+ mmfile_close(fp);
return buf;
-
+
failed:
- if (buf) mmfile_free (buf);
- if (fp) mmfile_close (fp);
+ if (buf) mmfile_free(buf);
+ if (fp) mmfile_close(fp);
return NULL;
}
static int
-__is_good_imelody (unsigned char *src, unsigned int size)
+__is_good_imelody(unsigned char *src, unsigned int size)
{
- int i, j;
+ unsigned int i, j;
int key_len;
int is_found;
unsigned char *p;
- int num = sizeof (g_imy_key_str) / sizeof (g_imy_key_str[0]);
+ unsigned int num = sizeof(g_imy_key_str) / sizeof(g_imy_key_str[0]);
for (i = 0; i < num; i++) {
- key_len = strlen (g_imy_key_str[i]);
+ key_len = strlen(g_imy_key_str[i]);
p = src;
is_found = 0;
for (j = 0; j <= size - key_len; j++, p++) {
- if (memcmp (g_imy_key_str[i], p, key_len) == 0) {
+ if (memcmp(g_imy_key_str[i], p, key_len) == 0) {
is_found = 1;
break;
}
}
- if (is_found) continue; else return MMFILE_FORMAT_FAIL;
+ if (is_found) continue;
+ else return MMFILE_FORMAT_FAIL;
}
return MMFILE_FORMAT_SUCCESS;
}
-static unsigned char*
-__AvConvertIMelody2MIDI(char* pMelodyBuf, unsigned int* pBufLen)
+static unsigned char *
+__AvConvertIMelody2MIDI(char *pMelodyBuf, unsigned int *pBufLen)
{
- unsigned char* pConvertBuf;
- char* pStart;
- char* pMelodyStart;
+ unsigned char *pConvertBuf;
+ char *pStart;
+ char *pMelodyStart;
char noteBase[6];
int octaveCount;
int octaveValue;
@@ -552,17 +529,15 @@ __AvConvertIMelody2MIDI(char* pMelodyBuf, unsigned int* pBufLen)
char vol = '%';
int volInterval = 0;
- for(count = 0;count < AV_MIDI_NOTE_MAX;count++)
- {
+ for (count = 0; count < AV_MIDI_NOTE_MAX; count++) {
restSpec[count] = 0;
durationSpec[count] = 0;
}
- for(octaveCount = 0;octaveCount < AV_MIDI_NOTE_MAX;octaveCount++)
+ for (octaveCount = 0; octaveCount < AV_MIDI_NOTE_MAX; octaveCount++)
octave[octaveCount] = '%';
- for(MelodyCount = 0;MelodyCount < AV_MIDI_NOTE_MAX;MelodyCount++)
- {
+ for (MelodyCount = 0; MelodyCount < AV_MIDI_NOTE_MAX; MelodyCount++) {
Melody[MelodyCount].flat_sharp = '%';
Melody[MelodyCount].note = '%';
Melody[MelodyCount].duration = '%';
@@ -572,8 +547,7 @@ __AvConvertIMelody2MIDI(char* pMelodyBuf, unsigned int* pBufLen)
Melody[MelodyCount].vol = '%';
}
- for(MelodyCount = 0;MelodyCount < AV_MIDI_NOTE_MAX;MelodyCount++)
- {
+ for (MelodyCount = 0; MelodyCount < AV_MIDI_NOTE_MAX; MelodyCount++) {
noteData[MelodyCount].note = 0;
noteData[MelodyCount].duration_on = 0;
noteData[MelodyCount].duration_off = 0;
@@ -591,8 +565,7 @@ __AvConvertIMelody2MIDI(char* pMelodyBuf, unsigned int* pBufLen)
tempoValue = __AvMIDISetBeat(pMelodyBuf);
- for(number = 0;tempoValue != 0;number++)
- {
+ for (number = 0; tempoValue != 0; number++) {
tempoData[0] = tempoValue % 16;
tempoValue = tempoValue / 16;
@@ -601,18 +574,17 @@ __AvConvertIMelody2MIDI(char* pMelodyBuf, unsigned int* pBufLen)
tempoData[2] = tempoData[0] + tempoData[1] * 16;
- midiData[42-number] = tempoData[2];
+ midiData[42 - number] = tempoData[2];
}
pMelodyBuf = pStart;
- while(!(*pMelodyBuf == '@' || (*pMelodyBuf == 'E' && *(pMelodyBuf+2) == 'D')))
+ while (!(*pMelodyBuf == '@' || (*pMelodyBuf == 'E' && *(pMelodyBuf + 2) == 'D')))
pMelodyBuf++;
pMelodyBuf++;
- if(*pMelodyBuf >= '1' && *pMelodyBuf <= '9')
- {
+ if (*pMelodyBuf >= '1' && *pMelodyBuf <= '9') {
repeat = *pMelodyBuf - '0';
pMelodyBuf++;
@@ -624,7 +596,7 @@ __AvConvertIMelody2MIDI(char* pMelodyBuf, unsigned int* pBufLen)
pMelodyBuf = pMelodyBuf + 42;
- while(!(*pMelodyBuf == 'M' && *(pMelodyBuf+5) == 'Y' && *(pMelodyBuf+6) == ':')) //2007-02-28 AVMS_Sound:k2bogus - UMTS200073205;imy play, [MELODY:] extract fix
+ while (!(*pMelodyBuf == 'M' && *(pMelodyBuf + 5) == 'Y' && *(pMelodyBuf + 6) == ':')) /*2007-02-28 AVMS_Sound:k2bogus - UMTS200073205;imy play, [MELODY:] extract fix */
pMelodyBuf++;
pMelodyBuf = pMelodyBuf + 6;
@@ -635,60 +607,52 @@ __AvConvertIMelody2MIDI(char* pMelodyBuf, unsigned int* pBufLen)
* why? mobileBAE player stopped at newline.
* 2009/08/12
*/
- while(!((*pMelodyBuf == 'E' && *(pMelodyBuf+2) == 'D') || (*pMelodyBuf == '\n')))
- {
- if(noteCount>=AV_MIDI_NOTE_MAX)
- {
- debug_warning ("__AvConvertIMelody2MIDI : noteCount>=AV_MIDI_NOTE_MAX\n");
+ while (!((*pMelodyBuf == 'E' && *(pMelodyBuf + 2) == 'D') || (*pMelodyBuf == '\n'))) {
+ if (noteCount >= AV_MIDI_NOTE_MAX) {
+ debug_warning("__AvConvertIMelody2MIDI : noteCount>=AV_MIDI_NOTE_MAX\n");
break;
}
-
+
pMelodyBuf++;
-
- if(*pMelodyBuf == '*')
- {
+
+ if (*pMelodyBuf == '*') {
pMelodyBuf++;
- if(*pMelodyBuf >= '0' && *pMelodyBuf <= '8')
+ if (*pMelodyBuf >= '0' && *pMelodyBuf <= '8')
octave[noteCount] = *pMelodyBuf;
}
- if(*pMelodyBuf == '#' || *pMelodyBuf == '&')
+ if (*pMelodyBuf == '#' || *pMelodyBuf == '&')
Melody[noteCount].flat_sharp = *pMelodyBuf;
- if(*pMelodyBuf == 'r')
- {
+ if (*pMelodyBuf == 'r') {
pMelodyBuf++;
- if(*pMelodyBuf >= '0' && *pMelodyBuf <= '5')
- {
+ if (*pMelodyBuf >= '0' && *pMelodyBuf <= '5') {
Melody[noteCount].rest = *pMelodyBuf;
pMelodyBuf++;
- if(*pMelodyBuf == '.' || *pMelodyBuf == ':' || *pMelodyBuf == ';')
+ if (*pMelodyBuf == '.' || *pMelodyBuf == ':' || *pMelodyBuf == ';')
Melody[noteCount].rest_specifier = *pMelodyBuf;
}
}
-
- if(*pMelodyBuf == 'V')
- {
+
+ if (*pMelodyBuf == 'V') {
pMelodyBuf++;
- if(*pMelodyBuf == '+' || *pMelodyBuf == '-')
+ if (*pMelodyBuf == '+' || *pMelodyBuf == '-')
Melody[noteCount].vol = *pMelodyBuf;
}
- if(*pMelodyBuf >= 'a' && *pMelodyBuf <= 'g')
- {
+ if (*pMelodyBuf >= 'a' && *pMelodyBuf <= 'g') {
Melody[noteCount].note = *pMelodyBuf;
pMelodyBuf++;
-
- if(*pMelodyBuf >= '0' && *pMelodyBuf <= '5')
- {
+
+ if (*pMelodyBuf >= '0' && *pMelodyBuf <= '5') {
Melody[noteCount].duration = *pMelodyBuf;
pMelodyBuf++;
- if(*pMelodyBuf == '.' || *pMelodyBuf == ':' || *pMelodyBuf == ';')
+ if (*pMelodyBuf == '.' || *pMelodyBuf == ':' || *pMelodyBuf == ';')
Melody[noteCount].duration_specifier = *pMelodyBuf;
else
@@ -699,81 +663,89 @@ __AvConvertIMelody2MIDI(char* pMelodyBuf, unsigned int* pBufLen)
}
}
- for(octaveCount = 1;octaveCount < noteCount;octaveCount++)
- {
- if(octave[octaveCount] == '%')
- octave[octaveCount] = octave[octaveCount-1];
+ for (octaveCount = 1; octaveCount < noteCount; octaveCount++) {
+ if (octave[octaveCount] == '%')
+ octave[octaveCount] = octave[octaveCount - 1];
}
- for(number = 0;number < noteCount;number++)
- {
- if(octave[0] == '%' && octave[number] == '%')
+ for (number = 0; number < noteCount; number++) {
+ if (octave[0] == '%' && octave[number] == '%')
octaveValue = 4;
-
+
else
octaveValue = octave[number] - '0';
octaveValue = octaveValue * 12;
- if(Melody[number].flat_sharp == '#')
- {
- switch(Melody[number].note)
- {
- case 'c': noteData[number].note = octaveValue + 1;
- break;
- case 'd': noteData[number].note = octaveValue + 3;
- break;
- case 'f': noteData[number].note = octaveValue + 6;
- break;
- case 'g': noteData[number].note = octaveValue + 8;
- break;
- case 'a': noteData[number].note = octaveValue + 10;
- break;
- default :
- break;
+ if (Melody[number].flat_sharp == '#') {
+ switch (Melody[number].note) {
+ case 'c':
+ noteData[number].note = octaveValue + 1;
+ break;
+ case 'd':
+ noteData[number].note = octaveValue + 3;
+ break;
+ case 'f':
+ noteData[number].note = octaveValue + 6;
+ break;
+ case 'g':
+ noteData[number].note = octaveValue + 8;
+ break;
+ case 'a':
+ noteData[number].note = octaveValue + 10;
+ break;
+ default:
+ break;
}
}
- else
- if(Melody[number].flat_sharp == '&')
- {
- switch(Melody[number].note)
- {
- case 'd': noteData[number].note = octaveValue + 1;
- break;
- case 'e': noteData[number].note = octaveValue + 3;
- break;
- case 'g': noteData[number].note = octaveValue + 6;
- break;
- case 'a': noteData[number].note = octaveValue + 8;
- break;
- case 'b': noteData[number].note = octaveValue + 10;
- break;
- default :
- break;
+ else if (Melody[number].flat_sharp == '&') {
+ switch (Melody[number].note) {
+ case 'd':
+ noteData[number].note = octaveValue + 1;
+ break;
+ case 'e':
+ noteData[number].note = octaveValue + 3;
+ break;
+ case 'g':
+ noteData[number].note = octaveValue + 6;
+ break;
+ case 'a':
+ noteData[number].note = octaveValue + 8;
+ break;
+ case 'b':
+ noteData[number].note = octaveValue + 10;
+ break;
+ default:
+ break;
}
}
- else
- {
- switch(Melody[number].note)
- {
- case 'c': noteData[number].note = octaveValue;
- break;
- case 'd': noteData[number].note = octaveValue + 2;
- break;
- case 'e': noteData[number].note = octaveValue + 4;
- break;
- case 'f': noteData[number].note = octaveValue + 5;
- break;
- case 'g': noteData[number].note = octaveValue + 7;
- break;
- case 'a': noteData[number].note = octaveValue + 9;
- break;
- case 'b': noteData[number].note = octaveValue + 11;
- break;
- default :
- break;
+ else {
+ switch (Melody[number].note) {
+ case 'c':
+ noteData[number].note = octaveValue;
+ break;
+ case 'd':
+ noteData[number].note = octaveValue + 2;
+ break;
+ case 'e':
+ noteData[number].note = octaveValue + 4;
+ break;
+ case 'f':
+ noteData[number].note = octaveValue + 5;
+ break;
+ case 'g':
+ noteData[number].note = octaveValue + 7;
+ break;
+ case 'a':
+ noteData[number].note = octaveValue + 9;
+ break;
+ case 'b':
+ noteData[number].note = octaveValue + 11;
+ break;
+ default:
+ break;
}
}
}
@@ -782,448 +754,456 @@ __AvConvertIMelody2MIDI(char* pMelodyBuf, unsigned int* pBufLen)
style = __AvMIDISetStyle(pMelodyBuf);
- for(number = 0;number < noteCount;number++)
- {
- if(style == '0')
- {
- switch(Melody[number].duration)
- {
- case '0': noteData[number].duration_on = 183;
- noteData[number].duration_off = 9;
- break;
- case '1': noteData[number].duration_on = 91;
- noteData[number].duration_off = 5;
- break;
- case '2': noteData[number].duration_on = 46;
- noteData[number].duration_off = 2;
- break;
- case '3': noteData[number].duration_on = 23;
- noteData[number].duration_off = 1;
- break;
- case '4': noteData[number].duration_on = 11;
- noteData[number].duration_off = 1;
- break;
- case '5': noteData[number].duration_on = 5;
- noteData[number].duration_off = 1;
- break;
- default :
- break;
+ for (number = 0; number < noteCount; number++) {
+ if (style == '0') {
+ switch (Melody[number].duration) {
+ case '0':
+ noteData[number].duration_on = 183;
+ noteData[number].duration_off = 9;
+ break;
+ case '1':
+ noteData[number].duration_on = 91;
+ noteData[number].duration_off = 5;
+ break;
+ case '2':
+ noteData[number].duration_on = 46;
+ noteData[number].duration_off = 2;
+ break;
+ case '3':
+ noteData[number].duration_on = 23;
+ noteData[number].duration_off = 1;
+ break;
+ case '4':
+ noteData[number].duration_on = 11;
+ noteData[number].duration_off = 1;
+ break;
+ case '5':
+ noteData[number].duration_on = 5;
+ noteData[number].duration_off = 1;
+ break;
+ default:
+ break;
}
}
- else
- if(style == '1')
- {
- switch(Melody[number].duration)
- {
- case '0': noteData[number].duration_on = 192;
- noteData[number].duration_off = 0;
- break;
- case '1': noteData[number].duration_on = 96;
- noteData[number].duration_off = 0;
- break;
- case '2': noteData[number].duration_on = 48;
- noteData[number].duration_off = 0;
- break;
- case '3': noteData[number].duration_on = 24;
- noteData[number].duration_off = 0;
- break;
- case '4': noteData[number].duration_on = 12;
- noteData[number].duration_off = 0;
- break;
- case '5': noteData[number].duration_on = 6;
- noteData[number].duration_off = 0;
- break;
- default :
- break;
+ else if (style == '1') {
+ switch (Melody[number].duration) {
+ case '0':
+ noteData[number].duration_on = 192;
+ noteData[number].duration_off = 0;
+ break;
+ case '1':
+ noteData[number].duration_on = 96;
+ noteData[number].duration_off = 0;
+ break;
+ case '2':
+ noteData[number].duration_on = 48;
+ noteData[number].duration_off = 0;
+ break;
+ case '3':
+ noteData[number].duration_on = 24;
+ noteData[number].duration_off = 0;
+ break;
+ case '4':
+ noteData[number].duration_on = 12;
+ noteData[number].duration_off = 0;
+ break;
+ case '5':
+ noteData[number].duration_on = 6;
+ noteData[number].duration_off = 0;
+ break;
+ default:
+ break;
}
}
- else
- {
- switch(Melody[number].duration)
- {
- case '0': noteData[number].duration_on = 96;
- noteData[number].duration_off = 96;
- break;
- case '1': noteData[number].duration_on = 48;
- noteData[number].duration_off = 48;
- break;
- case '2': noteData[number].duration_on = 24;
- noteData[number].duration_off = 24;
- break;
- case '3': noteData[number].duration_on = 12;
- noteData[number].duration_off = 12;
- break;
- case '4': noteData[number].duration_on = 6;
- noteData[number].duration_off = 6;
- break;
- case '5': noteData[number].duration_on = 3;
- noteData[number].duration_off = 3;
- break;
- default :
- break;
+ else {
+ switch (Melody[number].duration) {
+ case '0':
+ noteData[number].duration_on = 96;
+ noteData[number].duration_off = 96;
+ break;
+ case '1':
+ noteData[number].duration_on = 48;
+ noteData[number].duration_off = 48;
+ break;
+ case '2':
+ noteData[number].duration_on = 24;
+ noteData[number].duration_off = 24;
+ break;
+ case '3':
+ noteData[number].duration_on = 12;
+ noteData[number].duration_off = 12;
+ break;
+ case '4':
+ noteData[number].duration_on = 6;
+ noteData[number].duration_off = 6;
+ break;
+ case '5':
+ noteData[number].duration_on = 3;
+ noteData[number].duration_off = 3;
+ break;
+ default:
+ break;
}
}
- switch(Melody[number].duration)
- {
- case '0': durationSpec[number] = 192;
- break;
- case '1': durationSpec[number] = 96;
- break;
- case '2': durationSpec[number] = 48;
- break;
- case '3': durationSpec[number] = 24;
- break;
- case '4': durationSpec[number] = 12;
- break;
- case '5': durationSpec[number] = 6;
- break;
- default :
- break;
+ switch (Melody[number].duration) {
+ case '0':
+ durationSpec[number] = 192;
+ break;
+ case '1':
+ durationSpec[number] = 96;
+ break;
+ case '2':
+ durationSpec[number] = 48;
+ break;
+ case '3':
+ durationSpec[number] = 24;
+ break;
+ case '4':
+ durationSpec[number] = 12;
+ break;
+ case '5':
+ durationSpec[number] = 6;
+ break;
+ default:
+ break;
}
- if(Melody[number].duration_specifier != '%')
- {
- switch(Melody[number].duration_specifier)
- {
- case '.': noteData[number].duration_on += (durationSpec[number] / 2);
- break;
- case ':': noteData[number].duration_on += durationSpec[number];
- break;
- case ';': noteData[number].duration_on -= (durationSpec[number] / 3);
- break;
- default :
- break;
+ if (Melody[number].duration_specifier != '%') {
+ switch (Melody[number].duration_specifier) {
+ case '.':
+ noteData[number].duration_on += (durationSpec[number] / 2);
+ break;
+ case ':':
+ noteData[number].duration_on += durationSpec[number];
+ break;
+ case ';':
+ noteData[number].duration_on -= (durationSpec[number] / 3);
+ break;
+ default:
+ break;
}
- if(noteData[number].duration_on > MIDI_MAX)
+ if (noteData[number].duration_on > MIDI_MAX)
noteData[number].duration_on = MIDI_LIMIT;
}
}
- for(number = 1;number < noteCount;number++)
- {
- if(Melody[number].rest >= '0' && Melody[number].rest <= '5')
- {
- switch(Melody[number].rest)
- {
- case '0': noteData[number-1].duration_off += 192;
- restSpec[number] = 192;
- break;
- case '1': noteData[number-1].duration_off += 96;
- restSpec[number] = 96;
- break;
- case '2': noteData[number-1].duration_off += 48;
- restSpec[number] = 48;
- break;
- case '3': noteData[number-1].duration_off += 24;
- restSpec[number] = 24;
- break;
- case '4': noteData[number-1].duration_off += 12;
- restSpec[number] = 12;
- break;
- case '5': noteData[number-1].duration_off += 6;
- restSpec[number] = 6;
- break;
- default :
- break;
+ for (number = 1; number < noteCount; number++) {
+ if (Melody[number].rest >= '0' && Melody[number].rest <= '5') {
+ switch (Melody[number].rest) {
+ case '0':
+ noteData[number - 1].duration_off += 192;
+ restSpec[number] = 192;
+ break;
+ case '1':
+ noteData[number - 1].duration_off += 96;
+ restSpec[number] = 96;
+ break;
+ case '2':
+ noteData[number - 1].duration_off += 48;
+ restSpec[number] = 48;
+ break;
+ case '3':
+ noteData[number - 1].duration_off += 24;
+ restSpec[number] = 24;
+ break;
+ case '4':
+ noteData[number - 1].duration_off += 12;
+ restSpec[number] = 12;
+ break;
+ case '5':
+ noteData[number - 1].duration_off += 6;
+ restSpec[number] = 6;
+ break;
+ default:
+ break;
}
- if(noteData[number-1].duration_off > MIDI_MAX && Melody[number].rest_specifier == '%')
- noteData[number-1].duration_off = MIDI_LIMIT;
+ if (noteData[number - 1].duration_off > MIDI_MAX && Melody[number].rest_specifier == '%')
+ noteData[number - 1].duration_off = MIDI_LIMIT;
}
- if(Melody[number].rest_specifier != '%')
- {
- switch(Melody[number].rest_specifier)
- {
- case '.': noteData[number-1].duration_off += (restSpec[number] / 2);
- break;
- case ':': noteData[number-1].duration_off += restSpec[number];
- break;
- case ';': noteData[number-1].duration_off -= (restSpec[number] / 3);
- break;
- default :
- break;
+ if (Melody[number].rest_specifier != '%') {
+ switch (Melody[number].rest_specifier) {
+ case '.':
+ noteData[number - 1].duration_off += (restSpec[number] / 2);
+ break;
+ case ':':
+ noteData[number - 1].duration_off += restSpec[number];
+ break;
+ case ';':
+ noteData[number - 1].duration_off -= (restSpec[number] / 3);
+ break;
+ default:
+ break;
}
- if(noteData[number-1].duration_off > MIDI_MAX)
- noteData[number-1].duration_off = MIDI_LIMIT;
+ if (noteData[number - 1].duration_off > MIDI_MAX)
+ noteData[number - 1].duration_off = MIDI_LIMIT;
}
}
- if(Melody[0].rest >= '0' && Melody[0].rest <= '5')
- {
- switch(Melody[0].rest)
- {
- case '0': midiData[50] += 192;
- restSpec[0] = 192;
- break;
- case '1': midiData[50] += 96;
- restSpec[0] = 96;
- break;
- case '2': midiData[50] += 48;
- restSpec[0] = 48;
- break;
- case '3': midiData[50] += 24;
- restSpec[0] = 24;
- break;
- case '4': midiData[50] += 12;
- restSpec[0] = 12;
- break;
- case '5': midiData[50] += 6;
- restSpec[0] = 6;
- break;
- default :
- break;
+ if (Melody[0].rest >= '0' && Melody[0].rest <= '5') {
+ switch (Melody[0].rest) {
+ case '0':
+ midiData[50] += 192;
+ restSpec[0] = 192;
+ break;
+ case '1':
+ midiData[50] += 96;
+ restSpec[0] = 96;
+ break;
+ case '2':
+ midiData[50] += 48;
+ restSpec[0] = 48;
+ break;
+ case '3':
+ midiData[50] += 24;
+ restSpec[0] = 24;
+ break;
+ case '4':
+ midiData[50] += 12;
+ restSpec[0] = 12;
+ break;
+ case '5':
+ midiData[50] += 6;
+ restSpec[0] = 6;
+ break;
+ default:
+ break;
}
-
- if(Melody[0].rest_specifier != '%')
- {
- switch(Melody[0].rest_specifier)
- {
- case '.': midiData[50] += (restSpec[0] / 2);
- break;
- case ':': midiData[50] += restSpec[0];
- break;
- case ';': midiData[50] -= (restSpec[0] / 3);
- break;
- default :
- break;
+
+ if (Melody[0].rest_specifier != '%') {
+ switch (Melody[0].rest_specifier) {
+ case '.':
+ midiData[50] += (restSpec[0] / 2);
+ break;
+ case ':':
+ midiData[50] += restSpec[0];
+ break;
+ case ';':
+ midiData[50] -= (restSpec[0] / 3);
+ break;
+ default:
+ break;
}
}
- if(midiData[50] > MIDI_LIMIT)
+ if (midiData[50] > MIDI_LIMIT)
midiData[50] = MIDI_LIMIT;
- if(Melody[0].rest == '0')
+ if (Melody[0].rest == '0')
midiData[50] = MIDI_LIMIT;
}
- for(number = 0;number < noteCount;number++)
- {
+ for (number = 0; number < noteCount; number++) {
noteBase[0] = noteData[number].note;
noteBase[2] = noteData[number].duration_on;
noteBase[3] = noteData[number].note;
noteBase[5] = noteData[number].duration_off;
- noteTotal[6*number] = noteBase[0];
- noteTotal[6*number+2] = noteBase[2];
- noteTotal[6*number+3] = noteBase[3];
- noteTotal[6*number+5] = noteBase[5];
- noteTotal[6*number+4] = 0;
+ noteTotal[6 * number] = noteBase[0];
+ noteTotal[6 * number + 2] = noteBase[2];
+ noteTotal[6 * number + 3] = noteBase[3];
+ noteTotal[6 * number + 5] = noteBase[5];
+ noteTotal[6 * number + 4] = 0;
- if(noteTotal[6*number+2] > MIDI_LIMIT)
- noteTotal[6*number+2] = MIDI_LIMIT;
+ if (noteTotal[6 * number + 2] > MIDI_LIMIT)
+ noteTotal[6 * number + 2] = MIDI_LIMIT;
- if(noteTotal[6*number+5] > MIDI_LIMIT)
- noteTotal[6*number+5] = MIDI_LIMIT;
+ if (noteTotal[6 * number + 5] > MIDI_LIMIT)
+ noteTotal[6 * number + 5] = MIDI_LIMIT;
}
- for(number = 1;number < noteCount;number++)
- {
+ for (number = 1; number < noteCount; number++) {
noteTotal[1] = 84;
- if(Melody[0].vol == '+')
+ if (Melody[0].vol == '+')
noteTotal[1] = 84 + VOL_INTERVAL;
- if(Melody[0].vol == '-')
+ if (Melody[0].vol == '-')
noteTotal[1] = 84 - VOL_INTERVAL;
- switch(Melody[number].vol)
- {
- case '+': noteTotal[6*number+1] = noteTotal[6*(number-1)+1] + VOL_INTERVAL;
- break;
- case '-': noteTotal[6*number+1] = noteTotal[6*(number-1)+1] - VOL_INTERVAL;
- break;
- default :
- break;
+ switch (Melody[number].vol) {
+ case '+':
+ noteTotal[6 * number + 1] = noteTotal[6 * (number - 1) + 1] + VOL_INTERVAL;
+ break;
+ case '-':
+ noteTotal[6 * number + 1] = noteTotal[6 * (number - 1) + 1] - VOL_INTERVAL;
+ break;
+ default:
+ break;
}
- if(noteTotal[6*number+1] > MIDI_LIMIT)
- noteTotal[6*number+1] = MIDI_LIMIT;
+ if (noteTotal[6 * number + 1] > MIDI_LIMIT)
+ noteTotal[6 * number + 1] = MIDI_LIMIT;
- if((noteTotal[6*(number-1)+1] == 0 || noteTotal[6*(number-1)+1] == 7) && Melody[number].vol == '-')
- noteTotal[6*number+1] = 0;
+ if ((noteTotal[6 * (number - 1) + 1] == 0 || noteTotal[6 * (number - 1) + 1] == 7) && Melody[number].vol == '-')
+ noteTotal[6 * number + 1] = 0;
- if(Melody[number].vol == '%')
- noteTotal[6*number+1] = noteTotal[6*(number-1)+1];
+ if (Melody[number].vol == '%')
+ noteTotal[6 * number + 1] = noteTotal[6 * (number - 1) + 1];
}
- for(number = 0;number < 6 * noteCount;number++)
- midiData[52+number] = noteTotal[number];
+ for (number = 0; number < 6 * noteCount; number++)
+ midiData[52 + number] = noteTotal[number];
- for(number = 6 * noteCount;number < 6 * noteCount * (repeat + 1);number++)
- {
+ for (number = 6 * noteCount; number < 6 * noteCount * (repeat + 1); number++) {
noteTotal[number] = noteTotal[repeatCount];
- midiData[52+number] = noteTotal[number];
+ midiData[52 + number] = noteTotal[number];
repeatCount++;
- if(repeatCount == 6 * noteCount)
+ if (repeatCount == 6 * noteCount)
repeatCount = 0;
}
- if(vol != '%')
- {
- switch(vol)
- {
- case '+': midiData[52+(6*noteCount+1)] = midiData[52+(6*(noteCount-1)+1)] + VOL_INTERVAL;
- break;
- case '-': midiData[52+(6*noteCount+1)] = midiData[52+(6*(noteCount-1)+1)] - VOL_INTERVAL;
- break;
- default :
- break;
+ if (vol != '%') {
+ switch (vol) {
+ case '+':
+ midiData[52 + (6 * noteCount + 1)] = midiData[52 + (6 * (noteCount - 1) + 1)] + VOL_INTERVAL;
+ break;
+ case '-':
+ midiData[52 + (6 * noteCount + 1)] = midiData[52 + (6 * (noteCount - 1) + 1)] - VOL_INTERVAL;
+ break;
+ default:
+ break;
}
- if(Melody[0].vol != '%')
- {
- switch(Melody[0].vol)
- {
- case '+': midiData[52+(6*noteCount+1)] += VOL_INTERVAL;
- break;
- case '-': midiData[52+(6*noteCount+1)] -= VOL_INTERVAL;
- break;
- default :
- break;
+ if (Melody[0].vol != '%') {
+ switch (Melody[0].vol) {
+ case '+':
+ midiData[52 + (6 * noteCount + 1)] += VOL_INTERVAL;
+ break;
+ case '-':
+ midiData[52 + (6 * noteCount + 1)] -= VOL_INTERVAL;
+ break;
+ default:
+ break;
}
}
- if(midiData[52+(6*noteCount+1)] > MIDI_LIMIT)
- midiData[52+(6*noteCount+1)] = MIDI_LIMIT;
+ if (midiData[52 + (6 * noteCount + 1)] > MIDI_LIMIT)
+ midiData[52 + (6 * noteCount + 1)] = MIDI_LIMIT;
- if((midiData[52+(6*(noteCount-1)+1)] == 0 || midiData[52+(6*(noteCount-1)+1)] == 7) && vol == '-')
- {
- midiData[52+(6*noteCount+1)] = 0;
+ if ((midiData[52 + (6 * (noteCount - 1) + 1)] == 0 || midiData[52 + (6 * (noteCount - 1) + 1)] == 7) && vol == '-') {
+ midiData[52 + (6 * noteCount + 1)] = 0;
- if(Melody[0].vol == '+')
- midiData[52+(6*noteCount+1)] = 12;
+ if (Melody[0].vol == '+')
+ midiData[52 + (6 * noteCount + 1)] = 12;
}
- if((midiData[52+(6*(noteCount-1)+1)] == 12 || midiData[52+(6*(noteCount-1)+1)] == 19) && vol == '-' && Melody[0].vol == '-')
- midiData[52+(6*noteCount+1)] = 0;
+ if ((midiData[52 + (6 * (noteCount - 1) + 1)] == 12 || midiData[52 + (6 * (noteCount - 1) + 1)] == 19) && vol == '-' && Melody[0].vol == '-')
+ midiData[52 + (6 * noteCount + 1)] = 0;
}
- else
- if(Melody[0].vol != '%' && vol == '%' && repeat != 0)
- {
- switch(Melody[0].vol)
- {
- case '+': midiData[52+(6*noteCount+1)] = midiData[52+(6*(noteCount-1)+1)] + VOL_INTERVAL;
- break;
- case '-': midiData[52+(6*noteCount+1)] = midiData[52+(6*(noteCount-1)+1)] - VOL_INTERVAL;
- break;
- default :
- break;
+ else if (Melody[0].vol != '%' && vol == '%' && repeat != 0) {
+ switch (Melody[0].vol) {
+ case '+':
+ midiData[52 + (6 * noteCount + 1)] = midiData[52 + (6 * (noteCount - 1) + 1)] + VOL_INTERVAL;
+ break;
+ case '-':
+ midiData[52 + (6 * noteCount + 1)] = midiData[52 + (6 * (noteCount - 1) + 1)] - VOL_INTERVAL;
+ break;
+ default:
+ break;
}
- if(midiData[52+(6*noteCount+1)] > MIDI_LIMIT)
- midiData[52+(6*noteCount+1)] = MIDI_LIMIT;
+ if (midiData[52 + (6 * noteCount + 1)] > MIDI_LIMIT)
+ midiData[52 + (6 * noteCount + 1)] = MIDI_LIMIT;
- if((midiData[52+(6*(noteCount-1)+1)] == 0 || midiData[52+(6*(noteCount-1)+1)] == 7) && Melody[0].vol == '-')
- midiData[52+(6*noteCount+1)] = 0;
+ if ((midiData[52 + (6 * (noteCount - 1) + 1)] == 0 || midiData[52 + (6 * (noteCount - 1) + 1)] == 7) && Melody[0].vol == '-')
+ midiData[52 + (6 * noteCount + 1)] = 0;
}
- else
- if(Melody[0].vol == '%' && vol == '%' && repeat != 0)
- midiData[52+(6*noteCount+1)] = midiData[52+(6*(noteCount-1)+1)];
+ else if (Melody[0].vol == '%' && vol == '%' && repeat != 0)
+ midiData[52 + (6 * noteCount + 1)] = midiData[52 + (6 * (noteCount - 1) + 1)];
- volInterval = midiData[52+(6*noteCount+1)] - midiData[53];
+ volInterval = midiData[52 + (6 * noteCount + 1)] - midiData[53];
- for(repeatCount = 0;repeatCount < repeat;repeatCount++)
- for(number = 6 * noteCount * repeatCount + 1;number < 6 * noteCount * (repeatCount + 1);number = number + 6)
- {
- midiData[52+(number+6*noteCount)] = midiData[52+number] + volInterval;
+ for (repeatCount = 0; repeatCount < repeat; repeatCount++)
+ for (number = 6 * noteCount * repeatCount + 1; number < 6 * noteCount * (repeatCount + 1); number = number + 6) {
+ midiData[52 + (number + 6 * noteCount)] = midiData[52 + number] + volInterval;
- if(midiData[52+number] + volInterval > MIDI_LIMIT)
- midiData[52+(number+6*noteCount)] = MIDI_LIMIT;
+ if (midiData[52 + number] + volInterval > MIDI_LIMIT)
+ midiData[52 + (number + 6 * noteCount)] = MIDI_LIMIT;
- if(midiData[52+number] < volInterval * (-1))
- midiData[52+(number+6*noteCount)] = 0;
+ if (midiData[52 + number] < volInterval * (-1))
+ midiData[52 + (number + 6 * noteCount)] = 0;
}
- for(number = 1;number < 6 * noteCount * (repeat + 1);number = number + 6)
- {
- if(midiData[52+number] > MIDI_LIMIT)
- midiData[52+number] = MIDI_LIMIT;
+ for (number = 1; number < 6 * noteCount * (repeat + 1); number = number + 6) {
+ if (midiData[52 + number] > MIDI_LIMIT)
+ midiData[52 + number] = MIDI_LIMIT;
}
pMelodyBuf = pMelodyStart;
count = noteCount;
- if(repeat != 0)
- {
- while(*pMelodyBuf != '@')
+ if (repeat != 0) {
+ while (*pMelodyBuf != '@')
pMelodyBuf++;
-
+
pMelodyBuf++;
- if(vol !='%')
+ if (vol != '%')
pMelodyBuf = pMelodyBuf + 2;
- while(!(*pMelodyBuf == '*' || *pMelodyBuf == '#' || *pMelodyBuf == '&' || *pMelodyBuf == 'r' || *pMelodyBuf == 'V' || *pMelodyBuf == 'E' || (*pMelodyBuf >= 'a' && *pMelodyBuf <= 'g')))
+ while (!(*pMelodyBuf == '*' || *pMelodyBuf == '#' || *pMelodyBuf == '&' || *pMelodyBuf == 'r' || *pMelodyBuf == 'V' || *pMelodyBuf == 'E' || (*pMelodyBuf >= 'a' && *pMelodyBuf <= 'g')))
pMelodyBuf++;
}
- if(*pMelodyBuf != 'E' && *pMelodyBuf != ':')
- {
+ if (*pMelodyBuf != 'E' && *pMelodyBuf != ':') {
pMelodyBuf--;
- while(*pMelodyBuf != 'E')
- {
- if(noteCount>=AV_MIDI_NOTE_MAX)
- {
- debug_warning ("__AvConvertIMelody2MIDI : noteCount>=AV_MIDI_NOTE_MAX\n");
+ while (*pMelodyBuf != 'E') {
+ if (noteCount >= AV_MIDI_NOTE_MAX) {
+ debug_warning("__AvConvertIMelody2MIDI : noteCount>=AV_MIDI_NOTE_MAX\n");
break;
}
-
+
pMelodyBuf++;
-
- if(*pMelodyBuf == '*')
- {
+
+ if (*pMelodyBuf == '*') {
pMelodyBuf++;
- if(*pMelodyBuf >= '0' && *pMelodyBuf <= '8')
+ if (*pMelodyBuf >= '0' && *pMelodyBuf <= '8')
octave[noteCount] = *pMelodyBuf;
}
- if(*pMelodyBuf == '#' || *pMelodyBuf == '&')
+ if (*pMelodyBuf == '#' || *pMelodyBuf == '&')
Melody[noteCount].flat_sharp = *pMelodyBuf;
- if(*pMelodyBuf == 'r')
- {
+ if (*pMelodyBuf == 'r') {
pMelodyBuf++;
- if(*pMelodyBuf >= '0' && *pMelodyBuf <= '5')
- {
+ if (*pMelodyBuf >= '0' && *pMelodyBuf <= '5') {
Melody[noteCount].rest = *pMelodyBuf;
pMelodyBuf++;
- if(*pMelodyBuf == '.' || *pMelodyBuf == ':' || *pMelodyBuf == ';')
+ if (*pMelodyBuf == '.' || *pMelodyBuf == ':' || *pMelodyBuf == ';')
Melody[noteCount].rest_specifier = *pMelodyBuf;
}
}
-
- if(*pMelodyBuf == 'V')
- {
+
+ if (*pMelodyBuf == 'V') {
pMelodyBuf++;
- if(*pMelodyBuf == '+' || *pMelodyBuf == '-')
+ if (*pMelodyBuf == '+' || *pMelodyBuf == '-')
Melody[noteCount].vol = *pMelodyBuf;
}
- if(*pMelodyBuf >= 'a' && *pMelodyBuf <= 'g')
- {
+ if (*pMelodyBuf >= 'a' && *pMelodyBuf <= 'g') {
Melody[noteCount].note = *pMelodyBuf;
pMelodyBuf++;
- if(*pMelodyBuf >= '0' && *pMelodyBuf <= '5')
- {
+ if (*pMelodyBuf >= '0' && *pMelodyBuf <= '5') {
Melody[noteCount].duration = *pMelodyBuf;
pMelodyBuf++;
- if(*pMelodyBuf == '.' || *pMelodyBuf == ':' || *pMelodyBuf == ';')
+ if (*pMelodyBuf == '.' || *pMelodyBuf == ':' || *pMelodyBuf == ';')
Melody[noteCount].duration_specifier = *pMelodyBuf;
else
@@ -1234,384 +1214,415 @@ __AvConvertIMelody2MIDI(char* pMelodyBuf, unsigned int* pBufLen)
}
}
- for(octaveCount = count; octaveCount < noteCount && octaveCount < AV_MIDI_NOTE_MAX; octaveCount++)
- {
- if(octave[octaveCount] == '%')
- octave[octaveCount] = octave[octaveCount-1];
+ for (octaveCount = count; octaveCount < noteCount && octaveCount < AV_MIDI_NOTE_MAX; octaveCount++) {
+ if (octave[octaveCount] == '%')
+ octave[octaveCount] = octave[octaveCount - 1];
}
-
- for(number = count; number < noteCount && number < AV_MIDI_NOTE_MAX; number++)
- {
+
+ for (number = count; number < noteCount && number < AV_MIDI_NOTE_MAX; number++) {
octaveValue = octave[number] - '0';
octaveValue = octaveValue * 12;
- if(Melody[number].flat_sharp == '#')
- {
- switch(Melody[number].note)
- {
- case 'c': noteData[number].note = octaveValue + 1;
- break;
- case 'd': noteData[number].note = octaveValue + 3;
- break;
- case 'f': noteData[number].note = octaveValue + 6;
- break;
- case 'g': noteData[number].note = octaveValue + 8;
- break;
- case 'a': noteData[number].note = octaveValue + 10;
- break;
- default :
- break;
+ if (Melody[number].flat_sharp == '#') {
+ switch (Melody[number].note) {
+ case 'c':
+ noteData[number].note = octaveValue + 1;
+ break;
+ case 'd':
+ noteData[number].note = octaveValue + 3;
+ break;
+ case 'f':
+ noteData[number].note = octaveValue + 6;
+ break;
+ case 'g':
+ noteData[number].note = octaveValue + 8;
+ break;
+ case 'a':
+ noteData[number].note = octaveValue + 10;
+ break;
+ default:
+ break;
}
}
- else
- if(Melody[number].flat_sharp == '&')
- {
- switch(Melody[number].note)
- {
- case 'd': noteData[number].note = octaveValue + 1;
- break;
- case 'e': noteData[number].note = octaveValue + 3;
- break;
- case 'g': noteData[number].note = octaveValue + 6;
- break;
- case 'a': noteData[number].note = octaveValue + 8;
- break;
- case 'b': noteData[number].note = octaveValue + 10;
- break;
- default :
- break;
+ else if (Melody[number].flat_sharp == '&') {
+ switch (Melody[number].note) {
+ case 'd':
+ noteData[number].note = octaveValue + 1;
+ break;
+ case 'e':
+ noteData[number].note = octaveValue + 3;
+ break;
+ case 'g':
+ noteData[number].note = octaveValue + 6;
+ break;
+ case 'a':
+ noteData[number].note = octaveValue + 8;
+ break;
+ case 'b':
+ noteData[number].note = octaveValue + 10;
+ break;
+ default:
+ break;
}
}
- else
- {
- switch(Melody[number].note)
- {
- case 'c': noteData[number].note = octaveValue;
- break;
- case 'd': noteData[number].note = octaveValue + 2;
- break;
- case 'e': noteData[number].note = octaveValue + 4;
- break;
- case 'f': noteData[number].note = octaveValue + 5;
- break;
- case 'g': noteData[number].note = octaveValue + 7;
- break;
- case 'a': noteData[number].note = octaveValue + 9;
- break;
- case 'b': noteData[number].note = octaveValue + 11;
- break;
- default :
- break;
+ else {
+ switch (Melody[number].note) {
+ case 'c':
+ noteData[number].note = octaveValue;
+ break;
+ case 'd':
+ noteData[number].note = octaveValue + 2;
+ break;
+ case 'e':
+ noteData[number].note = octaveValue + 4;
+ break;
+ case 'f':
+ noteData[number].note = octaveValue + 5;
+ break;
+ case 'g':
+ noteData[number].note = octaveValue + 7;
+ break;
+ case 'a':
+ noteData[number].note = octaveValue + 9;
+ break;
+ case 'b':
+ noteData[number].note = octaveValue + 11;
+ break;
+ default:
+ break;
}
}
- if(style == '0')
- {
- switch(Melody[number].duration)
- {
- case '0': noteData[number].duration_on = 183;
- noteData[number].duration_off = 9;
- break;
- case '1': noteData[number].duration_on = 91;
- noteData[number].duration_off = 5;
- break;
- case '2': noteData[number].duration_on = 46;
- noteData[number].duration_off = 2;
- break;
- case '3': noteData[number].duration_on = 23;
- noteData[number].duration_off = 1;
- break;
- case '4': noteData[number].duration_on = 11;
- noteData[number].duration_off = 1;
- break;
- case '5': noteData[number].duration_on = 5;
- noteData[number].duration_off = 1;
- break;
- default :
- break;
+ if (style == '0') {
+ switch (Melody[number].duration) {
+ case '0':
+ noteData[number].duration_on = 183;
+ noteData[number].duration_off = 9;
+ break;
+ case '1':
+ noteData[number].duration_on = 91;
+ noteData[number].duration_off = 5;
+ break;
+ case '2':
+ noteData[number].duration_on = 46;
+ noteData[number].duration_off = 2;
+ break;
+ case '3':
+ noteData[number].duration_on = 23;
+ noteData[number].duration_off = 1;
+ break;
+ case '4':
+ noteData[number].duration_on = 11;
+ noteData[number].duration_off = 1;
+ break;
+ case '5':
+ noteData[number].duration_on = 5;
+ noteData[number].duration_off = 1;
+ break;
+ default:
+ break;
}
}
- else
- if(style == '1')
- {
- switch(Melody[number].duration)
- {
- case '0': noteData[number].duration_on = 192;
- noteData[number].duration_off = 0;
- break;
- case '1': noteData[number].duration_on = 96;
- noteData[number].duration_off = 0;
- break;
- case '2': noteData[number].duration_on = 48;
- noteData[number].duration_off = 0;
- break;
- case '3': noteData[number].duration_on = 24;
- noteData[number].duration_off = 0;
- break;
- case '4': noteData[number].duration_on = 12;
- noteData[number].duration_off = 0;
- break;
- case '5': noteData[number].duration_on = 6;
- noteData[number].duration_off = 0;
- break;
- default :
- break;
+ else if (style == '1') {
+ switch (Melody[number].duration) {
+ case '0':
+ noteData[number].duration_on = 192;
+ noteData[number].duration_off = 0;
+ break;
+ case '1':
+ noteData[number].duration_on = 96;
+ noteData[number].duration_off = 0;
+ break;
+ case '2':
+ noteData[number].duration_on = 48;
+ noteData[number].duration_off = 0;
+ break;
+ case '3':
+ noteData[number].duration_on = 24;
+ noteData[number].duration_off = 0;
+ break;
+ case '4':
+ noteData[number].duration_on = 12;
+ noteData[number].duration_off = 0;
+ break;
+ case '5':
+ noteData[number].duration_on = 6;
+ noteData[number].duration_off = 0;
+ break;
+ default:
+ break;
}
}
- else
- {
- switch(Melody[number].duration)
- {
- case '0': noteData[number].duration_on = 96;
- noteData[number].duration_off = 96;
- break;
- case '1': noteData[number].duration_on = 48;
- noteData[number].duration_off = 48;
- break;
- case '2': noteData[number].duration_on = 24;
- noteData[number].duration_off = 24;
- break;
- case '3': noteData[number].duration_on = 12;
- noteData[number].duration_off = 12;
- break;
- case '4': noteData[number].duration_on = 6;
- noteData[number].duration_off = 6;
- break;
- case '5': noteData[number].duration_on = 3;
- noteData[number].duration_off = 3;
- break;
- default :
- break;
+ else {
+ switch (Melody[number].duration) {
+ case '0':
+ noteData[number].duration_on = 96;
+ noteData[number].duration_off = 96;
+ break;
+ case '1':
+ noteData[number].duration_on = 48;
+ noteData[number].duration_off = 48;
+ break;
+ case '2':
+ noteData[number].duration_on = 24;
+ noteData[number].duration_off = 24;
+ break;
+ case '3':
+ noteData[number].duration_on = 12;
+ noteData[number].duration_off = 12;
+ break;
+ case '4':
+ noteData[number].duration_on = 6;
+ noteData[number].duration_off = 6;
+ break;
+ case '5':
+ noteData[number].duration_on = 3;
+ noteData[number].duration_off = 3;
+ break;
+ default:
+ break;
}
}
-
- switch(Melody[number].duration)
- {
- case '0': durationSpec[number] = 192;
- break;
- case '1': durationSpec[number] = 96;
- break;
- case '2': durationSpec[number] = 48;
- break;
- case '3': durationSpec[number] = 24;
- break;
- case '4': durationSpec[number] = 12;
- break;
- case '5': durationSpec[number] = 6;
- break;
- default :
- break;
+
+ switch (Melody[number].duration) {
+ case '0':
+ durationSpec[number] = 192;
+ break;
+ case '1':
+ durationSpec[number] = 96;
+ break;
+ case '2':
+ durationSpec[number] = 48;
+ break;
+ case '3':
+ durationSpec[number] = 24;
+ break;
+ case '4':
+ durationSpec[number] = 12;
+ break;
+ case '5':
+ durationSpec[number] = 6;
+ break;
+ default:
+ break;
}
- if(Melody[number].duration_specifier != '%')
- {
- switch(Melody[number].duration_specifier)
- {
- case '.': noteData[number].duration_on += (durationSpec[number] / 2);
- break;
- case ':': noteData[number].duration_on += durationSpec[number];
- break;
- case ';': noteData[number].duration_on -= (durationSpec[number] / 3);
- break;
- default :
- break;
+ if (Melody[number].duration_specifier != '%') {
+ switch (Melody[number].duration_specifier) {
+ case '.':
+ noteData[number].duration_on += (durationSpec[number] / 2);
+ break;
+ case ':':
+ noteData[number].duration_on += durationSpec[number];
+ break;
+ case ';':
+ noteData[number].duration_on -= (durationSpec[number] / 3);
+ break;
+ default:
+ break;
}
- if(noteData[number].duration_on > MIDI_MAX)
- noteData[number].duration_on = MIDI_LIMIT;
+ if (noteData[number].duration_on > MIDI_MAX)
+ noteData[number].duration_on = MIDI_LIMIT;
}
}
- for(number = count + 1; number < noteCount && number < AV_MIDI_NOTE_MAX; number++)
- {
- if(Melody[number].rest >= '0' && Melody[number].rest <= '5')
- {
- switch(Melody[number].rest)
- {
- case '0': noteData[number-1].duration_off += 192;
- restSpec[number] = 192;
- break;
- case '1': noteData[number-1].duration_off += 96;
- restSpec[number] = 96;
- break;
- case '2': noteData[number-1].duration_off += 48;
- restSpec[number] = 48;
- break;
- case '3': noteData[number-1].duration_off += 24;
- restSpec[number] = 24;
- break;
- case '4': noteData[number-1].duration_off += 12;
- restSpec[number] = 12;
- break;
- case '5': noteData[number-1].duration_off += 6;
- restSpec[number] = 6;
- break;
- default :
- break;
+ for (number = count + 1; number < noteCount && number < AV_MIDI_NOTE_MAX; number++) {
+ if (Melody[number].rest >= '0' && Melody[number].rest <= '5') {
+ switch (Melody[number].rest) {
+ case '0':
+ noteData[number - 1].duration_off += 192;
+ restSpec[number] = 192;
+ break;
+ case '1':
+ noteData[number - 1].duration_off += 96;
+ restSpec[number] = 96;
+ break;
+ case '2':
+ noteData[number - 1].duration_off += 48;
+ restSpec[number] = 48;
+ break;
+ case '3':
+ noteData[number - 1].duration_off += 24;
+ restSpec[number] = 24;
+ break;
+ case '4':
+ noteData[number - 1].duration_off += 12;
+ restSpec[number] = 12;
+ break;
+ case '5':
+ noteData[number - 1].duration_off += 6;
+ restSpec[number] = 6;
+ break;
+ default:
+ break;
}
- if(noteData[number-1].duration_off > MIDI_MAX && Melody[number].rest_specifier == '%')
- noteData[number-1].duration_off = MIDI_LIMIT;
+ if (noteData[number - 1].duration_off > MIDI_MAX && Melody[number].rest_specifier == '%')
+ noteData[number - 1].duration_off = MIDI_LIMIT;
}
- if(Melody[number].rest_specifier != '%')
- {
- switch(Melody[number].rest_specifier)
- {
- case '.': noteData[number-1].duration_off += (restSpec[number] / 2);
- break;
- case ':': noteData[number-1].duration_off += restSpec[number];
- break;
- case ';': noteData[number-1].duration_off -= (restSpec[number] / 3);
- break;
- default :
- break;
+ if (Melody[number].rest_specifier != '%') {
+ switch (Melody[number].rest_specifier) {
+ case '.':
+ noteData[number - 1].duration_off += (restSpec[number] / 2);
+ break;
+ case ':':
+ noteData[number - 1].duration_off += restSpec[number];
+ break;
+ case ';':
+ noteData[number - 1].duration_off -= (restSpec[number] / 3);
+ break;
+ default:
+ break;
}
- if(noteData[number-1].duration_off > MIDI_MAX)
- noteData[number-1].duration_off = MIDI_LIMIT;
+ if (noteData[number - 1].duration_off > MIDI_MAX)
+ noteData[number - 1].duration_off = MIDI_LIMIT;
}
}
- if(Melody[count].rest >= '0' && Melody[count].rest <= '5')
- {
- switch(Melody[count].rest)
- {
- case '0': midiData[52+(6*count*(repeat+1)-1)] += 192;
- restSpec[count] = 192;
- break;
- case '1': midiData[52+(6*count*(repeat+1)-1)] += 96;
- restSpec[count] = 96;
- break;
- case '2': midiData[52+(6*count*(repeat+1)-1)] += 48;
- restSpec[count] = 48;
- break;
- case '3': midiData[52+(6*count*(repeat+1)-1)] += 24;
- restSpec[count] = 24;
- break;
- case '4': midiData[52+(6*count*(repeat+1)-1)] += 12;
- restSpec[count] = 12;
- break;
- case '5': midiData[52+(6*count*(repeat+1)-1)] += 6;
- restSpec[count] = 6;
- break;
- default :
- break;
+ if (Melody[count].rest >= '0' && Melody[count].rest <= '5') {
+ switch (Melody[count].rest) {
+ case '0':
+ midiData[52 + (6 * count * (repeat + 1) - 1)] += 192;
+ restSpec[count] = 192;
+ break;
+ case '1':
+ midiData[52 + (6 * count * (repeat + 1) - 1)] += 96;
+ restSpec[count] = 96;
+ break;
+ case '2':
+ midiData[52 + (6 * count * (repeat + 1) - 1)] += 48;
+ restSpec[count] = 48;
+ break;
+ case '3':
+ midiData[52 + (6 * count * (repeat + 1) - 1)] += 24;
+ restSpec[count] = 24;
+ break;
+ case '4':
+ midiData[52 + (6 * count * (repeat + 1) - 1)] += 12;
+ restSpec[count] = 12;
+ break;
+ case '5':
+ midiData[52 + (6 * count * (repeat + 1) - 1)] += 6;
+ restSpec[count] = 6;
+ break;
+ default:
+ break;
}
- if(Melody[count].rest_specifier != '%')
- {
- switch(Melody[count].rest_specifier)
- {
- case '.': midiData[52+(6*count*(repeat+1)-1)] += (restSpec[count] / 2);
- break;
- case ':': midiData[52+(6*count*(repeat+1)-1)] += restSpec[count];
- break;
- case ';': midiData[52+(6*count*(repeat+1)-1)] -= (restSpec[count] / 3);
- break;
- default :
- break;
+ if (Melody[count].rest_specifier != '%') {
+ switch (Melody[count].rest_specifier) {
+ case '.':
+ midiData[52 + (6 * count * (repeat + 1) - 1)] += (restSpec[count] / 2);
+ break;
+ case ':':
+ midiData[52 + (6 * count * (repeat + 1) - 1)] += restSpec[count];
+ break;
+ case ';':
+ midiData[52 + (6 * count * (repeat + 1) - 1)] -= (restSpec[count] / 3);
+ break;
+ default:
+ break;
}
}
- if(midiData[52+(6*count*(repeat+1)-1)] > MIDI_LIMIT)
- midiData[52+(6*count*(repeat+1)-1)] = MIDI_LIMIT;
+ if (midiData[52 + (6 * count * (repeat + 1) - 1)] > MIDI_LIMIT)
+ midiData[52 + (6 * count * (repeat + 1) - 1)] = MIDI_LIMIT;
- if(Melody[count].rest == '0')
- midiData[52+(6*count*(repeat+1)-1)] = MIDI_LIMIT;
+ if (Melody[count].rest == '0')
+ midiData[52 + (6 * count * (repeat + 1) - 1)] = MIDI_LIMIT;
}
- for(number = count;number < noteCount;number++)
- {
+ for (number = count; number < noteCount; number++) {
noteBase[0] = noteData[number].note;
noteBase[2] = noteData[number].duration_on;
noteBase[3] = noteData[number].note;
noteBase[5] = noteData[number].duration_off;
- noteTotal[6*number] = noteBase[0];
- noteTotal[6*number+2] = noteBase[2];
- noteTotal[6*number+3] = noteBase[3];
- noteTotal[6*number+5] = noteBase[5];
- noteTotal[6*number+4] = 0;
+ noteTotal[6 * number] = noteBase[0];
+ noteTotal[6 * number + 2] = noteBase[2];
+ noteTotal[6 * number + 3] = noteBase[3];
+ noteTotal[6 * number + 5] = noteBase[5];
+ noteTotal[6 * number + 4] = 0;
- if(noteTotal[6*number+2] > MIDI_LIMIT)
- noteTotal[6*number+2] = MIDI_LIMIT;
+ if (noteTotal[6 * number + 2] > MIDI_LIMIT)
+ noteTotal[6 * number + 2] = MIDI_LIMIT;
- if(noteTotal[6*number+5] > MIDI_LIMIT)
- noteTotal[6*number+5] = MIDI_LIMIT;
+ if (noteTotal[6 * number + 5] > MIDI_LIMIT)
+ noteTotal[6 * number + 5] = MIDI_LIMIT;
}
- for(number = count + 1;number < noteCount;number++)
- {
- noteTotal[6*count+1] = midiData[52+(6*count*(repeat+1)-5)];
+ for (number = count + 1; number < noteCount; number++) {
+ noteTotal[6 * count + 1] = midiData[52 + (6 * count * (repeat + 1) - 5)];
- if(Melody[count].vol == '+')
- noteTotal[6*count+1] = noteTotal[6*count+1] + VOL_INTERVAL;
+ if (Melody[count].vol == '+')
+ noteTotal[6 * count + 1] = noteTotal[6 * count + 1] + VOL_INTERVAL;
- if(Melody[count].vol == '-' && (noteTotal[6*count+1] == 0 || noteTotal[6*count+1] == 7))
- noteTotal[6*count+1] = 0;
+ if (Melody[count].vol == '-' && (noteTotal[6 * count + 1] == 0 || noteTotal[6 * count + 1] == 7))
+ noteTotal[6 * count + 1] = 0;
- if(Melody[count].vol == '-' && noteTotal[6*count+1] >= 12)
- noteTotal[6*count+1] = noteTotal[6*count+1] - VOL_INTERVAL;
+ if (Melody[count].vol == '-' && noteTotal[6 * count + 1] >= 12)
+ noteTotal[6 * count + 1] = noteTotal[6 * count + 1] - VOL_INTERVAL;
- if(noteTotal[6*count+1] > MIDI_LIMIT)
- noteTotal[6*count+1] = MIDI_LIMIT;
+ if (noteTotal[6 * count + 1] > MIDI_LIMIT)
+ noteTotal[6 * count + 1] = MIDI_LIMIT;
- switch(Melody[number].vol)
- {
- case '+': noteTotal[6*number+1] = noteTotal[6*(number-1)+1] + VOL_INTERVAL;
- break;
- case '-': noteTotal[6*number+1] = noteTotal[6*(number-1)+1] - VOL_INTERVAL;
- break;
- default :
- break;
+ switch (Melody[number].vol) {
+ case '+':
+ noteTotal[6 * number + 1] = noteTotal[6 * (number - 1) + 1] + VOL_INTERVAL;
+ break;
+ case '-':
+ noteTotal[6 * number + 1] = noteTotal[6 * (number - 1) + 1] - VOL_INTERVAL;
+ break;
+ default:
+ break;
}
- if(noteTotal[6*number+1] > MIDI_LIMIT)
- noteTotal[6*number+1] = MIDI_LIMIT;
+ if (noteTotal[6 * number + 1] > MIDI_LIMIT)
+ noteTotal[6 * number + 1] = MIDI_LIMIT;
- if((noteTotal[6*(number-1)+1] == 0 || noteTotal[6*(number-1)+1] == 7) && Melody[number].vol == '-')
- noteTotal[6*number+1] = 0;
+ if ((noteTotal[6 * (number - 1) + 1] == 0 || noteTotal[6 * (number - 1) + 1] == 7) && Melody[number].vol == '-')
+ noteTotal[6 * number + 1] = 0;
- if(Melody[number].vol == '%')
- noteTotal[6*number+1] = noteTotal[6*(number-1)+1];
+ if (Melody[number].vol == '%')
+ noteTotal[6 * number + 1] = noteTotal[6 * (number - 1) + 1];
}
numberCount = 6 * count;
- for(number = 6 * count * (repeat + 1);number < 6 * (count * (repeat + 1) + (noteCount - count));number++)
- {
- midiData[52+number] = noteTotal[numberCount];
+ for (number = 6 * count * (repeat + 1); number < 6 * (count * (repeat + 1) + (noteCount - count)); number++) {
+ midiData[52 + number] = noteTotal[numberCount];
numberCount++;
}
}
- noteTotal[6*(count*(repeat+1)+(noteCount-count))] = 0; //0x00
- noteTotal[6*(count*(repeat+1)+(noteCount-count))+1] = MIDI_MAX; //0xff
- noteTotal[6*(count*(repeat+1)+(noteCount-count))+2] = 47; //0x2f
- noteTotal[6*(count*(repeat+1)+(noteCount-count))+3] = 0; //0x00
+ noteTotal[6 * (count * (repeat + 1) + (noteCount - count))] = 0; /*0x00 */
+ noteTotal[6 * (count * (repeat + 1) + (noteCount - count)) + 1] = MIDI_MAX; /*0xff */
+ noteTotal[6 * (count * (repeat + 1) + (noteCount - count)) + 2] = 47; /*0x2f */
+ noteTotal[6 * (count * (repeat + 1) + (noteCount - count)) + 3] = 0; /*0x00 */
- for(number = 6 * (count * (repeat + 1) + (noteCount - count));number <= 6 * (count * (repeat + 1) + (noteCount - count)) + 3;number++)
- midiData[51+number] = noteTotal[number];
+ for (number = 6 * (count * (repeat + 1) + (noteCount - count)); number <= 6 * (count * (repeat + 1) + (noteCount - count)) + 3; number++)
+ midiData[51 + number] = noteTotal[number];
- trackSize = (6 * (count * (repeat + 1) + (noteCount - count)) + 56) - 22 -1 ;
+ trackSize = (6 * (count * (repeat + 1) + (noteCount - count)) + 56) - 22 - 1 ;
midiData[20] = (trackSize & 0xff00) >> 8;
midiData[21] = (trackSize & 0x00ff);
- *pBufLen = 6 * (count * (repeat + 1) + (noteCount - count)) + 56 -1;
+ *pBufLen = 6 * (count * (repeat + 1) + (noteCount - count)) + 56 - 1;
- pConvertBuf = (unsigned char*) mmfile_malloc (*pBufLen);
- if(pConvertBuf == NULL)
- {
- debug_error ("__AvConvertIMelody2MIDI: malloc failed!\n");
+ pConvertBuf = (unsigned char *) mmfile_malloc(*pBufLen);
+ if (pConvertBuf == NULL) {
+ debug_error("__AvConvertIMelody2MIDI: malloc failed!\n");
return NULL;
}
@@ -1621,114 +1632,122 @@ __AvConvertIMelody2MIDI(char* pMelodyBuf, unsigned int* pBufLen)
}
static unsigned char
-__AvMIDISetVolume(char* pMelodyBuf)
+__AvMIDISetVolume(char *pMelodyBuf)
{
unsigned char midiVol;
pMelodyBuf = pMelodyBuf + 42;
- while(!((*pMelodyBuf == 'V' && (*(pMelodyBuf+1) < 'a' || *(pMelodyBuf+1) > 'z')) || (*pMelodyBuf == 'M' && *(pMelodyBuf+5) == 'Y' && *(pMelodyBuf+6) == ':'))) //2007-02-28 AVMS_Sound:k2bogus - UMTS200073205;imy play, [MELODY:] extract fix
+ while (!((*pMelodyBuf == 'V' && (*(pMelodyBuf + 1) < 'a' || *(pMelodyBuf + 1) > 'z')) || (*pMelodyBuf == 'M' && *(pMelodyBuf + 5) == 'Y' && *(pMelodyBuf + 6) == ':'))) /*2007-02-28 AVMS_Sound:k2bogus - UMTS200073205;imy play, [MELODY:] extract fix */
pMelodyBuf++;
- if(*pMelodyBuf != 'V')
+ if (*pMelodyBuf != 'V')
midiVol = AV_MIDI_VOL_MAX;
- else
- {
+ else {
pMelodyBuf = pMelodyBuf + 5;
- if(*pMelodyBuf == 'E')
+ if (*pMelodyBuf == 'E')
pMelodyBuf = pMelodyBuf + 3;
else
pMelodyBuf = pMelodyBuf - 4;
- if(*pMelodyBuf == '1')
- {
+ if (*pMelodyBuf == '1') {
pMelodyBuf++;
- switch(*pMelodyBuf)
- {
- case '0': midiVol = AV_MIDI_VOL_MAX;
- break;
- case '1': midiVol = AV_MIDI_VOL_MAX;
- break;
- case '2': midiVol = AV_MIDI_VOL_MAX;
- break;
- case '3': midiVol = AV_MIDI_VOL_MAX;
- break;
- case '4': midiVol = AV_MIDI_VOL_MAX;
- break;
- case '5': midiVol = AV_MIDI_VOL_MAX;
- break;
- default : midiVol = AV_MIDI_VOL_MAX;
- break;
+ switch (*pMelodyBuf) {
+ case '0':
+ midiVol = AV_MIDI_VOL_MAX;
+ break;
+ case '1':
+ midiVol = AV_MIDI_VOL_MAX;
+ break;
+ case '2':
+ midiVol = AV_MIDI_VOL_MAX;
+ break;
+ case '3':
+ midiVol = AV_MIDI_VOL_MAX;
+ break;
+ case '4':
+ midiVol = AV_MIDI_VOL_MAX;
+ break;
+ case '5':
+ midiVol = AV_MIDI_VOL_MAX;
+ break;
+ default:
+ midiVol = AV_MIDI_VOL_MAX;
+ break;
}
}
-
+
else
- switch(*pMelodyBuf)
- {
- case '0': midiVol = 0;
- break;
- case '2': midiVol = AV_MIDI_VOL_MAX;
- break;
- case '3': midiVol = AV_MIDI_VOL_MAX;
- break;
- case '4': midiVol = AV_MIDI_VOL_MAX;
- break;
- case '5': midiVol = AV_MIDI_VOL_MAX;
- break;
- case '6': midiVol = AV_MIDI_VOL_MAX;
- break;
- case '7': midiVol = AV_MIDI_VOL_MAX;
- break;
- case '8': midiVol = AV_MIDI_VOL_MAX;
- break;
- case '9': midiVol = AV_MIDI_VOL_MAX;
- break;
- default : midiVol = AV_MIDI_VOL_MAX;
- break;
- }
+ switch (*pMelodyBuf) {
+ case '0':
+ midiVol = 0;
+ break;
+ case '2':
+ midiVol = AV_MIDI_VOL_MAX;
+ break;
+ case '3':
+ midiVol = AV_MIDI_VOL_MAX;
+ break;
+ case '4':
+ midiVol = AV_MIDI_VOL_MAX;
+ break;
+ case '5':
+ midiVol = AV_MIDI_VOL_MAX;
+ break;
+ case '6':
+ midiVol = AV_MIDI_VOL_MAX;
+ break;
+ case '7':
+ midiVol = AV_MIDI_VOL_MAX;
+ break;
+ case '8':
+ midiVol = AV_MIDI_VOL_MAX;
+ break;
+ case '9':
+ midiVol = AV_MIDI_VOL_MAX;
+ break;
+ default:
+ midiVol = AV_MIDI_VOL_MAX;
+ break;
+ }
}
return midiVol;
}
static int
-__AvMIDISetBeat(char* pMelodyBuf)
+__AvMIDISetBeat(char *pMelodyBuf)
{
int bpmValue[4] = {0};
int beatValue;
pMelodyBuf = pMelodyBuf + 42;
- while(!((*pMelodyBuf == 'B' && (*(pMelodyBuf+1) < 'a' || *(pMelodyBuf+1) > 'z')) || (*pMelodyBuf == 'M' && *(pMelodyBuf+5) == 'Y' && *(pMelodyBuf+6) == ':'))) //2007-02-28 AVMS_Sound:k2bogus - UMTS200073205;imy play, [MELODY:] extract fix
+ while (!((*pMelodyBuf == 'B' && (*(pMelodyBuf + 1) < 'a' || *(pMelodyBuf + 1) > 'z')) || (*pMelodyBuf == 'M' && *(pMelodyBuf + 5) == 'Y' && *(pMelodyBuf + 6) == ':'))) /*2007-02-28 AVMS_Sound:k2bogus - UMTS200073205;imy play, [MELODY:] extract fix */
pMelodyBuf++;
- if(*pMelodyBuf != 'B')
+ if (*pMelodyBuf != 'B')
bpmValue[3] = 120;
- else
- {
+ else {
pMelodyBuf = pMelodyBuf + 4;
- if(*pMelodyBuf == ':')
- {
+ if (*pMelodyBuf == ':') {
pMelodyBuf++;
- if(*pMelodyBuf >= '1' && *pMelodyBuf <= '9')
- {
+ if (*pMelodyBuf >= '1' && *pMelodyBuf <= '9') {
bpmValue[0] = *pMelodyBuf - '0';
pMelodyBuf++;
- if(*pMelodyBuf >= '0' && *pMelodyBuf <= '9')
- {
+ if (*pMelodyBuf >= '0' && *pMelodyBuf <= '9') {
bpmValue[1] = *pMelodyBuf - '0';
pMelodyBuf++;
- if(*pMelodyBuf >= '0' && *pMelodyBuf <= '9')
- {
+ if (*pMelodyBuf >= '0' && *pMelodyBuf <= '9') {
bpmValue[2] = *pMelodyBuf - '0';
bpmValue[0] = bpmValue[0] * 100;
@@ -1745,48 +1764,47 @@ __AvMIDISetBeat(char* pMelodyBuf)
}
}
- if(bpmValue[3] < 25 || bpmValue[3] > 900)
+ if (bpmValue[3] < 25 || bpmValue[3] > 900)
bpmValue[3] = 120;
- if(*pMelodyBuf >= '0' && *pMelodyBuf <= '9')
+ if (*pMelodyBuf >= '0' && *pMelodyBuf <= '9')
bpmValue[3] = 120;
beatValue = 1000000 * 60 / bpmValue[3];
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("beat: %d = 1000000 * 60 / %d\n", beatValue, bpmValue[3]);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("beat: %d = 1000000 * 60 / %d\n", beatValue, bpmValue[3]);
+#endif
return beatValue;
}
static char
-__AvMIDISetStyle(char* pMelodyBuf)
+__AvMIDISetStyle(char *pMelodyBuf)
{
char styleValue = '0';
- while(*pMelodyBuf != 'S')
+ while (*pMelodyBuf != 'S')
pMelodyBuf--;
pMelodyBuf++;
- if(*pMelodyBuf >= '0' && *pMelodyBuf <= '2')
+ if (*pMelodyBuf >= '0' && *pMelodyBuf <= '2')
pMelodyBuf++;
- if(*pMelodyBuf != '.')
- {
+ if (*pMelodyBuf != '.') {
pMelodyBuf--;
styleValue = *pMelodyBuf;
}
- if(styleValue < '0' || styleValue > '2') {
- debug_warning ("unknown style. use default(S0)\n");
+ if (styleValue < '0' || styleValue > '2') {
+ debug_warning("unknown style. use default(S0)\n");
styleValue = '0';
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("style: '%c'\n", styleValue);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("style: '%c'\n", styleValue);
+#endif
return styleValue;
}
diff --git a/formats/ffmpeg/mm_file_format_midi.c b/formats/ffmpeg/mm_file_format_midi.c
index 4da002f..c6c1ad0 100755
--- a/formats/ffmpeg/mm_file_format_midi.c
+++ b/formats/ffmpeg/mm_file_format_midi.c
@@ -18,13 +18,13 @@
* limitations under the License.
*
*/
-
+
#include <string.h> /*memcmp*/
#include <stdio.h>
#include <stdlib.h> /*malloc*/
#include <mm_error.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
#include "mm_file_format_private.h"
#include "mm_file_format_midi.h"
@@ -96,7 +96,7 @@ enum {
#define MAX_SMF_MESSAGES 256 /* */
#define MAX_SMF_TRACKS 32 /* Should be <= 32 */
#define SMF_MAX_GAIN 76 /* - 6[dB] : 90 */
- /* -18[dB] : 45 */
+/* -18[dB] : 45 */
#define MINIMUM_LENGTH (20)
#define MELODY_MAP (0)
@@ -107,8 +107,7 @@ enum {
/*--------------------------------------------------------------------------*/
/* Types */
/*--------------------------------------------------------------------------*/
-typedef struct _tagMidChInfo
-{
+typedef struct _tagMidChInfo {
UINT32 dBank; /* BankH&L (0x00:00..0x7F7F) */
UINT32 dCurrBank; /* BankH&L (0x00:00..0x7F7F) */
UINT32 dProg; /* ProgramChange (0..127) */
@@ -130,40 +129,36 @@ typedef struct _tagMidChInfo
UINT32 dCoaseTune; /* 0..0x7F */
} MIDCHINFO, *PMIDCHINFO;
-typedef struct _tagMIDPACKET
-{
+typedef struct _tagMIDPACKET {
SINT32 sdDeltaTime;
- UINT32 dMsgID;
- UINT32 dP1;
- UINT32 dP2;
- UINT32 dP3;
+ UINT32 dMsgID;
+ UINT32 dP1;
+ UINT32 dP2;
+ UINT32 dP3;
} MIDPACKET, *PMIDPACKET;
-typedef struct _tagTrack
-{
+typedef struct _tagTrack {
UINT32 dSmfCmd; /* CMD @ now */
UINT32 dSize; /* [byte] 0 measns nothing in it. */
- UINT8* pbBase; /* NULL measns nothing in it. */
+ UINT8 *pbBase; /* NULL measns nothing in it. */
UINT32 dOffset; /* offset byte */
SINT32 sdTicks; /* */
} TRACKINFO, *PTRACKINFO;
-typedef struct _tagOrderList
-{
- struct _tagOrderList* pPrev;
- struct _tagOrderList* pNext;
+typedef struct _tagOrderList {
+ struct _tagOrderList *pPrev;
+ struct _tagOrderList *pNext;
UINT32 dTrack;
UINT32 dTicks;
} ORDERLIST, *PORDERLIST;
-typedef struct _tagMidInfo
-{
+typedef struct _tagMidInfo {
UINT32 dTimeResolution; /* 0..0x7fff */
- UINT8* pbText; /* */
+ UINT8 *pbText; /* */
UINT32 dSizeText; /* */
- UINT8* pbTitle; /* */
+ UINT8 *pbTitle; /* */
UINT32 dSizeTitle; /* */
- UINT8* pbCopyright; /* */
+ UINT8 *pbCopyright; /* */
UINT32 dSizeCopyright; /* */
UINT32 dNumOfTracks; /* 1..32 */
UINT32 dSmfFormat; /* 0..1 */
@@ -176,11 +171,11 @@ typedef struct _tagMidInfo
SINT32 sdDelta; /* (22.10)[ms] */
UINT32 dEndFlag; /* */
- TRACKINFO TrackInfo[MAX_SMF_TRACKS];
-
- struct _tagOrderList* pTopOrderList;
- struct _tagOrderList* pDoneOrderList;
- struct _tagOrderList* pBottomOrderList;
+ TRACKINFO TrackInfo[MAX_SMF_TRACKS];
+
+ struct _tagOrderList *pTopOrderList;
+ struct _tagOrderList *pDoneOrderList;
+ struct _tagOrderList *pBottomOrderList;
ORDERLIST OrderList[MAX_SMF_TRACKS + 3];
MIDCHINFO ChInfo[16]; /* */
@@ -189,8 +184,7 @@ typedef struct _tagMidInfo
UINT8 bVoiceMap[NUM_OF_MAPS][128];/* 0:Empty, 1:Valid */
} MIDINFO, *PMIDINFO;
-typedef struct _tagMidGlobals
-{
+typedef struct _tagMidGlobals {
SINT32 sdSeqID; /* Sequence ID */
SINT32 sdFileID; /* File ID */
UINT32 dEnable; /* 0:disable */
@@ -233,41 +227,41 @@ static PMIDGLOBAL gpMidInfo;
static PMIDINFO gPi;
-static SINT32 __AvMidFile_Initialize (void);
-static void __AvMidFile_Deinitialize (void);
-static void __AvMidInitializeOrderList (PMIDINFO pI);
-static void __AvMidSortOrderList (PMIDINFO pI);
-static void __AvMidInsertOrderList (PMIDINFO pI, UINT32 dTrack, SINT32 sdTicks);
-static void __AvMidRemoveFromOrderList (PMIDINFO pI);
-static SINT32 __AvMidGetTrackTime (PMIDINFO pI, UINT32 dTrack);
-static SINT32 __AvMidUpdateTrackTime (PMIDINFO pI, UINT32 dTrack);
-static void __AvMidResetTimeInfo (PMIDINFO pI);
-static SINT32 __AvMidGetLeastTimeTrack (PMIDINFO pI);
-static SINT32 __AvGetSizeOfFileInfo (PMIDINFO pI);
-static SINT32 __AvCheckSizeOfMidFile (UINT8* fp, UINT32 dFsize);
-static int __AvParseSkipXmf2Mid (UINT8* pbFile, UINT32 dFSize);
-static int __AvGetMidiDuration (char* szFileName, MIDI_INFO_SIMPLE *info);
+static SINT32 __AvMidFile_Initialize(void);
+static void __AvMidFile_Deinitialize(void);
+static void __AvMidInitializeOrderList(PMIDINFO pI);
+static void __AvMidSortOrderList(PMIDINFO pI);
+static void __AvMidInsertOrderList(PMIDINFO pI, UINT32 dTrack, SINT32 sdTicks);
+static void __AvMidRemoveFromOrderList(PMIDINFO pI);
+static SINT32 __AvMidGetTrackTime(PMIDINFO pI, UINT32 dTrack);
+static SINT32 __AvMidUpdateTrackTime(PMIDINFO pI, UINT32 dTrack);
+static void __AvMidResetTimeInfo(PMIDINFO pI);
+static SINT32 __AvMidGetLeastTimeTrack(PMIDINFO pI);
+static SINT32 __AvGetSizeOfFileInfo(PMIDINFO pI);
+static SINT32 __AvCheckSizeOfMidFile(UINT8 *fp, UINT32 dFsize);
+static int __AvParseSkipXmf2Mid(UINT8 *pbFile, UINT32 dFSize);
+static int __AvGetMidiDuration(char *szFileName, MIDI_INFO_SIMPLE *info);
/* mm plugin interface */
-int mmfile_format_read_stream_mid (MMFileFormatContext *formatContext);
-int mmfile_format_read_frame_mid (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
-int mmfile_format_read_tag_mid (MMFileFormatContext *formatContext);
-int mmfile_format_close_mid (MMFileFormatContext *formatContext);
+int mmfile_format_read_stream_mid(MMFileFormatContext *formatContext);
+int mmfile_format_read_frame_mid(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
+int mmfile_format_read_tag_mid(MMFileFormatContext *formatContext);
+int mmfile_format_close_mid(MMFileFormatContext *formatContext);
EXPORT_API
-int mmfile_format_open_mid (MMFileFormatContext *formatContext)
+int mmfile_format_open_mid(MMFileFormatContext *formatContext)
{
int res = MMFILE_FORMAT_FAIL;
if (NULL == formatContext || NULL == formatContext->uriFileName) {
- debug_error ("error: mmfile_format_open_mid\n");
+ debug_error("error: mmfile_format_open_mid\n");
return MMFILE_FORMAT_FAIL;
}
if (formatContext->pre_checked == 0) {
- res = MMFileFormatIsValidMID (formatContext->uriFileName);
- if ( res == 0 ) {
+ res = MMFileFormatIsValidMID(NULL, formatContext->uriFileName);
+ if (res == 0) {
debug_error("It is not MIDI file\n");
return MMFILE_FORMAT_FAIL;
}
@@ -287,22 +281,22 @@ int mmfile_format_open_mid (MMFileFormatContext *formatContext)
}
EXPORT_API
-int mmfile_format_read_stream_mid (MMFileFormatContext *formatContext)
+int mmfile_format_read_stream_mid(MMFileFormatContext *formatContext)
{
MMFileFormatStream *audioStream = NULL;
int ret = MMFILE_FORMAT_FAIL;
MIDI_INFO_SIMPLE *info = NULL;
if (NULL == formatContext) {
- debug_error ("error: invalid params\n");
+ debug_error("error: invalid params\n");
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
/*get infomation*/
- info = mmfile_format_get_midi_infomation (formatContext->uriFileName);
+ info = mmfile_format_get_midi_infomation(formatContext->uriFileName);
if (!info) {
- debug_error ("failed to get infomation");
+ debug_error("failed to get infomation");
goto exception;
}
@@ -312,9 +306,9 @@ int mmfile_format_read_stream_mid (MMFileFormatContext *formatContext)
formatContext->audioTotalTrackNum = info->track_num;
formatContext->nbStreams = 1;
- audioStream = mmfile_malloc (sizeof(MMFileFormatStream));
+ audioStream = mmfile_malloc(sizeof(MMFileFormatStream));
if (NULL == audioStream) {
- debug_error ("error: mmfile_malloc audiostream\n");
+ debug_error("error: mmfile_malloc audiostream\n");
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
@@ -325,43 +319,43 @@ int mmfile_format_read_stream_mid (MMFileFormatContext *formatContext)
audioStream->framePerSec = 0;
audioStream->width = 0;
audioStream->height = 0;
- audioStream->nbChannel = 1;
+ audioStream->nbChannel = 1;
audioStream->samplePerSec = 0;
formatContext->streams[MMFILE_AUDIO_STREAM] = audioStream;
- #ifdef __MMFILE_TEST_MODE__
- mmfile_format_print_contents (formatContext);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ mmfile_format_print_contents(formatContext);
+#endif
- mmfile_format_free_midi_infomation (info);
+ mmfile_format_free_midi_infomation(info);
return MMFILE_FORMAT_SUCCESS;
exception:
- mmfile_format_free_midi_infomation (info);
- mmfile_free (audioStream);
+ mmfile_format_free_midi_infomation(info);
+ mmfile_free(audioStream);
return ret;
}
EXPORT_API
-int mmfile_format_read_tag_mid (MMFileFormatContext *formatContext)
+int mmfile_format_read_tag_mid(MMFileFormatContext *formatContext)
{
- int ret= MMFILE_FORMAT_FAIL;
+ int ret = MMFILE_FORMAT_FAIL;
MIDI_INFO_SIMPLE *info = NULL;
- const char *locale = MMFileUtilGetLocale (NULL);
+ const char *locale = MMFileUtilGetLocale(NULL);
unsigned int tag_len;
unsigned int cnv_len;
if (NULL == formatContext) {
- debug_error ("error: invalid params\n");
+ debug_error("error: invalid params\n");
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
/*get infomation*/
- info = mmfile_format_get_midi_infomation (formatContext->uriFileName);
+ info = mmfile_format_get_midi_infomation(formatContext->uriFileName);
if (!info) {
- debug_error ("failed to get infomation");
+ debug_error("failed to get infomation");
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
@@ -370,79 +364,79 @@ int mmfile_format_read_tag_mid (MMFileFormatContext *formatContext)
* UTF8 converting.
*/
if (info->title) {
- tag_len = strlen (info->title);
+ tag_len = strlen(info->title);
cnv_len = 0;
- formatContext->title = mmfile_string_convert ((const char*)info->title,
- tag_len,
- "UTF-8",
- locale,
- NULL,
- (unsigned int*)&cnv_len);
+ formatContext->title = mmfile_string_convert((const char *)info->title,
+ tag_len,
+ "UTF-8",
+ locale,
+ NULL,
+ (unsigned int *)&cnv_len);
if (formatContext->title == NULL) {
- debug_warning ("failed to UTF8 convert.\n");
- formatContext->title = mmfile_strdup (info->title);
+ debug_warning("failed to UTF8 convert.\n");
+ formatContext->title = mmfile_strdup(info->title);
}
}
if (info->copyright) {
- tag_len = strlen (info->copyright);
+ tag_len = strlen(info->copyright);
cnv_len = 0;
- formatContext->copyright = mmfile_string_convert ((const char*)info->copyright,
- tag_len,
- "UTF-8",
- locale,
- NULL,
- (unsigned int*)&cnv_len);
+ formatContext->copyright = mmfile_string_convert((const char *)info->copyright,
+ tag_len,
+ "UTF-8",
+ locale,
+ NULL,
+ (unsigned int *)&cnv_len);
if (formatContext->copyright == NULL) {
- debug_warning ("failed to UTF8 convert.\n");
- formatContext->copyright = mmfile_strdup (info->copyright);
+ debug_warning("failed to UTF8 convert.\n");
+ formatContext->copyright = mmfile_strdup(info->copyright);
}
}
if (info->comment) {
- tag_len = strlen (info->comment);
+ tag_len = strlen(info->comment);
cnv_len = 0;
- formatContext->comment = mmfile_string_convert ((const char*)info->comment,
- tag_len,
- "UTF-8",
- locale,
- NULL,
- (unsigned int*)&cnv_len);
+ formatContext->comment = mmfile_string_convert((const char *)info->comment,
+ tag_len,
+ "UTF-8",
+ locale,
+ NULL,
+ (unsigned int *)&cnv_len);
if (formatContext->comment == NULL) {
- debug_warning ("failed to UTF8 convert.\n");
- formatContext->comment = mmfile_strdup (info->comment);
+ debug_warning("failed to UTF8 convert.\n");
+ formatContext->comment = mmfile_strdup(info->comment);
}
}
#ifdef __MMFILE_TEST_MODE__
- mmfile_format_print_contents (formatContext);
+ mmfile_format_print_contents(formatContext);
#endif
- mmfile_format_free_midi_infomation (info);
+ mmfile_format_free_midi_infomation(info);
return MMFILE_FORMAT_SUCCESS;
exception:
- mmfile_format_free_midi_infomation (info);
+ mmfile_format_free_midi_infomation(info);
return ret;
}
EXPORT_API
-int mmfile_format_read_frame_mid (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame)
+int mmfile_format_read_frame_mid(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame)
{
- debug_error ("error: mmfile_format_read_frame_midi, no handling\n");
+ debug_error("error: mmfile_format_read_frame_midi, no handling\n");
- return MMFILE_FORMAT_FAIL;
+ return MMFILE_FORMAT_FAIL;
}
EXPORT_API
-int mmfile_format_close_mid (MMFileFormatContext *formatContext)
+int mmfile_format_close_mid(MMFileFormatContext *formatContext)
{
- if (NULL == formatContext ) {
- debug_error ("error: invalid params\n");
+ if (NULL == formatContext) {
+ debug_error("error: invalid params\n");
return MMFILE_FORMAT_FAIL;
}
- if(formatContext->streams[MMFILE_AUDIO_STREAM]) {
+ if (formatContext->streams[MMFILE_AUDIO_STREAM]) {
mmfile_free(formatContext->streams[MMFILE_AUDIO_STREAM]);
formatContext->streams[MMFILE_AUDIO_STREAM] = NULL;
}
@@ -455,41 +449,41 @@ int mmfile_format_close_mid (MMFileFormatContext *formatContext)
return MMFILE_FORMAT_SUCCESS;
}
-static char * _lc_strdup (const char *str, unsigned int size)
+static char *_lc_strdup(const char *str, unsigned int size)
{
char *t = NULL;
- t = mmfile_malloc (size+1);
+ t = mmfile_malloc(size + 1);
if (t) {
- memset (t, 0x00, size+1);
- memcpy (t, str, size);
+ memset(t, 0x00, size + 1);
+ memcpy(t, str, size);
}
return t;
}
MIDI_INFO_SIMPLE *
-mmfile_format_get_midi_infomation (char* szFileName)
+mmfile_format_get_midi_infomation(char *szFileName)
{
- int duration = -1;
+ /*int duration = -1;*/
MIDI_INFO_SIMPLE *info = NULL;
- info = mmfile_malloc (sizeof (MIDI_INFO_SIMPLE));
+ info = mmfile_malloc(sizeof(MIDI_INFO_SIMPLE));
if (!info)
return NULL;
/*get infomation*/
- duration = __AvGetMidiDuration (szFileName, info);
+ /*duration = */__AvGetMidiDuration(szFileName, info);
return info;
}
void
-mmfile_format_free_midi_infomation (MIDI_INFO_SIMPLE *info)
+mmfile_format_free_midi_infomation(MIDI_INFO_SIMPLE *info)
{
if (info) {
- if (info->title) mmfile_free (info->title);
- if (info->copyright) mmfile_free (info->copyright);
- if (info->comment) mmfile_free (info->comment);
- mmfile_free (info);
+ if (info->title) mmfile_free(info->title);
+ if (info->copyright) mmfile_free(info->copyright);
+ if (info->comment) mmfile_free(info->comment);
+ mmfile_free(info);
}
}
@@ -513,68 +507,68 @@ mmfile_format_free_midi_infomation (MIDI_INFO_SIMPLE *info)
* Return
* >= 0 : FileID, < 0 : Error code
****************************************************************************/
-static int
-__AvGetMidiDuration(char* szFileName, MIDI_INFO_SIMPLE *info)
+static int
+__AvGetMidiDuration(char *szFileName, MIDI_INFO_SIMPLE *info)
{
- int xmfheaderSkip=0;
- MMFileIOHandle * hFile = NULL;
- UINT8 * pbFile= NULL;
- UINT8 * pIMYbuf= NULL;
+ int xmfheaderSkip = 0;
+ MMFileIOHandle *hFile = NULL;
+ UINT8 *pbFile = NULL;
+ UINT8 *pIMYbuf = NULL;
SINT32 dFileSize;
int sdCurrentTime = 0;
- // void* pvExtArgs = "mid";
- int readed =0;
+ /* void* pvExtArgs = "mid"; */
+ int readed = 0;
int ret;
int codecType = AV_DEC_AUDIO_MIDI;
int is_xmf = 0;
- if ( szFileName == NULL || info == NULL)
+ if (szFileName == NULL || info == NULL)
return -1;
- // debug_msg ("URI: %s\n", szFileName);
+ /* debug_msg("URI: %s\n", szFileName); */
/*open*/
- ret = mmfile_open (&hFile, szFileName, MMFILE_RDONLY);
+ ret = mmfile_open(&hFile, szFileName, MMFILE_RDONLY);
if (ret == MMFILE_UTIL_FAIL) {
- debug_error ( "open failed.\n");
+ debug_error("open failed.\n");
return -1;
}
/*get file size*/
- mmfile_seek (hFile, 0L, MMFILE_SEEK_END);
- dFileSize = mmfile_tell (hFile);
- mmfile_seek (hFile, 0L, MMFILE_SEEK_SET);
+ mmfile_seek(hFile, 0L, MMFILE_SEEK_END);
+ dFileSize = mmfile_tell(hFile);
+ mmfile_seek(hFile, 0L, MMFILE_SEEK_SET);
if (dFileSize <= 0) {
- debug_error ("failed to get file size.\n");
+ debug_error("failed to get file size.\n");
goto _RELEASE_RESOURCE;
}
/*alloc read buffer*/
- pbFile = (UINT8 *) mmfile_malloc (sizeof(UINT8) * (dFileSize + 1));
+ pbFile = (UINT8 *) mmfile_malloc(sizeof(UINT8) * (dFileSize + 1));
if (!pbFile) {
- debug_error ( "memory allocation failed.\n");
+ debug_error("memory allocation failed.\n");
goto _RELEASE_RESOURCE;
}
/*read data*/
- if ((readed = mmfile_read (hFile, pbFile, dFileSize) ) != dFileSize) {
- debug_error ( "read error. size = %d\n", readed);
+ if ((readed = mmfile_read(hFile, pbFile, dFileSize)) != dFileSize) {
+ debug_error("read error. size = %d\n", readed);
goto _RELEASE_RESOURCE;
}
/*init global workspace*/
- if(__AvMidFile_Initialize())
+ if (__AvMidFile_Initialize())
goto _RELEASE_RESOURCE;
/*check format*/
- if (!(memcmp (pbFile, MMFILE_XMF_100, 8)) ||
- !(memcmp (pbFile, MMFILE_XMF_101, 8)) ||
- !(memcmp (pbFile, MMFILE_MXMF_200, 8))) {
+ if (!(memcmp(pbFile, MMFILE_XMF_100, 8)) ||
+ !(memcmp(pbFile, MMFILE_XMF_101, 8)) ||
+ !(memcmp(pbFile, MMFILE_MXMF_200, 8))) {
is_xmf = 1;
codecType = AV_DEC_AUDIO_XMF;
- } else if (!(memcmp (pbFile, MMFILE_RMF, 4))) {
+ } else if (!(memcmp(pbFile, MMFILE_RMF, 4))) {
is_xmf = 0;
codecType = AV_DEC_AUDIO_RMF;
} else {
@@ -592,40 +586,40 @@ __AvGetMidiDuration(char* szFileName, MIDI_INFO_SIMPLE *info)
} else {
/*get duration. XMF/MIDI*/
- if(codecType == AV_DEC_AUDIO_XMF) {
+ if (codecType == AV_DEC_AUDIO_XMF) {
xmfheaderSkip = __AvParseSkipXmf2Mid(pbFile, dFileSize);
- if(xmfheaderSkip == -1)
+ if (xmfheaderSkip == -1)
goto _RELEASE_RESOURCE;
- sdCurrentTime = __AvCheckSizeOfMidFile(pbFile+xmfheaderSkip, dFileSize);
+ sdCurrentTime = __AvCheckSizeOfMidFile(pbFile + xmfheaderSkip, dFileSize);
} else {
sdCurrentTime = __AvCheckSizeOfMidFile(pbFile, dFileSize);
}
- if(sdCurrentTime < 0) {
- debug_error ("__AvGetMidiDuration: sdResult's error Code!(%d)\n", sdCurrentTime);
+ if (sdCurrentTime < 0) {
+ debug_error("__AvGetMidiDuration: sdResult's error Code!(%d)\n", sdCurrentTime);
goto _RELEASE_RESOURCE;
}
- if(sdCurrentTime > 0)
+ if (sdCurrentTime > 0)
sdCurrentTime /= 1000;
info->duration = sdCurrentTime;
info->track_num = gPi->dNumOfTracks;
info->is_xmf = is_xmf;
- info->title = _lc_strdup ((const char *)gPi->pbTitle, gPi->dSizeTitle);
- info->copyright = _lc_strdup ((const char *)gPi->pbCopyright, gPi->dSizeCopyright);
- info->comment = _lc_strdup ((const char *)gPi->pbText, gPi->dSizeText);
+ info->title = _lc_strdup((const char *)gPi->pbTitle, gPi->dSizeTitle);
+ info->copyright = _lc_strdup((const char *)gPi->pbCopyright, gPi->dSizeCopyright);
+ info->comment = _lc_strdup((const char *)gPi->pbText, gPi->dSizeText);
}
_RELEASE_RESOURCE:
/*resource release*/
- __AvMidFile_Deinitialize ();
- mmfile_close (hFile);
- mmfile_free (pbFile);
- mmfile_free (pIMYbuf);
+ __AvMidFile_Deinitialize();
+ mmfile_close(hFile);
+ mmfile_free(pbFile);
+ mmfile_free(pIMYbuf);
return sdCurrentTime;
}
@@ -633,12 +627,12 @@ _RELEASE_RESOURCE:
static SINT32
__AvMidFile_Initialize(void)
{
- gpMidInfo = mmfile_malloc (sizeof (MIDGLOBAL));
+ gpMidInfo = mmfile_malloc(sizeof(MIDGLOBAL));
if (!gpMidInfo)
return (AvSMW_ERROR);
- memset (gpMidInfo, 0x00, sizeof (MIDGLOBAL));
+ memset(gpMidInfo, 0x00, sizeof(MIDGLOBAL));
gpMidInfo->sdSeqID = -1; /* Sequence ID */
gpMidInfo->sdFileID = -1; /* File ID */
@@ -652,7 +646,7 @@ __AvMidFile_Initialize(void)
static void
__AvMidFile_Deinitialize(void)
{
- mmfile_free (gpMidInfo);
+ mmfile_free(gpMidInfo);
}
@@ -670,13 +664,12 @@ __AvMidFile_Deinitialize(void)
* Return:
* none
****************************************************************************/
-static void
+static void
__AvMidInitializeOrderList(PMIDINFO pI)
{
int ix2;
- for (ix2 = 1; ix2 <= MAX_SMF_TRACKS + 1; ix2++)
- {
+ for (ix2 = 1; ix2 <= MAX_SMF_TRACKS + 1; ix2++) {
pI->OrderList[ix2].pPrev = &pI->OrderList[ix2 - 1];
pI->OrderList[ix2].pNext = &pI->OrderList[ix2 + 1];
pI->OrderList[ix2].dTrack = 0xFF;
@@ -702,7 +695,7 @@ __AvMidInitializeOrderList(PMIDINFO pI)
* Return:
* none
****************************************************************************/
-static void
+static void
__AvMidSortOrderList(PMIDINFO pI)
{
PORDERLIST pSlot;
@@ -714,8 +707,7 @@ __AvMidSortOrderList(PMIDINFO pI)
pSlot->dTicks = ((UINT32)pI->TrackInfo[pSlot->dTrack].sdTicks << 5) + pSlot->dTrack;
pTerget = pSlot->pNext;
- while (pTerget != pI->pDoneOrderList)
- {
+ while (pTerget != pI->pDoneOrderList) {
if (pSlot->dTicks <= pTerget->dTicks) break;
pTerget = pTerget->pNext;
}
@@ -747,7 +739,7 @@ __AvMidInsertOrderList(PMIDINFO pI, UINT32 dTrack, SINT32 sdTicks)
pTerget = pI->pDoneOrderList->pNext;
if (pTerget == pI->pBottomOrderList) return;
-
+
pI->pDoneOrderList->pNext = pTerget->pNext;
(pTerget->pNext)->pPrev = pI->pDoneOrderList;
@@ -757,7 +749,7 @@ __AvMidInsertOrderList(PMIDINFO pI, UINT32 dTrack, SINT32 sdTicks)
pTerget->pNext = (pI->pTopOrderList)->pNext;
((pI->pTopOrderList)->pNext)->pPrev = pTerget;
(pI->pTopOrderList)->pNext = pTerget;
-
+
__AvMidSortOrderList(pI);
}
@@ -772,7 +764,7 @@ __AvMidInsertOrderList(PMIDINFO pI, UINT32 dTrack, SINT32 sdTicks)
* Return:
* none
****************************************************************************/
-static void
+static void
__AvMidRemoveFromOrderList(PMIDINFO pI)
{
PORDERLIST pSlot;
@@ -781,7 +773,7 @@ __AvMidRemoveFromOrderList(PMIDINFO pI)
pSlot = (pI->pTopOrderList)->pNext;
(pSlot->pPrev)->pNext = pSlot->pNext;
(pSlot->pNext)->pPrev = pSlot->pPrev;
-
+
pTerget = pI->pBottomOrderList;
(pTerget->pPrev)->pNext = pSlot;
pSlot->pPrev = pTerget->pPrev;
@@ -813,17 +805,15 @@ __AvMidGetTrackTime(PMIDINFO pI, UINT32 dTrack)
pMt = &(pI->TrackInfo[dTrack]);
dTime = 0;
- do
- {
- if (pMt->dOffset >= pMt->dSize)
- {
+ do {
+ if (pMt->dOffset >= pMt->dSize) {
pI->dEndFlag &= ~(1L << dTrack);
return (-1);
}
dTemp = (UINT32)pMt->pbBase[pMt->dOffset++];
dTime = (dTime << 7) + (dTemp & 0x7f);
} while (dTemp >= 0x80);
- //debug_msg("dTime is %d\n", dTime);
+ /*debug_msg("dTime is %d\n", dTime); */
pMt->sdTicks += dTime;
return (0);
@@ -848,21 +838,17 @@ __AvMidUpdateTrackTime(PMIDINFO pI, UINT32 dTrack)
SINT32 dTime;
PTRACKINFO pMt;
- if (pI->dNumOfTracks == 1)
- {
+ if (pI->dNumOfTracks == 1) {
/* Single track */
- if (((pI->dEndFlag >> dTrack) & 0x01) == 0)
- {
+ if (((pI->dEndFlag >> dTrack) & 0x01) == 0) {
return (-1);
}
pMt = &(pI->TrackInfo[dTrack]);
dTime = 0;
- do
- {
- if (pMt->dOffset >= pMt->dSize)
- {
+ do {
+ if (pMt->dOffset >= pMt->dSize) {
pI->dEndFlag &= ~(1L << dTrack);
return (-1);
}
@@ -871,12 +857,9 @@ __AvMidUpdateTrackTime(PMIDINFO pI, UINT32 dTrack)
} while (dTemp >= 0x80);
pMt->sdTicks += dTime;
- }
- else
- {
+ } else {
/* Multi track */
- if (((pI->dEndFlag >> dTrack) & 0x01) == 0)
- {
+ if (((pI->dEndFlag >> dTrack) & 0x01) == 0) {
__AvMidRemoveFromOrderList(pI);
return (-1);
}
@@ -884,10 +867,8 @@ __AvMidUpdateTrackTime(PMIDINFO pI, UINT32 dTrack)
pMt = &(pI->TrackInfo[dTrack]);
dTime = 0;
- do
- {
- if (pMt->dOffset >= pMt->dSize)
- {
+ do {
+ if (pMt->dOffset >= pMt->dSize) {
pI->dEndFlag &= ~(1L << dTrack);
__AvMidRemoveFromOrderList(pI);
return (-1);
@@ -917,13 +898,12 @@ __AvMidUpdateTrackTime(PMIDINFO pI, UINT32 dTrack)
static void
__AvMidResetTimeInfo(PMIDINFO pI)
{
- SINT32 sdTrack;
+ UINT32 sdTrack;
PTRACKINFO pMt;
pI->dEndFlag = 0;
- for (sdTrack = 0; sdTrack < (UINT32)pI->dNumOfTracks; sdTrack++)
- {
+ for (sdTrack = 0; sdTrack < (UINT32)pI->dNumOfTracks; sdTrack++) {
pMt = &(pI->TrackInfo[sdTrack]);
pMt->dSmfCmd = 0;
@@ -931,20 +911,18 @@ __AvMidResetTimeInfo(PMIDINFO pI)
pMt->sdTicks = 0;
if (pMt->dSize > 0) pI->dEndFlag |= (1L << sdTrack);
}
-
+
__AvMidInitializeOrderList(pI);
- if((UINT32)pI->dNumOfTracks > MAX_SMF_TRACKS)
- {
- debug_error ("__AvMidResetTimeInfo: Num of tracks is over MAX track number. !!\n");
+ if ((UINT32)pI->dNumOfTracks > MAX_SMF_TRACKS) {
+ debug_error("__AvMidResetTimeInfo: Num of tracks is over MAX track number. !!\n");
return;
}
- for (sdTrack = 0; sdTrack < (UINT32)pI->dNumOfTracks; sdTrack++)
- {
+ for (sdTrack = 0; sdTrack < (UINT32)pI->dNumOfTracks; sdTrack++) {
__AvMidGetTrackTime(pI, (UINT32)sdTrack);
pMt = &(pI->TrackInfo[sdTrack]);
- __AvMidInsertOrderList(pI, (UINT32)sdTrack, pMt->sdTicks);
+ __AvMidInsertOrderList(pI, (UINT32)sdTrack, pMt->sdTicks);
}
}
@@ -987,10 +965,10 @@ __AvGetSizeOfFileInfo(PMIDINFO pI)
UINT32 dCmd;
UINT32 dCmd2;
UINT32 dSize;
-
+
UINT32 dTemp;
UINT32 dTime;
- SINT32 sdTotalTicks;
+ UINT32 sdTotalTicks;
SINT32 sdCurrentTime;
SINT32 sdDelta;
PMIDCHINFO pCh;
@@ -1002,7 +980,7 @@ __AvGetSizeOfFileInfo(PMIDINFO pI)
static UINT32 dBank[16];
static UINT32 dCurrBank[16];
-
+
SINT32 sdNonConductorTime;
SINT32 sdNonConductorTicks;
UINT32 dConductorNote;
@@ -1023,18 +1001,15 @@ __AvGetSizeOfFileInfo(PMIDINFO pI)
pI->dStart = 0;
pI->dSetupBar = 0;
pI->dVibNoteVoice = 0;
-
- for (dCh = 0; dCh < NUM_OF_MAPS; dCh++)
- {
- for (dTemp = 0; dTemp < 128; dTemp++)
- {
+
+ for (dCh = 0; dCh < NUM_OF_MAPS; dCh++) {
+ for (dTemp = 0; dTemp < 128; dTemp++) {
pI->bVoiceMap[dCh][dTemp] = 0;
}
}
pI->bVoiceMap[MELODY_MAP][0] = 1; /* GM Default Piano */
- for (dCh = 0; dCh < 16; dCh++)
- {
+ for (dCh = 0; dCh < 16; dCh++) {
dBank[dCh] = 0;
dCurrBank[dCh] = 0;
pCh = &pI->ChInfo[dCh];
@@ -1047,269 +1022,244 @@ __AvGetSizeOfFileInfo(PMIDINFO pI)
if (pI->dSmfFormat != 0) dSetup |= 0x20;
- while (pI->dEndFlag != 0)
- {
- if ((pI->dEndFlag == 1) && (sdNonConductorTime == 0x7FFFFFFF))
- {
+ while (pI->dEndFlag != 0) {
+ if ((pI->dEndFlag == 1) && (sdNonConductorTime == 0x7FFFFFFF)) {
sdNonConductorTime = sdCurrentTime;
sdNonConductorTicks = sdTotalTicks;
dConductorNote |= 2;
}
-
- if (pI->dNumOfTracks == 1)
- {
+
+ if (pI->dNumOfTracks == 1) {
sdTr = 0;
- }
- else
- {
+ } else {
sdTr = __AvMidGetLeastTimeTrack(pI);
if (sdTr < 0) break;
}
pMt = &(pI->TrackInfo[sdTr]);
-
+
dTime = pMt->sdTicks - sdTotalTicks;
sdCurrentTime += dTime * sdDelta;
sdTotalTicks = pMt->sdTicks;
- if ((sdCurrentTime < 0) || (sdTotalTicks > 0x07FFFFFFL))
- {
+ if ((sdCurrentTime < 0) || (sdTotalTicks > 0x07FFFFFFL)) {
return (AvSMW_ERROR_LONG_LENGTH);
}
dCmd = (UINT32)pMt->pbBase[pMt->dOffset++];
- if (dCmd < 0xf0)
- {
+ if (dCmd < 0xf0) {
/*--- MidiMsg ---*/
- if (dCmd < 0x80)
- {
+ if (dCmd < 0x80) {
dCmd = pMt->dSmfCmd;
if (dCmd < 0x80) return (AvSMW_ERROR_SMF_CMD);
pMt->dOffset--;
} else {
pMt->dSmfCmd = dCmd;
}
-
+
dCh = dCmd & 0x0f;
-
- switch (dCmd & 0xf0)
- {
- case 0x90: /* NoteOn */
- /* Conductor Track Note Check */
- if (sdTr == 0) dConductorNote |= 1;
- switch (dCurrBank[dCh] >> 8)
- {
- case 0x79:
- /* Melody */
- break;
- case 0x78:
- /* Drum */
- pI->bVoiceMap[DRUM_MAP][pMt->pbBase[pMt->dOffset] & 0x7F] = 1;
+ switch (dCmd & 0xf0) {
+ case 0x90: /* NoteOn */
+ /* Conductor Track Note Check */
+ if (sdTr == 0) dConductorNote |= 1;
+ switch (dCurrBank[dCh] >> 8) {
+ case 0x79:
+ /* Melody */
+ break;
+
+ case 0x78:
+ /* Drum */
+ pI->bVoiceMap[DRUM_MAP][pMt->pbBase[pMt->dOffset] & 0x7F] = 1;
+ break;
+
+ default:
+ if (dCh == 9) {
+ /* Unknown: default GM Drum */
+ pI->bVoiceMap[DRUM_MAP][pMt->pbBase[pMt->dOffset] & 0x7F] = 1;
+ }
+ }
+ pMt->dOffset += 2;
break;
- default:
- if (dCh == 9)
- {
- /* Unknown: default GM Drum */
- pI->bVoiceMap[DRUM_MAP][pMt->pbBase[pMt->dOffset] & 0x7F] = 1;
- }
- }
- pMt->dOffset += 2;
- break;
-
- case 0xC0: /* Program change */
- switch (dBank[dCh] >> 8)
- {
- case 0x79:
- if (dBank[dCh] != 0x7906)
- {
- /* Melody */
- pI->bVoiceMap[MELODY_MAP][pMt->pbBase[pMt->dOffset] & 0x7F] = 1;
- }
- else
- {
- /* Vibration Note */
- pI->dVibNoteVoice = 1;
+ case 0xC0: /* Program change */
+ switch (dBank[dCh] >> 8) {
+ case 0x79:
+ if (dBank[dCh] != 0x7906) {
+ /* Melody */
+ pI->bVoiceMap[MELODY_MAP][pMt->pbBase[pMt->dOffset] & 0x7F] = 1;
+ } else {
+ /* Vibration Note */
+ pI->dVibNoteVoice = 1;
+ }
+ break;
+
+ case 0x78:
+ /* Drum */
+ break;
+
+ default:
+ /* default GM Melody */
+ if (dCh != 9) {
+ pI->bVoiceMap[MELODY_MAP][pMt->pbBase[pMt->dOffset] & 0x7F] = 1;
+ }
}
+
+ dCurrBank[dCh] = dBank[dCh];
+ pMt->dOffset++;
break;
- case 0x78:
- /* Drum */
+ case 0xD0: /* Channel pressure */
+ pMt->dOffset++;
break;
- default:
- /* default GM Melody */
- if (dCh != 9)
- {
- pI->bVoiceMap[MELODY_MAP][pMt->pbBase[pMt->dOffset] & 0x7F] = 1;
+ case 0xB0: /* Control Change */
+ switch (pMt->pbBase[pMt->dOffset]) {
+ case 0x00: /* Bank select(MSB) */
+ dBank[dCh] = (dBank[dCh] & 0x00FF) | (pMt->pbBase[pMt->dOffset + 1] << 8);
+ break;
+
+ case 0x20: /* Bank select (LSB) */
+ dBank[dCh] = (dBank[dCh] & 0xFF00) | pMt->pbBase[pMt->dOffset + 1];
+ break;
+ default:
+ break;
}
- }
-
- dCurrBank[dCh] = dBank[dCh];
- pMt->dOffset++;
- break;
-
- case 0xD0: /* Channel pressure */
- pMt->dOffset++;
- break;
-
- case 0xB0: /* Control Change */
- switch (pMt->pbBase[pMt->dOffset])
- {
- case 0x00: /* Bank select(MSB) */
- dBank[dCh] = (dBank[dCh] & 0x00FF) | (pMt->pbBase[pMt->dOffset + 1] << 8);
+ pMt->dOffset += 2;
break;
-
- case 0x20: /* Bank select (LSB) */
- dBank[dCh] = (dBank[dCh] & 0xFF00) | pMt->pbBase[pMt->dOffset + 1];
+
+ default:
+ pMt->dOffset += 2;
break;
- }
- pMt->dOffset += 2;
- break;
-
- default:
- pMt->dOffset += 2;
}
- }
- else
- {
- switch (dCmd)
- {
- case 0xF0: /* SysEx */
- case 0xF7: /* SysEx */
- pMt->dSmfCmd = 0;
- dSize = 0;
- do
- {
- dTemp = (UINT32)pMt->pbBase[pMt->dOffset++];
- dSize = (dSize << 7) + (dTemp & 0x7f);
- } while (dTemp >= 0x80);
-
- if ((dSize == 5) &&
- (pMt->pbBase[pMt->dOffset] == 0x7e) &&
- (pMt->pbBase[pMt->dOffset + 1] == 0x7f) &&
- (pMt->pbBase[pMt->dOffset + 2] == 0x09) &&
- (pMt->pbBase[pMt->dOffset + 3] == 0x01))
- {
- /* System On */
- if (sdTotalTicks == 0)
- {
- dSetup |= 0x04;
- }
- }
- else
- {
- if (pI->dSetupBar == 0)
- {
- if ((dSize == 22) &&
- (pMt->pbBase[pMt->dOffset] == 0x43) &&
- (pMt->pbBase[pMt->dOffset + 1] == 0x79) &&
- (pMt->pbBase[pMt->dOffset + 2] == 0x06) &&
- (pMt->pbBase[pMt->dOffset + 3] == 0x7C)&&
- (pMt->pbBase[pMt->dOffset + 4] == 0x02))
- {
- /* Channel status */
- for (dCh = 0; dCh < 16; dCh++)
- {
- pCh = &pI->ChInfo[dCh];
- dTemp = pMt->pbBase[pMt->dOffset + 5 + dCh];
- pCh->dKeyCon = (dTemp >> 2) & 0x03;
- pCh->dVibSync = (dTemp >> 1) & 0x01;
- pCh->dLedSync = dTemp & 0x01;
+ } else {
+ switch (dCmd) {
+ case 0xF0: /* SysEx */
+ case 0xF7: /* SysEx */
+ pMt->dSmfCmd = 0;
+ dSize = 0;
+ do {
+ dTemp = (UINT32)pMt->pbBase[pMt->dOffset++];
+ dSize = (dSize << 7) + (dTemp & 0x7f);
+ } while (dTemp >= 0x80);
+
+ if ((dSize == 5) &&
+ (pMt->pbBase[pMt->dOffset] == 0x7e) &&
+ (pMt->pbBase[pMt->dOffset + 1] == 0x7f) &&
+ (pMt->pbBase[pMt->dOffset + 2] == 0x09) &&
+ (pMt->pbBase[pMt->dOffset + 3] == 0x01)) {
+ /* System On */
+ if (sdTotalTicks == 0) {
+ dSetup |= 0x04;
+ }
+ } else {
+ if (pI->dSetupBar == 0) {
+ if ((dSize == 22) &&
+ (pMt->pbBase[pMt->dOffset] == 0x43) &&
+ (pMt->pbBase[pMt->dOffset + 1] == 0x79) &&
+ (pMt->pbBase[pMt->dOffset + 2] == 0x06) &&
+ (pMt->pbBase[pMt->dOffset + 3] == 0x7C) &&
+ (pMt->pbBase[pMt->dOffset + 4] == 0x02)) {
+ /* Channel status */
+ for (dCh = 0; dCh < 16; dCh++) {
+ pCh = &pI->ChInfo[dCh];
+ dTemp = pMt->pbBase[pMt->dOffset + 5 + dCh];
+ pCh->dKeyCon = (dTemp >> 2) & 0x03;
+ pCh->dVibSync = (dTemp >> 1) & 0x01;
+ pCh->dLedSync = dTemp & 0x01;
+ }
}
}
}
- }
-
- pMt->dOffset += dSize;
- break;
-
- case 0xF1: /* System Msg */
- case 0xF3: /* System Msg */
- pMt->dOffset++;
- break;
-
- case 0xF2: /* System Msg */
- pMt->dOffset += 2;
- break;
-
- case 0xFF: /* Meta */
- dCmd2 = (UINT32)pMt->pbBase[pMt->dOffset++]; /* Meta Command */
- dSize = 0; /* Size */
- do
- {
- dTemp = (UINT32)pMt->pbBase[pMt->dOffset++];
- dSize = (dSize << 7) + (dTemp & 0x7f);
- } while (dTemp >= 0x80);
-
- switch (dCmd2)
- {
- case 0x01: /* Text */
- if (pI->pbText == NULL)
- {
- pI->pbText = &pMt->pbBase[pMt->dOffset];
- pI->dSizeText = dSize;
- }
- break;
- case 0x02: /* Copyright */
- if (pI->pbCopyright == NULL)
- {
- pI->pbCopyright = &pMt->pbBase[pMt->dOffset];
- pI->dSizeCopyright = dSize;
- }
+ pMt->dOffset += dSize;
break;
- case 0x06: /* Title */
- if (pI->pbTitle == NULL)
- {
- pI->pbTitle = &pMt->pbBase[pMt->dOffset];
- pI->dSizeTitle = dSize;
- }
+ case 0xF1: /* System Msg */
+ case 0xF3: /* System Msg */
+ pMt->dOffset++;
break;
- case 0x2f: /* End */
- pI->dEndFlag &= ~(1L << sdTr);
+ case 0xF2: /* System Msg */
+ pMt->dOffset += 2;
break;
-
- case 0x51: /* Set Tempo */
- switch (dSize)
- {
- case 3:
- case 4:
- dTime = ((UINT32)pMt->pbBase[pMt->dOffset] << 16) +
- ((UINT32)pMt->pbBase[pMt->dOffset + 1] << 8) +
- (UINT32)pMt->pbBase[pMt->dOffset + 2];
- if ((sdTotalTicks == 0) && (dTime == 250000)) dSetup |= 0x02;
- if (sdTotalTicks == (UINT32)pI->dTimeResolution) dSetup |= 0x08;
-
- /*<== I Think that Below Code is Trash!! and Erase it! (Actually I Don Know ^^)
- dTime = (dTime << 7) / 125; */
-
- sdDelta = (UINT32)(dTime / pI->dTimeResolution);
+
+ case 0xFF: /* Meta */
+ dCmd2 = (UINT32)pMt->pbBase[pMt->dOffset++]; /* Meta Command */
+ dSize = 0; /* Size */
+ do {
+ dTemp = (UINT32)pMt->pbBase[pMt->dOffset++];
+ dSize = (dSize << 7) + (dTemp & 0x7f);
+ } while (dTemp >= 0x80);
+
+ switch (dCmd2) {
+ case 0x01: /* Text */
+ if (pI->pbText == NULL) {
+ pI->pbText = &pMt->pbBase[pMt->dOffset];
+ pI->dSizeText = dSize;
+ }
+ break;
+
+ case 0x02: /* Copyright */
+ if (pI->pbCopyright == NULL) {
+ pI->pbCopyright = &pMt->pbBase[pMt->dOffset];
+ pI->dSizeCopyright = dSize;
+ }
+ break;
+
+ case 0x06: /* Title */
+ if (pI->pbTitle == NULL) {
+ pI->pbTitle = &pMt->pbBase[pMt->dOffset];
+ pI->dSizeTitle = dSize;
+ }
+ break;
+
+ case 0x2f: /* End */
+ pI->dEndFlag &= ~(1L << sdTr);
+ break;
+
+ case 0x51: /* Set Tempo */
+ switch (dSize) {
+ case 3:
+ case 4:
+ dTime = ((UINT32)pMt->pbBase[pMt->dOffset] << 16) +
+ ((UINT32)pMt->pbBase[pMt->dOffset + 1] << 8) +
+ (UINT32)pMt->pbBase[pMt->dOffset + 2];
+ if ((sdTotalTicks == 0) && (dTime == 250000)) dSetup |= 0x02;
+ if (sdTotalTicks == (UINT32)pI->dTimeResolution) dSetup |= 0x08;
+
+ /*<== I Think that Below Code is Trash!! and Erase it! (Actually I Don Know ^^)
+ dTime = (dTime << 7) / 125; */
+
+ sdDelta = (UINT32)(dTime / (pI->dTimeResolution > 0 ? pI->dTimeResolution : 1));
+ break;
+
+ default:
+ break;
+ }
+ break;
+
+ case 0x58: /* Set TimeSignature */
+ if ((sdTotalTicks == 0) &&
+ (pMt->pbBase[pMt->dOffset] == 1) &&
+ (pMt->pbBase[pMt->dOffset + 1] == 2)) dSetup |= 0x01;
+ break;
+ default:
+ break;
}
+ pMt->dOffset += dSize;
break;
-
- case 0x58: /* Set TimeSignature */
- if ((sdTotalTicks == 0) &&
- (pMt->pbBase[pMt->dOffset] == 1) &&
- (pMt->pbBase[pMt->dOffset + 1] == 2)) dSetup |= 0x01;
+ default:
break;
- }
- pMt->dOffset += dSize;
- break;
}
}
-
- if((UINT32)sdTr >= MAX_SMF_TRACKS)
- {
- debug_error ("__AvGetSizeOfFileInfo: Num of tracks is over MAX track number. !!\n");
+
+ if ((UINT32)sdTr >= MAX_SMF_TRACKS) {
+ debug_error("__AvGetSizeOfFileInfo: Num of tracks is over MAX track number. !!\n");
return AvSMW_ERROR_SMF_CMD;
}
__AvMidUpdateTrackTime(pI, (UINT32)sdTr);
-
- if (dSetup == 0x0F)
- {
+
+ if (dSetup == 0x0F) {
dSetup |= 0x10;
sdCurrentTime = 0;
pI->dSetupBar = 1;
@@ -1317,21 +1267,16 @@ __AvGetSizeOfFileInfo(PMIDINFO pI)
}
}
- if ((dConductorNote != 2) || (pI->dSmfFormat == 0))
- {
+ if ((dConductorNote != 2) || (pI->dSmfFormat == 0)) {
pI->sdTotalTicks = sdTotalTicks;
pI->sdDataEndTime = sdCurrentTime;
- }
- else
- {
+ } else {
pI->sdTotalTicks = sdNonConductorTicks;
pI->sdDataEndTime = sdNonConductorTime;
}
-
- if (pI->dSetupBar == 0)
- {
- for (dCh = 0; dCh < 16; dCh++)
- {
+
+ if (pI->dSetupBar == 0) {
+ for (dCh = 0; dCh < 16; dCh++) {
pCh = &pI->ChInfo[dCh];
pCh->dKeyCon = 0;
pCh->dVibSync = 0;
@@ -1340,7 +1285,7 @@ __AvGetSizeOfFileInfo(PMIDINFO pI)
}
if ((pI->sdDataEndTime >> 10) <= MINIMUM_LENGTH) return (AvSMW_ERROR_SHORT_LENGTH);
- // debug_msg("__AvGetSizeOfFileInfo/Done\n");
+ /* debug_msg("__AvGetSizeOfFileInfo/Done\n"); */
return pI->sdDataEndTime;
}
@@ -1359,7 +1304,7 @@ __AvGetSizeOfFileInfo(PMIDINFO pI)
* 0 : NoError, < 0 : Error
****************************************************************************/
static SINT32
-__AvCheckSizeOfMidFile(UINT8* src_fp, UINT32 dFsize)
+__AvCheckSizeOfMidFile(UINT8 *src_fp, UINT32 dFsize)
{
UINT32 dTemp;
UINT32 dSize;
@@ -1368,21 +1313,19 @@ __AvCheckSizeOfMidFile(UINT8* src_fp, UINT32 dFsize)
UINT32 dNumOfTracks;
UINT32 i;
UINT8 *fp = src_fp;
- // debug_msg ("input param: %p, %d\n", fp , dFsize);
- while (dFsize >= 22)
- {
+ /* debug_msg("input param: %p, %d\n", fp, dFsize); */
+ while (dFsize >= 22) {
dTemp = ((UINT32)fp[0] << 24) + ((UINT32)fp[1] << 16) +
((UINT32)fp[2] << 8) + (UINT32)fp[3];
if (dTemp == 0x4D546864) break; /* 'MThd' */
- fp ++;
- dFsize --;
+ fp++;
+ dFsize--;
}
-
- // debug_msg("__AvCheckSizeOfMidFile(): MThd Position is dFsize(%d)\n", dFsize);
-
- if (dFsize < 22)
- {
- debug_error ("__AvCheckSizeOfMidFile Error / Too small size\n");
+
+ /* debug_msg("__AvCheckSizeOfMidFile(): MThd Position is dFsize(%d)\n", dFsize); */
+
+ if (dFsize < 22) {
+ debug_error("__AvCheckSizeOfMidFile Error / Too small size\n");
return (AvSMW_ERROR_FILE);
}
@@ -1392,73 +1335,65 @@ __AvCheckSizeOfMidFile(UINT8* src_fp, UINT32 dFsize)
/*--- Check size ----------------------------------------------------*/
dTemp = ((UINT32)fp[0] << 24) + ((UINT32)fp[1] << 16) +
((UINT32)fp[2] << 8) + (UINT32)fp[3];
-
- if (dTemp != 6)
- {
- debug_error ("__AvCheckSizeOfMidFile Error / Size != 6\n");
+
+ if (dTemp != 6) {
+ debug_error("__AvCheckSizeOfMidFile Error / Size != 6\n");
return (AvSMW_ERROR_CHUNK_SIZE);
}
-
+
fp += 4;
dFsize -= 4;
if (gpMidInfo->DataInfo[1].dValid == 1) return (AvSMW_ERROR);
- pI = &gpMidInfo->DataInfo[1];
-
+ pI = &gpMidInfo->DataInfo[1];
+
/**
* set global val
*/
/*--- Check format -------------------------------------------------*/
dFormat = ((UINT32)fp[0] << 8) + (UINT32)fp[1];
- if (dFormat > 1)
- {
- debug_error ("__AvCheckSizeOfMidFile Error/ Not Format 0 or 1\n");
+ if (dFormat > 1) {
+ debug_error("__AvCheckSizeOfMidFile Error/ Not Format 0 or 1\n");
return (AvSMW_ERROR_SMF_FORMAT);
}
-
+
/*--- Check number of tracks ---------------------------------------*/
dNumOfTracks = (SINT32)((UINT32)fp[2] << 8) + (UINT32)fp[3];
- if (dNumOfTracks == 0)
- {
- debug_error ("__AvCheckSizeOfMidFile Error/ Number of Tracks = 0\n");
+ if (dNumOfTracks == 0) {
+ debug_error("__AvCheckSizeOfMidFile Error/ Number of Tracks = 0\n");
return (AvSMW_ERROR_SMF_TRACKNUM);
}
- if ((dFormat == 0) && (dNumOfTracks != 1))
- {
- debug_error ("__AvCheckSizeOfMidFile Error/ Number of Tracks > 1\n");
+ if ((dFormat == 0) && (dNumOfTracks != 1)) {
+ debug_error("__AvCheckSizeOfMidFile Error/ Number of Tracks > 1\n");
return (AvSMW_ERROR_SMF_TRACKNUM);
}
-
+
if (dNumOfTracks > MAX_SMF_TRACKS) dNumOfTracks = MAX_SMF_TRACKS;
pI->dNumOfTracks = (UINT8)dNumOfTracks;
/*--- Check Time unit --------------------------------------------*/
dTemp = ((UINT32)fp[4] << 8) + (UINT32)fp[5];
pI->dTimeResolution = dTemp & 0x7fff;
- if (((dTemp & 0x8000) != 0) || (pI->dTimeResolution == 0))
- {
- debug_error ("__AvCheckSizeOfMidFile Error/ Unknown TimeUnit\n");
+ if (((dTemp & 0x8000) != 0) || (pI->dTimeResolution == 0)) {
+ debug_error("__AvCheckSizeOfMidFile Error/ Unknown TimeUnit\n");
return (AvSMW_ERROR_SMF_TIMEUNIT);
}
fp += 6;
dFsize -= 6;
-
- for (i = 0; i < dNumOfTracks; i++)
- {
+
+ for (i = 0; i < dNumOfTracks; i++) {
/*--- Check chunk name --------------------------------------------*/
- while (dFsize >= 8)
- {
+ while (dFsize >= 8) {
dTemp = ((UINT32)fp[0] << 24) + ((UINT32)fp[1] << 16) +
((UINT32)fp[2] << 8) + (UINT32)fp[3];
if (dTemp == 0x4D54726B) break; /* 'MTrk' */
- fp ++;
- dFsize --;
+ fp++;
+ dFsize--;
}
- if (dFsize < 8)
- {
- debug_error ("__AvCheckSizeOfMidFile Error/ Bad size\n");
+ if (dFsize < 8) {
+ debug_error("__AvCheckSizeOfMidFile Error/ Bad size\n");
return (AvSMW_ERROR_CHUNK_SIZE);
}
@@ -1466,9 +1401,8 @@ __AvCheckSizeOfMidFile(UINT8* src_fp, UINT32 dFsize)
dSize = ((UINT32)fp[4] << 24) + ((UINT32)fp[5] << 16) +
((UINT32)fp[6] << 8) + (UINT32)fp[7];
- if (dFsize < (dSize + 8))
- {
- debug_error ("__AvCheckSizeOfMidFile Error/ Bad size [%ld] vs [%ld]\n", dFsize, dSize + 22);
+ if (dFsize < (dSize + 8)) {
+ debug_error("__AvCheckSizeOfMidFile Error/ Bad size [%ld] vs [%ld]\n", dFsize, dSize + 22);
return (AvSMW_ERROR_CHUNK_SIZE);
}
pI->TrackInfo[i].pbBase = &fp[8];
@@ -1482,37 +1416,32 @@ __AvCheckSizeOfMidFile(UINT8* src_fp, UINT32 dFsize)
* set global
*/
gPi = pI;
-
+
return (__AvGetSizeOfFileInfo(pI));
}
static int
-__AvParseSkipXmf2Mid(UINT8* pbFile, UINT32 dFSize)
+__AvParseSkipXmf2Mid(UINT8 *pbFile, UINT32 dFSize)
{
- UINT32 skipVal = 0, sizeOfpbFile= dFSize;
- while(1)
- {
- if(pbFile[skipVal] == 'M' && pbFile[skipVal+1] == 'T' && pbFile[skipVal+2] == 'h' && pbFile[skipVal+3] == 'd')
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("__AvParseSkipForXMF : MThd Header found!\n");
- #endif
+ UINT32 skipVal = 0, sizeOfpbFile = dFSize;
+ while (1) {
+ if (pbFile[skipVal] == 'M' && pbFile[skipVal + 1] == 'T' && pbFile[skipVal + 2] == 'h' && pbFile[skipVal + 3] == 'd') {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("__AvParseSkipForXMF : MThd Header found!\n");
+#endif
break;
- }
- else
- {
+ } else {
skipVal++;
- if(skipVal >= sizeOfpbFile)
- {
- debug_error ("__AvParseSkipForXMF : MThd Header is not found!\n");
- debug_error ("__AvParseSkipForXMF :skipVal(%d) sizeOfpbFile(%d) \n", skipVal, sizeOfpbFile);
+ if (skipVal >= sizeOfpbFile) {
+ debug_error("__AvParseSkipForXMF : MThd Header is not found!\n");
+ debug_error("__AvParseSkipForXMF :skipVal(%d) sizeOfpbFile(%d) \n", skipVal, sizeOfpbFile);
return -1;
}
}
}
- // debug_msg("__AvParseSkipForXMF : skip value(%d)\n", skipVal);
-
+ /* debug_msg("__AvParseSkipForXMF : skip value(%d)\n", skipVal); */
+
return skipVal;
}
diff --git a/formats/ffmpeg/mm_file_format_mmf.c b/formats/ffmpeg/mm_file_format_mmf.c
index 7b93f50..b2176e4 100755
--- a/formats/ffmpeg/mm_file_format_mmf.c
+++ b/formats/ffmpeg/mm_file_format_mmf.c
@@ -22,7 +22,7 @@
#include <string.h> /*memcmp*/
#include <stdlib.h> /*malloc*/
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
#include "mm_file_format_mmf.h"
@@ -67,7 +67,7 @@
#define AVMASMW_ERROR_HV_CONFLICT (-26) /* conflict about HV resource */
#define AVMALIB_MAKEDWORD(a, b, c, d) (unsigned int)(((unsigned int)(a) << 24) | \
- ((unsigned int)(b) << 16) | ((unsigned int)(c) << 8) | (unsigned int)(d))
+ ((unsigned int)(b) << 16) | ((unsigned int)(c) << 8) | (unsigned int)(d))
/****************************************************************************
* define
@@ -106,38 +106,38 @@
* table
****************************************************************************/
static const unsigned short g_crc_tbl[256] = {
- 0x0000U,0x1021U,0x2042U,0x3063U,0x4084U,0x50A5U,0x60C6U,0x70E7U,
- 0x8108U,0x9129U,0xA14AU,0xB16BU,0xC18CU,0xD1ADU,0xE1CEU,0xF1EFU,
- 0x1231U,0x0210U,0x3273U,0x2252U,0x52B5U,0x4294U,0x72F7U,0x62D6U,
- 0x9339U,0x8318U,0xB37BU,0xA35AU,0xD3BDU,0xC39CU,0xF3FFU,0xE3DEU,
- 0x2462U,0x3443U,0x0420U,0x1401U,0x64E6U,0x74C7U,0x44A4U,0x5485U,
- 0xA56AU,0xB54BU,0x8528U,0x9509U,0xE5EEU,0xF5CFU,0xC5ACU,0xD58DU,
- 0x3653U,0x2672U,0x1611U,0x0630U,0x76D7U,0x66F6U,0x5695U,0x46B4U,
- 0xB75BU,0xA77AU,0x9719U,0x8738U,0xF7DFU,0xE7FEU,0xD79DU,0xC7BCU,
- 0x48C4U,0x58E5U,0x6886U,0x78A7U,0x0840U,0x1861U,0x2802U,0x3823U,
- 0xC9CCU,0xD9EDU,0xE98EU,0xF9AFU,0x8948U,0x9969U,0xA90AU,0xB92BU,
- 0x5AF5U,0x4AD4U,0x7AB7U,0x6A96U,0x1A71U,0x0A50U,0x3A33U,0x2A12U,
- 0xDBFDU,0xCBDCU,0xFBBFU,0xEB9EU,0x9B79U,0x8B58U,0xBB3BU,0xAB1AU,
- 0x6CA6U,0x7C87U,0x4CE4U,0x5CC5U,0x2C22U,0x3C03U,0x0C60U,0x1C41U,
- 0xEDAEU,0xFD8FU,0xCDECU,0xDDCDU,0xAD2AU,0xBD0BU,0x8D68U,0x9D49U,
- 0x7E97U,0x6EB6U,0x5ED5U,0x4EF4U,0x3E13U,0x2E32U,0x1E51U,0x0E70U,
- 0xFF9FU,0xEFBEU,0xDFDDU,0xCFFCU,0xBF1BU,0xAF3AU,0x9F59U,0x8F78U,
- 0x9188U,0x81A9U,0xB1CAU,0xA1EBU,0xD10CU,0xC12DU,0xF14EU,0xE16FU,
- 0x1080U,0x00A1U,0x30C2U,0x20E3U,0x5004U,0x4025U,0x7046U,0x6067U,
- 0x83B9U,0x9398U,0xA3FBU,0xB3DAU,0xC33DU,0xD31CU,0xE37FU,0xF35EU,
- 0x02B1U,0x1290U,0x22F3U,0x32D2U,0x4235U,0x5214U,0x6277U,0x7256U,
- 0xB5EAU,0xA5CBU,0x95A8U,0x8589U,0xF56EU,0xE54FU,0xD52CU,0xC50DU,
- 0x34E2U,0x24C3U,0x14A0U,0x0481U,0x7466U,0x6447U,0x5424U,0x4405U,
- 0xA7DBU,0xB7FAU,0x8799U,0x97B8U,0xE75FU,0xF77EU,0xC71DU,0xD73CU,
- 0x26D3U,0x36F2U,0x0691U,0x16B0U,0x6657U,0x7676U,0x4615U,0x5634U,
- 0xD94CU,0xC96DU,0xF90EU,0xE92FU,0x99C8U,0x89E9U,0xB98AU,0xA9ABU,
- 0x5844U,0x4865U,0x7806U,0x6827U,0x18C0U,0x08E1U,0x3882U,0x28A3U,
- 0xCB7DU,0xDB5CU,0xEB3FU,0xFB1EU,0x8BF9U,0x9BD8U,0xABBBU,0xBB9AU,
- 0x4A75U,0x5A54U,0x6A37U,0x7A16U,0x0AF1U,0x1AD0U,0x2AB3U,0x3A92U,
- 0xFD2EU,0xED0FU,0xDD6CU,0xCD4DU,0xBDAAU,0xAD8BU,0x9DE8U,0x8DC9U,
- 0x7C26U,0x6C07U,0x5C64U,0x4C45U,0x3CA2U,0x2C83U,0x1CE0U,0x0CC1U,
- 0xEF1FU,0xFF3EU,0xCF5DU,0xDF7CU,0xAF9BU,0xBFBAU,0x8FD9U,0x9FF8U,
- 0x6E17U,0x7E36U,0x4E55U,0x5E74U,0x2E93U,0x3EB2U,0x0ED1U,0x1EF0U
+ 0x0000U, 0x1021U, 0x2042U, 0x3063U, 0x4084U, 0x50A5U, 0x60C6U, 0x70E7U,
+ 0x8108U, 0x9129U, 0xA14AU, 0xB16BU, 0xC18CU, 0xD1ADU, 0xE1CEU, 0xF1EFU,
+ 0x1231U, 0x0210U, 0x3273U, 0x2252U, 0x52B5U, 0x4294U, 0x72F7U, 0x62D6U,
+ 0x9339U, 0x8318U, 0xB37BU, 0xA35AU, 0xD3BDU, 0xC39CU, 0xF3FFU, 0xE3DEU,
+ 0x2462U, 0x3443U, 0x0420U, 0x1401U, 0x64E6U, 0x74C7U, 0x44A4U, 0x5485U,
+ 0xA56AU, 0xB54BU, 0x8528U, 0x9509U, 0xE5EEU, 0xF5CFU, 0xC5ACU, 0xD58DU,
+ 0x3653U, 0x2672U, 0x1611U, 0x0630U, 0x76D7U, 0x66F6U, 0x5695U, 0x46B4U,
+ 0xB75BU, 0xA77AU, 0x9719U, 0x8738U, 0xF7DFU, 0xE7FEU, 0xD79DU, 0xC7BCU,
+ 0x48C4U, 0x58E5U, 0x6886U, 0x78A7U, 0x0840U, 0x1861U, 0x2802U, 0x3823U,
+ 0xC9CCU, 0xD9EDU, 0xE98EU, 0xF9AFU, 0x8948U, 0x9969U, 0xA90AU, 0xB92BU,
+ 0x5AF5U, 0x4AD4U, 0x7AB7U, 0x6A96U, 0x1A71U, 0x0A50U, 0x3A33U, 0x2A12U,
+ 0xDBFDU, 0xCBDCU, 0xFBBFU, 0xEB9EU, 0x9B79U, 0x8B58U, 0xBB3BU, 0xAB1AU,
+ 0x6CA6U, 0x7C87U, 0x4CE4U, 0x5CC5U, 0x2C22U, 0x3C03U, 0x0C60U, 0x1C41U,
+ 0xEDAEU, 0xFD8FU, 0xCDECU, 0xDDCDU, 0xAD2AU, 0xBD0BU, 0x8D68U, 0x9D49U,
+ 0x7E97U, 0x6EB6U, 0x5ED5U, 0x4EF4U, 0x3E13U, 0x2E32U, 0x1E51U, 0x0E70U,
+ 0xFF9FU, 0xEFBEU, 0xDFDDU, 0xCFFCU, 0xBF1BU, 0xAF3AU, 0x9F59U, 0x8F78U,
+ 0x9188U, 0x81A9U, 0xB1CAU, 0xA1EBU, 0xD10CU, 0xC12DU, 0xF14EU, 0xE16FU,
+ 0x1080U, 0x00A1U, 0x30C2U, 0x20E3U, 0x5004U, 0x4025U, 0x7046U, 0x6067U,
+ 0x83B9U, 0x9398U, 0xA3FBU, 0xB3DAU, 0xC33DU, 0xD31CU, 0xE37FU, 0xF35EU,
+ 0x02B1U, 0x1290U, 0x22F3U, 0x32D2U, 0x4235U, 0x5214U, 0x6277U, 0x7256U,
+ 0xB5EAU, 0xA5CBU, 0x95A8U, 0x8589U, 0xF56EU, 0xE54FU, 0xD52CU, 0xC50DU,
+ 0x34E2U, 0x24C3U, 0x14A0U, 0x0481U, 0x7466U, 0x6447U, 0x5424U, 0x4405U,
+ 0xA7DBU, 0xB7FAU, 0x8799U, 0x97B8U, 0xE75FU, 0xF77EU, 0xC71DU, 0xD73CU,
+ 0x26D3U, 0x36F2U, 0x0691U, 0x16B0U, 0x6657U, 0x7676U, 0x4615U, 0x5634U,
+ 0xD94CU, 0xC96DU, 0xF90EU, 0xE92FU, 0x99C8U, 0x89E9U, 0xB98AU, 0xA9ABU,
+ 0x5844U, 0x4865U, 0x7806U, 0x6827U, 0x18C0U, 0x08E1U, 0x3882U, 0x28A3U,
+ 0xCB7DU, 0xDB5CU, 0xEB3FU, 0xFB1EU, 0x8BF9U, 0x9BD8U, 0xABBBU, 0xBB9AU,
+ 0x4A75U, 0x5A54U, 0x6A37U, 0x7A16U, 0x0AF1U, 0x1AD0U, 0x2AB3U, 0x3A92U,
+ 0xFD2EU, 0xED0FU, 0xDD6CU, 0xCD4DU, 0xBDAAU, 0xAD8BU, 0x9DE8U, 0x8DC9U,
+ 0x7C26U, 0x6C07U, 0x5C64U, 0x4C45U, 0x3CA2U, 0x2C83U, 0x1CE0U, 0x0CC1U,
+ 0xEF1FU, 0xFF3EU, 0xCF5DU, 0xDF7CU, 0xAF9BU, 0xBFBAU, 0x8FD9U, 0x9FF8U,
+ 0x6E17U, 0x7E36U, 0x4E55U, 0x5E74U, 0x2E93U, 0x3EB2U, 0x0ED1U, 0x1EF0U
};
/* phase */
@@ -337,8 +337,7 @@ static const unsigned short g_crc_tbl[256] = {
****************************************************************************/
/* OPDA infomation structure */
-typedef struct AvTagOptionInfo
-{
+typedef struct AvTagOptionInfo {
unsigned char *pbCnti; /* pointer to CNTI Body */
unsigned int dCntiSize; /* size of CNTI Body */
unsigned char *pbOpda; /* pointer to OPDA Body */
@@ -346,8 +345,7 @@ typedef struct AvTagOptionInfo
} OPTIONINFO, *POPTIONINFO;
/* Track information structure */
-typedef struct AvTagTrackInfo
-{
+typedef struct AvTagTrackInfo {
unsigned char *pbMtr; /* pointer to MTR(ATR) Body */
unsigned int dMtrSize; /* size of MTR(ATR) Body */
unsigned char *pbMspi; /* pointer to MspI(AspI) Body */
@@ -369,8 +367,7 @@ typedef struct AvTagTrackInfo
} TRACKINFO, *PTRACKINFO;
/* Phrase information structure */
-typedef struct AvTagPhraseInfo
-{
+typedef struct AvTagPhraseInfo {
unsigned int dStartPoint; /* start point of phrase(offset) */
unsigned int dStopPoint; /* stop point of phrase(offset) */
unsigned int dStartTick; /* start point of phrase(tick) */
@@ -378,8 +375,7 @@ typedef struct AvTagPhraseInfo
} PHRASEINFO, *PPHRASEINFO;
/* Huffman information structure */
-typedef struct AvTagHuffmanInfo
-{
+typedef struct AvTagHuffmanInfo {
unsigned int dMtsqSize; /* size of Mtsq(Atsq) Body */
unsigned int dSeqSize; /* size of sequence data */
unsigned int dReadSize; /* read data size */
@@ -394,8 +390,7 @@ typedef struct AvTagHuffmanInfo
} HUFFMANINFO, *PHUFFMANINFO;
/* HV information structure */
-typedef struct AvTagHvInfo
-{
+typedef struct AvTagHvInfo {
unsigned char *pbVoice; /* pointer to HVP0 chunk header */
unsigned int dVoiceSize; /* size of HV voice parameter */
unsigned char *pbScript; /* pointer to Mhsc body */
@@ -405,8 +400,7 @@ typedef struct AvTagHvInfo
/* Load information structure */
-typedef struct AvTagLoadInfo
-{
+typedef struct AvTagLoadInfo {
unsigned char *pbMmmd; /* pointer to MMMD top */
unsigned int dMmmdSize; /* size of MMMD (whole) */
unsigned int dCrc; /* file CRC */
@@ -414,7 +408,7 @@ typedef struct AvTagLoadInfo
unsigned int dPlayTime; /* play time (tick) */
unsigned int dStartTime; /* start time (start point tick) */
unsigned int dTimeBase; /* time base (msec/tick) */
- unsigned char (*pfnGetByte)(PHUFFMANINFO psHuf);
+ unsigned char(*pfnGetByte)(PHUFFMANINFO psHuf);
OPTIONINFO sOption_Info;
TRACKINFO sTrack_Info[AV_MMF_MAX_TRACK_NUM];
PHRASEINFO sPhrase_Info[AV_MMF_MAX_PHRASE_INFO];
@@ -423,8 +417,7 @@ typedef struct AvTagLoadInfo
} LOADINFO, *PLOADINFO;
/* Stream information structure(for MA-2) */
-typedef struct AvTagStreamInfo2
-{
+typedef struct AvTagStreamInfo2 {
unsigned char bStrmID; /* key number of stream */
unsigned char *pbWave; /* pointer to Awa body */
unsigned int dWaveSize; /* size of Awa body */
@@ -432,44 +425,38 @@ typedef struct AvTagStreamInfo2
} STREAMINFO2, *PSTREAMINFO2;
/* Stream information structure(for MA-3/5) */
-typedef struct AvTagStreamInfo3
-{
+typedef struct AvTagStreamInfo3 {
unsigned char fbNote; /* stream data flag */
unsigned char bPairID; /* stream pair ID */
unsigned char bPan; /* stream pan */
} STREAMINFO3, *PSTREAMINFO3;
/* Stream information structure */
-typedef struct AvTagStreamInfo
-{
+typedef struct AvTagStreamInfo {
STREAMINFO2 sStream_Info2[AV_MMF_MAX_STREAM_DATA_NUM2];
STREAMINFO3 sStream_Info3[AV_MMF_MAX_STREAM_DATA_NUM3];
} STREAMINFO, *PSTREAMINFO;
/* Voice information structure(for MA-1/2) */
-typedef struct AvTagVoiceInfo2
-{
+typedef struct AvTagVoiceInfo2 {
unsigned char bBank; /* bank number */
unsigned char bProg; /* program number */
} VOICEINFO2, *PVOICEINFO2;
/* Wave information structure(for MA-3/5) */
-typedef struct AvTagWaveInfo3
-{
+typedef struct AvTagWaveInfo3 {
unsigned int dAdrs; /* wave address */
unsigned int dSize; /* wave data size */
} WAVEINFO3, *PWAVEINFO3;
/* Voice information structure */
-typedef struct AvTagVoiceInfo
-{
+typedef struct AvTagVoiceInfo {
VOICEINFO2 sVoice_Info2[AV_MMF_MAX_VOICE_DATA_NUM2];
WAVEINFO3 sWave_Info3[AV_MMF_MAX_WAVE_DATA_NUM3];
} VOICEINFO, *PVOICEINFO;
/* Channel information structure */
-typedef struct AvTagChannelInfo
-{
+typedef struct AvTagChannelInfo {
unsigned char bBankM; /* bank select MSB */
unsigned char bBankL; /* bank select LSB */
unsigned char bBank; /* bank number (sound driver) */
@@ -494,8 +481,7 @@ typedef struct AvTagChannelInfo
} CHANNELINFO, *PCHANNELINFO;
/* Event information structure */
-typedef struct AvTagEventBlock
-{
+typedef struct AvTagEventBlock {
unsigned int dEventTime; /* event activation time */
unsigned int dSeqID; /* sequencer ID (sound driver) */
unsigned int dCmd; /* command ID (sound driver) */
@@ -505,23 +491,21 @@ typedef struct AvTagEventBlock
unsigned char *pbSeq; /* pointer to next event data */
unsigned int dIndex; /* index of next event */
unsigned int dTrackNo; /* track no. */
- void * pvNext; /* pointer to next event block */
+ void *pvNext; /* pointer to next event block */
} EVENTBLOCK, *PEVENTBLOCK;
/* Note OFF information structure */
-typedef struct AvTagNoteOffBlock
-{
+typedef struct AvTagNoteOffBlock {
unsigned int dOffTime; /* note off activation time */
unsigned int dSeqID; /* sequencer ID (sound driver) */
unsigned int dCmd; /* command ID (sound driver) */
unsigned int dCh; /* channel no. */
unsigned int dKey; /* key no. */
- void * pvNext; /* pointer to next note off block */
+ void *pvNext; /* pointer to next note off block */
} OFFBLOCK, *POFFBLOCK;
/* Playback information structure */
-typedef struct AvTagPlayInfo
-{
+typedef struct AvTagPlayInfo {
PEVENTBLOCK psNextEvent; /* pointer to next event block */
PEVENTBLOCK psEmptyEvent; /* pointer to empty event block */
POFFBLOCK psNextOff; /* pointer to next note off block */
@@ -555,8 +539,7 @@ typedef struct AvTagPlayInfo
} PLAYINFO, *PPLAYINFO;
/* SMAF information structure */
-typedef struct AvTagSmafInfo
-{
+typedef struct AvTagSmafInfo {
int sdMmfSeqID; /* sequence id (sound driver) */
unsigned int dStatus; /* converter status */
LOADINFO sLoad_Info[2];
@@ -568,8 +551,8 @@ static const unsigned char g_abBitMaskTable1[8] = {0x01, 0x02, 0x04, 0x08, 0x10,
static const unsigned short g_awBitMaskTable2[8] = {0x00FF, 0x01FE, 0x03FC, 0x07F8, 0x0FF0, 0x1FE0, 0x3FC0, 0x7F80};
static const unsigned char g_abTableA[16] = {0, 1, 1, 1, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15};
static const unsigned char g_abTableD[16] = {0, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
-static const unsigned char g_abExpression2[16] = {0x80,0x00,0x1f,0x27,0x2f,0x37,0x3f,0x47,0x4f,0x57,0x5f,0x67,0x6f,0x77,0x7f,0x80};
-static const unsigned char g_abModulation2[16] = {0x80,0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,0x40,0x48,0x50,0x60,0x70,0x7f,0x80};
+static const unsigned char g_abExpression2[16] = {0x80, 0x00, 0x1f, 0x27, 0x2f, 0x37, 0x3f, 0x47, 0x4f, 0x57, 0x5f, 0x67, 0x6f, 0x77, 0x7f, 0x80};
+static const unsigned char g_abModulation2[16] = {0x80, 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x60, 0x70, 0x7f, 0x80};
/**
* Define.
@@ -584,33 +567,33 @@ static const unsigned char g_abModulation2[16] = {0x80,0x00,0x08,0x10,0x18,0x20,
/* internals */
-static int mmf_file_mmf_get_duration (char *src, int is_xmf);
+static int mmf_file_mmf_get_duration(char *src, int is_xmf);
/* mm plugin porting */
/* plugin manadatory API */
-int mmfile_format_read_stream_mmf (MMFileFormatContext *formatContext);
-int mmfile_format_read_frame_mmf (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
-int mmfile_format_read_tag_mmf (MMFileFormatContext *formatContext);
-int mmfile_format_close_mmf (MMFileFormatContext *formatContext);
+int mmfile_format_read_stream_mmf(MMFileFormatContext *formatContext);
+int mmfile_format_read_frame_mmf(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
+int mmfile_format_read_tag_mmf(MMFileFormatContext *formatContext);
+int mmfile_format_close_mmf(MMFileFormatContext *formatContext);
EXPORT_API
-int mmfile_format_open_mmf (MMFileFormatContext *formatContext)
-{
+int mmfile_format_open_mmf(MMFileFormatContext *formatContext)
+{
int ret = 0;
if (NULL == formatContext) {
- debug_error ("error: formatContext is NULL\n");
- return MMFILE_FORMAT_FAIL;
+ debug_error("error: formatContext is NULL\n");
+ return MMFILE_FORMAT_FAIL;
}
if (formatContext->pre_checked == 0) {
- ret = MMFileFormatIsValidMMF (formatContext->uriFileName);
+ ret = MMFileFormatIsValidMMF(NULL, formatContext->uriFileName);
if (ret == 0) {
- debug_error ("error: it is not MMF file\n");
- return MMFILE_FORMAT_FAIL;
+ debug_error("error: it is not MMF file\n");
+ return MMFILE_FORMAT_FAIL;
}
}
@@ -626,51 +609,49 @@ int mmfile_format_open_mmf (MMFileFormatContext *formatContext)
}
EXPORT_API
-int mmfile_format_read_stream_mmf (MMFileFormatContext *formatContext)
+int mmfile_format_read_stream_mmf(MMFileFormatContext *formatContext)
{
- int total = 0;
-
- total = mmf_file_mmf_get_duration (formatContext->uriFileName, 0 /*not XMF*/);
- if ( total < 0 )
- {
- debug_error ("error: get duration\n");
- return MMFILE_FORMAT_FAIL;
- }
-
-
- formatContext->duration = total;
- formatContext->audioTotalTrackNum = 1;
- formatContext->nbStreams = 1;
- formatContext->streams[MMFILE_AUDIO_STREAM] = mmfile_malloc (sizeof(MMFileFormatStream));
- if (NULL == formatContext->streams[MMFILE_AUDIO_STREAM])
- {
- debug_error ("error: mmfile_malloc, audido stream\n");
- return MMFILE_FORMAT_FAIL;
- }
-
- formatContext->streams[MMFILE_AUDIO_STREAM]->codecId =MM_AUDIO_CODEC_MMF;
- formatContext->streams[MMFILE_AUDIO_STREAM]->nbChannel = 1;
-
- return MMFILE_FORMAT_SUCCESS;
+ int total = 0;
+
+ total = mmf_file_mmf_get_duration(formatContext->uriFileName, 0 /*not XMF*/);
+ if (total < 0) {
+ debug_error("error: get duration\n");
+ return MMFILE_FORMAT_FAIL;
+ }
+
+
+ formatContext->duration = total;
+ formatContext->audioTotalTrackNum = 1;
+ formatContext->nbStreams = 1;
+ formatContext->streams[MMFILE_AUDIO_STREAM] = mmfile_malloc(sizeof(MMFileFormatStream));
+ if (NULL == formatContext->streams[MMFILE_AUDIO_STREAM]) {
+ debug_error("error: mmfile_malloc, audido stream\n");
+ return MMFILE_FORMAT_FAIL;
+ }
+
+ formatContext->streams[MMFILE_AUDIO_STREAM]->codecId = MM_AUDIO_CODEC_MMF;
+ formatContext->streams[MMFILE_AUDIO_STREAM]->nbChannel = 1;
+
+ return MMFILE_FORMAT_SUCCESS;
}
EXPORT_API
-int mmfile_format_read_frame_mmf (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame)
+int mmfile_format_read_frame_mmf(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame)
{
- return MMFILE_FORMAT_SUCCESS;
+ return MMFILE_FORMAT_SUCCESS;
}
EXPORT_API
-int mmfile_format_read_tag_mmf (MMFileFormatContext *formatContext)
+int mmfile_format_read_tag_mmf(MMFileFormatContext *formatContext)
{
- return MMFILE_FORMAT_SUCCESS;
+ return MMFILE_FORMAT_SUCCESS;
}
EXPORT_API
-int mmfile_format_close_mmf (MMFileFormatContext *formatContext)
+int mmfile_format_close_mmf(MMFileFormatContext *formatContext)
{
- return MMFILE_FORMAT_SUCCESS;
+ return MMFILE_FORMAT_SUCCESS;
}
@@ -685,12 +666,12 @@ int mmfile_format_close_mmf (MMFileFormatContext *formatContext)
* nothing
********************************************************************************/
static unsigned int
-_mmf_Get4Byte(unsigned char* pbBuf)
+_mmf_Get4Byte(unsigned char *pbBuf)
{
- return (unsigned int)( (((unsigned int)pbBuf[0]) << 24) +
- (((unsigned int)pbBuf[1]) << 16) +
- (((unsigned int)pbBuf[2]) << 8) +
- ((unsigned int)pbBuf[3]));
+ return (unsigned int)((((unsigned int)pbBuf[0]) << 24) +
+ (((unsigned int)pbBuf[1]) << 16) +
+ (((unsigned int)pbBuf[2]) << 8) +
+ ((unsigned int)pbBuf[3]));
}
@@ -709,7 +690,7 @@ _mmf_CheckInitial(PLOADINFO psLoad)
{
unsigned char i;
-/* Initialize Load information structure */
+ /* Initialize Load information structure */
psLoad->pbMmmd = NULL;
psLoad->dMmmdSize = 0;
psLoad->dCrc = AV_MMF_CRC_NULL;
@@ -724,8 +705,7 @@ _mmf_CheckInitial(PLOADINFO psLoad)
psLoad->sOption_Info.pbOpda = NULL;
psLoad->sOption_Info.dOpdaSize = 0;
- for ( i = 0; i < AV_MMF_MAX_TRACK_NUM; i++)
- {
+ for (i = 0; i < AV_MMF_MAX_TRACK_NUM; i++) {
psLoad->sTrack_Info[i].pbMtr = NULL;
psLoad->sTrack_Info[i].dMtrSize = 0;
psLoad->sTrack_Info[i].pbMspi = NULL;
@@ -746,8 +726,7 @@ _mmf_CheckInitial(PLOADINFO psLoad)
psLoad->sTrack_Info[i].dStopTick = AV_MMF_STSP_TIME_NULL;
}
- for ( i = 0; i < AV_MMF_MAX_PHRASE_INFO; i++)
- {
+ for (i = 0; i < AV_MMF_MAX_PHRASE_INFO; i++) {
psLoad->sPhrase_Info[i].dStartPoint = AV_MMF_STSP_OFFSET_NULL;
psLoad->sPhrase_Info[i].dStopPoint = AV_MMF_STSP_OFFSET_NULL;
psLoad->sPhrase_Info[i].dStartTick = AV_MMF_STSP_TIME_NULL;
@@ -776,20 +755,26 @@ _mmf_CheckInitial(PLOADINFO psLoad)
static int
_mmf_GetTimebase(unsigned char bData)
{
- switch ( bData )
- {
- case 0x02: return 4; /* 4[msec/tick] */
- case 0x03: return 5; /* 5[msec/tick] */
- case 0x10: return 10; /* 10[msec/tick] */
- case 0x11: return 20; /* 20[msec/tick] */
- case 0x12: return 40; /* 40[msec/tick] */
- case 0x13: return 50; /* 50[msec/tick] */
- default: return AV_MMF_FUNC_ERROR; /* Time Base Error */
+ switch (bData) {
+ case 0x02:
+ return 4; /* 4[msec/tick] */
+ case 0x03:
+ return 5; /* 5[msec/tick] */
+ case 0x10:
+ return 10; /* 10[msec/tick] */
+ case 0x11:
+ return 20; /* 20[msec/tick] */
+ case 0x12:
+ return 40; /* 40[msec/tick] */
+ case 0x13:
+ return 50; /* 50[msec/tick] */
+ default:
+ return AV_MMF_FUNC_ERROR; /* Time Base Error */
}
}
static int
-_mmf_MalibNextChunk(unsigned char* pbFile, unsigned int dSize, unsigned int dState, unsigned int* pdChunkID, unsigned int* pdChunkNo)
+_mmf_MalibNextChunk(unsigned char *pbFile, unsigned int dSize, unsigned int dState, unsigned int *pdChunkID, unsigned int *pdChunkNo)
{
unsigned int dChunkID, dChunkSize;
@@ -799,124 +784,122 @@ _mmf_MalibNextChunk(unsigned char* pbFile, unsigned int dSize, unsigned int dSta
dChunkID = AVMALIB_MAKEDWORD(pbFile[0], pbFile[1], pbFile[2], pbFile[3]);
dChunkSize = AVMALIB_MAKEDWORD(pbFile[4], pbFile[5], pbFile[6], pbFile[7]);
- switch (dChunkID)
- {
- case AVMALIB_CHUNKID_MMMD :
- *pdChunkID = AVMALIB_CHUNKCODE_MMMD;
- if (dState != AVMALIB_CHUNK_PHASE_MMMD)
- return AVMALIB_CHUNK_ID_ERROR;
- break;
- case AVMALIB_CHUNKID_CNTI :
- *pdChunkID = AVMALIB_CHUNKCODE_CNTI;
- if (dState != AVMALIB_CHUNK_PHASE_CNTI)
- return AVMALIB_CHUNK_ID_ERROR;
- break;
- case AVMALIB_CHUNKID_OPDA :
- *pdChunkID = AVMALIB_CHUNKCODE_OPDA;
- if (dState != AVMALIB_CHUNK_PHASE_MMMDSUB)
- return AVMALIB_CHUNK_ID_ERROR;
- break;
- case AVMALIB_CHUNKID_MSPI :
- *pdChunkID = AVMALIB_CHUNKCODE_MSPI;
- if (dState != AVMALIB_CHUNK_PHASE_MTRSUB)
- return AVMALIB_CHUNK_ID_ERROR;
- break;
- case AVMALIB_CHUNKID_MTSU :
- *pdChunkID = AVMALIB_CHUNKCODE_MTSU;
- if (dState != AVMALIB_CHUNK_PHASE_MTRSUB)
- return AVMALIB_CHUNK_ID_ERROR;
- break;
- case AVMALIB_CHUNKID_MTSQ :
- *pdChunkID = AVMALIB_CHUNKCODE_MTSQ;
- if (dState != AVMALIB_CHUNK_PHASE_MTRSUB)
- return AVMALIB_CHUNK_ID_ERROR;
- break;
- case AVMALIB_CHUNKID_MTSP :
- *pdChunkID = AVMALIB_CHUNKCODE_MTSP;
- if (dState != AVMALIB_CHUNK_PHASE_MTRSUB)
- return AVMALIB_CHUNK_ID_ERROR;
- break;
- case AVMALIB_CHUNKID_ASPI :
- *pdChunkID = AVMALIB_CHUNKCODE_ASPI;
- if (dState != AVMALIB_CHUNK_PHASE_ATRSUB)
- return AVMALIB_CHUNK_ID_ERROR;
- break;
- case AVMALIB_CHUNKID_ATSU :
- *pdChunkID = AVMALIB_CHUNKCODE_ATSU;
- if (dState != AVMALIB_CHUNK_PHASE_ATRSUB)
- return AVMALIB_CHUNK_ID_ERROR;
- break;
- case AVMALIB_CHUNKID_ATSQ :
- *pdChunkID = AVMALIB_CHUNKCODE_ATSQ;
- if (dState != AVMALIB_CHUNK_PHASE_ATRSUB)
- return AVMALIB_CHUNK_ID_ERROR;
- break;
-
- case AVMALIB_CHUNKID_MTHV :
- *pdChunkID = AVMALIB_CHUNKCODE_MTHV;
- if (dState != AVMALIB_CHUNK_PHASE_MTRSUB)
- return AVMALIB_CHUNK_ID_ERROR;
- break;
- case AVMALIB_CHUNKID_MHVS :
- *pdChunkID = AVMALIB_CHUNKCODE_MHVS;
- if (dState != AVMALIB_CHUNK_PHASE_MTHVSUB)
- return AVMALIB_CHUNK_ID_ERROR;
- break;
- case AVMALIB_CHUNKID_MHSC :
- *pdChunkID = AVMALIB_CHUNKCODE_MHSC;
- if (dState != AVMALIB_CHUNK_PHASE_MTHVSUB)
- return AVMALIB_CHUNK_ID_ERROR;
- break;
-
- default :
- *pdChunkNo = (unsigned char)(dChunkID & 0x000000FF);
- switch (dChunkID & 0xFFFFFF00)
- {
- case AVMALIB_CHUNKID_MTR :
- *pdChunkID = AVMALIB_CHUNKCODE_MTR;
- if (dState != AVMALIB_CHUNK_PHASE_MMMDSUB)
+ switch (dChunkID) {
+ case AVMALIB_CHUNKID_MMMD:
+ *pdChunkID = AVMALIB_CHUNKCODE_MMMD;
+ if (dState != AVMALIB_CHUNK_PHASE_MMMD)
+ return AVMALIB_CHUNK_ID_ERROR;
+ break;
+ case AVMALIB_CHUNKID_CNTI:
+ *pdChunkID = AVMALIB_CHUNKCODE_CNTI;
+ if (dState != AVMALIB_CHUNK_PHASE_CNTI)
return AVMALIB_CHUNK_ID_ERROR;
break;
- case AVMALIB_CHUNKID_ATR :
- *pdChunkID = AVMALIB_CHUNKCODE_ATR;
+ case AVMALIB_CHUNKID_OPDA:
+ *pdChunkID = AVMALIB_CHUNKCODE_OPDA;
if (dState != AVMALIB_CHUNK_PHASE_MMMDSUB)
return AVMALIB_CHUNK_ID_ERROR;
break;
-
- case AVMALIB_CHUNKID_DCH :
- *pdChunkID = AVMALIB_CHUNKCODE_DCH;
- if (dState != AVMALIB_CHUNK_PHASE_OPDASUB)
+ case AVMALIB_CHUNKID_MSPI:
+ *pdChunkID = AVMALIB_CHUNKCODE_MSPI;
+ if (dState != AVMALIB_CHUNK_PHASE_MTRSUB)
return AVMALIB_CHUNK_ID_ERROR;
break;
- case AVMALIB_CHUNKID_M5P :
- *pdChunkID = AVMALIB_CHUNKCODE_M5P;
- if (dState != AVMALIB_CHUNK_PHASE_OPDASUB)
+ case AVMALIB_CHUNKID_MTSU:
+ *pdChunkID = AVMALIB_CHUNKCODE_MTSU;
+ if (dState != AVMALIB_CHUNK_PHASE_MTRSUB)
return AVMALIB_CHUNK_ID_ERROR;
break;
-
- case AVMALIB_CHUNKID_MWA :
- *pdChunkID = AVMALIB_CHUNKCODE_MWA;
- if (dState != AVMALIB_CHUNK_PHASE_MTSPSUB)
+ case AVMALIB_CHUNKID_MTSQ:
+ *pdChunkID = AVMALIB_CHUNKCODE_MTSQ;
+ if (dState != AVMALIB_CHUNK_PHASE_MTRSUB)
return AVMALIB_CHUNK_ID_ERROR;
break;
-
- case AVMALIB_CHUNKID_AWA :
- *pdChunkID = AVMALIB_CHUNKCODE_AWA;
+ case AVMALIB_CHUNKID_MTSP:
+ *pdChunkID = AVMALIB_CHUNKCODE_MTSP;
+ if (dState != AVMALIB_CHUNK_PHASE_MTRSUB)
+ return AVMALIB_CHUNK_ID_ERROR;
+ break;
+ case AVMALIB_CHUNKID_ASPI:
+ *pdChunkID = AVMALIB_CHUNKCODE_ASPI;
+ if (dState != AVMALIB_CHUNK_PHASE_ATRSUB)
+ return AVMALIB_CHUNK_ID_ERROR;
+ break;
+ case AVMALIB_CHUNKID_ATSU:
+ *pdChunkID = AVMALIB_CHUNKCODE_ATSU;
+ if (dState != AVMALIB_CHUNK_PHASE_ATRSUB)
+ return AVMALIB_CHUNK_ID_ERROR;
+ break;
+ case AVMALIB_CHUNKID_ATSQ:
+ *pdChunkID = AVMALIB_CHUNKCODE_ATSQ;
if (dState != AVMALIB_CHUNK_PHASE_ATRSUB)
return AVMALIB_CHUNK_ID_ERROR;
break;
- case AVMALIB_CHUNKID_HVP :
- *pdChunkID = AVMALIB_CHUNKCODE_HVP;
+ case AVMALIB_CHUNKID_MTHV:
+ *pdChunkID = AVMALIB_CHUNKCODE_MTHV;
+ if (dState != AVMALIB_CHUNK_PHASE_MTRSUB)
+ return AVMALIB_CHUNK_ID_ERROR;
+ break;
+ case AVMALIB_CHUNKID_MHVS:
+ *pdChunkID = AVMALIB_CHUNKCODE_MHVS;
if (dState != AVMALIB_CHUNK_PHASE_MTHVSUB)
return AVMALIB_CHUNK_ID_ERROR;
break;
+ case AVMALIB_CHUNKID_MHSC:
+ *pdChunkID = AVMALIB_CHUNKCODE_MHSC;
+ if (dState != AVMALIB_CHUNK_PHASE_MTHVSUB)
+ return AVMALIB_CHUNK_ID_ERROR;
+ break;
+
+ default:
+ *pdChunkNo = (unsigned char)(dChunkID & 0x000000FF);
+ switch (dChunkID & 0xFFFFFF00) {
+ case AVMALIB_CHUNKID_MTR:
+ *pdChunkID = AVMALIB_CHUNKCODE_MTR;
+ if (dState != AVMALIB_CHUNK_PHASE_MMMDSUB)
+ return AVMALIB_CHUNK_ID_ERROR;
+ break;
+ case AVMALIB_CHUNKID_ATR:
+ *pdChunkID = AVMALIB_CHUNKCODE_ATR;
+ if (dState != AVMALIB_CHUNK_PHASE_MMMDSUB)
+ return AVMALIB_CHUNK_ID_ERROR;
+ break;
+
+ case AVMALIB_CHUNKID_DCH:
+ *pdChunkID = AVMALIB_CHUNKCODE_DCH;
+ if (dState != AVMALIB_CHUNK_PHASE_OPDASUB)
+ return AVMALIB_CHUNK_ID_ERROR;
+ break;
+ case AVMALIB_CHUNKID_M5P:
+ *pdChunkID = AVMALIB_CHUNKCODE_M5P;
+ if (dState != AVMALIB_CHUNK_PHASE_OPDASUB)
+ return AVMALIB_CHUNK_ID_ERROR;
+ break;
- default :
- *pdChunkID = AVMALIB_CHUNKCODE_UNKNOWN;
+ case AVMALIB_CHUNKID_MWA:
+ *pdChunkID = AVMALIB_CHUNKCODE_MWA;
+ if (dState != AVMALIB_CHUNK_PHASE_MTSPSUB)
+ return AVMALIB_CHUNK_ID_ERROR;
+ break;
+
+ case AVMALIB_CHUNKID_AWA:
+ *pdChunkID = AVMALIB_CHUNKCODE_AWA;
+ if (dState != AVMALIB_CHUNK_PHASE_ATRSUB)
+ return AVMALIB_CHUNK_ID_ERROR;
+ break;
+
+ case AVMALIB_CHUNKID_HVP:
+ *pdChunkID = AVMALIB_CHUNKCODE_HVP;
+ if (dState != AVMALIB_CHUNK_PHASE_MTHVSUB)
+ return AVMALIB_CHUNK_ID_ERROR;
+ break;
+
+ default:
+ *pdChunkID = AVMALIB_CHUNKCODE_UNKNOWN;
+ break;
+ }
break;
- }
- break;
}
if (dChunkSize > (dSize - AVMALIB_SIZE_OF_CHUNKHEADER))
@@ -944,96 +927,88 @@ _mmf_MTRCheck(PTRACKINFO psTrack, unsigned char bSmafType)
{
int sdResult, sdChunkSize;
unsigned int dSize, dIndex;
- unsigned char* pbBuf;
+ unsigned char *pbBuf;
unsigned int dChunkID, dChunkNo;
-/* Check Format Type */
- switch (bSmafType)
- {
- case AV_MMF_SMAF_TYPE_MA1 :
- case AV_MMF_SMAF_TYPE_MA2 :
- if (psTrack->pbMtr[0] != 0x00)
- {
- return AV_MMF_ERR_CHUNK;
- }
- break;
- case AV_MMF_SMAF_TYPE_MA3 :
- if ((psTrack->pbMtr[0] != 0x01) && (psTrack->pbMtr[0] != 0x02))
- {
- return AV_MMF_ERR_CHUNK;
- }
- break;
- case AV_MMF_SMAF_TYPE_MA5 :
- if (psTrack->pbMtr[0] != 0x02)
- {
- return AV_MMF_ERR_CHUNK;
- }
- break;
+ /* Check Format Type */
+ switch (bSmafType) {
+ case AV_MMF_SMAF_TYPE_MA1:
+ case AV_MMF_SMAF_TYPE_MA2:
+ if (psTrack->pbMtr[0] != 0x00) {
+ return AV_MMF_ERR_CHUNK;
+ }
+ break;
+ case AV_MMF_SMAF_TYPE_MA3:
+ if ((psTrack->pbMtr[0] != 0x01) && (psTrack->pbMtr[0] != 0x02)) {
+ return AV_MMF_ERR_CHUNK;
+ }
+ break;
+ case AV_MMF_SMAF_TYPE_MA5:
+ if (psTrack->pbMtr[0] != 0x02) {
+ return AV_MMF_ERR_CHUNK;
+ }
+ break;
+ default:
+ break;
}
-/* Check Sequence Type */
- if (psTrack->pbMtr[1] != 0x00)
- {
+ /* Check Sequence Type */
+ if (psTrack->pbMtr[1] != 0x00) {
return AV_MMF_ERR_CHUNK;
}
-/* Check Time Base */
- if (psTrack->pbMtr[2] != psTrack->pbMtr[3])
- {
+ /* Check Time Base */
+ if (psTrack->pbMtr[2] != psTrack->pbMtr[3]) {
return AV_MMF_ERR_CHUNK;
}
sdResult = _mmf_GetTimebase(psTrack->pbMtr[2]);
- if (sdResult == AV_MMF_FUNC_ERROR)
- {
+ if (sdResult == AV_MMF_FUNC_ERROR) {
return AV_MMF_ERR_CHUNK;
}
psTrack->dTimeBase = (unsigned int)sdResult;
-/* Check sub chunk disposition */
+ /* Check sub chunk disposition */
if ((bSmafType == AV_MMF_SMAF_TYPE_MA1) || (bSmafType == AV_MMF_SMAF_TYPE_MA2))
dIndex = AV_MMF_MINIMUM_TRACKSIZE2;
else
dIndex = AV_MMF_MINIMUM_TRACKSIZE3;
pbBuf = psTrack->pbMtr;
dSize = psTrack->dMtrSize;
- while (dSize > (dIndex + AV_MMF_CHUNK_HEADER_SIZE))
- {
- sdChunkSize = _mmf_MalibNextChunk(&pbBuf[dIndex], (dSize-dIndex),
- AVMALIB_CHUNK_PHASE_MTRSUB, &dChunkID, &dChunkNo);
- if (sdChunkSize < 0)
- {
+ while (dSize > (dIndex + AV_MMF_CHUNK_HEADER_SIZE)) {
+ sdChunkSize = _mmf_MalibNextChunk(&pbBuf[dIndex], (dSize - dIndex),
+ AVMALIB_CHUNK_PHASE_MTRSUB, &dChunkID, &dChunkNo);
+ if (sdChunkSize < 0) {
return AV_MMF_ERR_CHUNK;
}
dIndex += AV_MMF_CHUNK_HEADER_SIZE;
switch (dChunkID) {
- case AVMALIB_CHUNKCODE_MSPI :
- psTrack->pbMspi = &(pbBuf[dIndex]);
- psTrack->dMspiSize = sdChunkSize;
- break;
- case AVMALIB_CHUNKCODE_MTSU :
- psTrack->pbMtsu = &(pbBuf[dIndex]);
- psTrack->dMtsuSize = sdChunkSize;
- break;
- case AVMALIB_CHUNKCODE_MTSQ :
- psTrack->pbMtsq = &(pbBuf[dIndex]);
- psTrack->dMtsqSize = sdChunkSize;
- break;
- case AVMALIB_CHUNKCODE_MTSP :
- psTrack->pbMtsp = &(pbBuf[dIndex]);
- psTrack->dMtspSize = sdChunkSize;
- break;
- case AVMALIB_CHUNKCODE_MTHV :
- psTrack->pbMthv = &(pbBuf[dIndex]);
- psTrack->dMthvSize = sdChunkSize;
- break;
- default :
- break;
+ case AVMALIB_CHUNKCODE_MSPI:
+ psTrack->pbMspi = &(pbBuf[dIndex]);
+ psTrack->dMspiSize = sdChunkSize;
+ break;
+ case AVMALIB_CHUNKCODE_MTSU:
+ psTrack->pbMtsu = &(pbBuf[dIndex]);
+ psTrack->dMtsuSize = sdChunkSize;
+ break;
+ case AVMALIB_CHUNKCODE_MTSQ:
+ psTrack->pbMtsq = &(pbBuf[dIndex]);
+ psTrack->dMtsqSize = sdChunkSize;
+ break;
+ case AVMALIB_CHUNKCODE_MTSP:
+ psTrack->pbMtsp = &(pbBuf[dIndex]);
+ psTrack->dMtspSize = sdChunkSize;
+ break;
+ case AVMALIB_CHUNKCODE_MTHV:
+ psTrack->pbMthv = &(pbBuf[dIndex]);
+ psTrack->dMthvSize = sdChunkSize;
+ break;
+ default:
+ break;
}
dIndex += sdChunkSize;
}
- if ((psTrack->pbMtsq == NULL) ||(psTrack->dMtsqSize == 0))
- {
+ if ((psTrack->pbMtsq == NULL) || (psTrack->dMtsqSize == 0)) {
return AV_MMF_ERR_SLENGTH;
}
return AV_MMF_FUNC_SUCCESS;
@@ -1056,37 +1031,32 @@ _mmf_ATRCheck(PTRACKINFO psTrack)
{
int sdResult, sdChunkSize;
unsigned int dSize, dIndex;
- unsigned char* pbBuf;
+ unsigned char *pbBuf;
unsigned int dChunkID, dChunkNo;
unsigned char fbWave;
-/* Check Format Type */
- if (psTrack->pbMtr[0] != 0x00)
- {
+ /* Check Format Type */
+ if (psTrack->pbMtr[0] != 0x00) {
return AV_MMF_ERR_CHUNK;
}
-/* Check Sequence Type */
- if (psTrack->pbMtr[1] != 0x00)
- {
+ /* Check Sequence Type */
+ if (psTrack->pbMtr[1] != 0x00) {
return AV_MMF_ERR_CHUNK;
}
-/* Check Wave Type */
+ /* Check Wave Type */
if (((psTrack->pbMtr[2] != 0x10) && (psTrack->pbMtr[2] != 0x11)) ||
- ((psTrack->pbMtr[3] & 0xF0) != 0x00))
- {
+ ((psTrack->pbMtr[3] & 0xF0) != 0x00)) {
return AV_MMF_ERR_CHUNK;
}
-/* Check Time Base */
- if (psTrack->pbMtr[4] != psTrack->pbMtr[5])
- {
+ /* Check Time Base */
+ if (psTrack->pbMtr[4] != psTrack->pbMtr[5]) {
return AV_MMF_ERR_CHUNK;
}
sdResult = _mmf_GetTimebase(psTrack->pbMtr[4]);
- if (sdResult == AV_MMF_FUNC_ERROR)
- {
+ if (sdResult == AV_MMF_FUNC_ERROR) {
return AV_MMF_ERR_CHUNK;
}
psTrack->dTimeBase = (unsigned int)sdResult;
@@ -1096,38 +1066,34 @@ _mmf_ATRCheck(PTRACKINFO psTrack)
dIndex = 6;
fbWave = AV_MMF_MA2_VOICE_NULL;
-/* Check sub chunk disposition */
- while (dSize > (dIndex + AV_MMF_CHUNK_HEADER_SIZE))
- {
- sdChunkSize = _mmf_MalibNextChunk(&pbBuf[dIndex], (dSize-dIndex),
- AVMALIB_CHUNK_PHASE_ATRSUB, &dChunkID, &dChunkNo);
- if (sdChunkSize < 0)
- {
+ /* Check sub chunk disposition */
+ while (dSize > (dIndex + AV_MMF_CHUNK_HEADER_SIZE)) {
+ sdChunkSize = _mmf_MalibNextChunk(&pbBuf[dIndex], (dSize - dIndex),
+ AVMALIB_CHUNK_PHASE_ATRSUB, &dChunkID, &dChunkNo);
+ if (sdChunkSize < 0) {
return AV_MMF_ERR_CHUNK;
}
dIndex += AV_MMF_CHUNK_HEADER_SIZE;
- switch (dChunkID)
- {
- case AVMALIB_CHUNKCODE_ASPI :
- psTrack->pbMspi = &(pbBuf[dIndex]);
- psTrack->dMspiSize = sdChunkSize;
- break;
- case AVMALIB_CHUNKCODE_ATSQ :
- psTrack->pbMtsq = &(pbBuf[dIndex]);
- psTrack->dMtsqSize = sdChunkSize;
- break;
- case AVMALIB_CHUNKCODE_AWA :
- if ((0x01 <= dChunkNo) && (dChunkNo <= 0x3E))
- fbWave = AV_MMF_MA2_VOICE_FOUND;
- break;
- default :
- break;
+ switch (dChunkID) {
+ case AVMALIB_CHUNKCODE_ASPI:
+ psTrack->pbMspi = &(pbBuf[dIndex]);
+ psTrack->dMspiSize = sdChunkSize;
+ break;
+ case AVMALIB_CHUNKCODE_ATSQ:
+ psTrack->pbMtsq = &(pbBuf[dIndex]);
+ psTrack->dMtsqSize = sdChunkSize;
+ break;
+ case AVMALIB_CHUNKCODE_AWA:
+ if ((0x01 <= dChunkNo) && (dChunkNo <= 0x3E))
+ fbWave = AV_MMF_MA2_VOICE_FOUND;
+ break;
+ default:
+ break;
}
dIndex += sdChunkSize;
}
- if ((psTrack->pbMtsq == NULL) ||(psTrack->dMtsqSize == 0) ||(fbWave == AV_MMF_MA2_VOICE_NULL))
- {
+ if ((psTrack->pbMtsq == NULL) || (psTrack->dMtsqSize == 0) || (fbWave == AV_MMF_MA2_VOICE_NULL)) {
return AV_MMF_ERR_SLENGTH;
}
return AV_MMF_FUNC_SUCCESS;
@@ -1149,7 +1115,7 @@ _mmf_ATRCheck(PTRACKINFO psTrack)
static void
_mmf_MspICheck(PTRACKINFO psTrack, PPHRASEINFO psPhrase)
{
- unsigned char* pbBuf;
+ unsigned char *pbBuf;
unsigned int dSize, dIndex;
unsigned short wTag;
@@ -1160,69 +1126,68 @@ _mmf_MspICheck(PTRACKINFO psTrack, PPHRASEINFO psPhrase)
dSize = psTrack->dMspiSize;
dIndex = 0;
- while (dSize >= dIndex + AV_MMF_PHRAZE_SIZE_A)
- {
- wTag = (unsigned short)((((unsigned short)pbBuf[dIndex]) << 8) + (unsigned short)pbBuf[dIndex+1]);
+ while (dSize >= dIndex + AV_MMF_PHRAZE_SIZE_A) {
+ wTag = (unsigned short)((((unsigned short)pbBuf[dIndex]) << 8) + (unsigned short)pbBuf[dIndex + 1]);
switch (wTag) {
- case AV_MMF_TAG_STARTPOINT : /* start point */
- psTrack->dStartPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
- dIndex += AV_MMF_PHRAZE_SIZE_A;
- break;
- case AV_MMF_TAG_STOPPOINT : /* stop point */
- psTrack->dStopPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
- dIndex += AV_MMF_PHRAZE_SIZE_A;
- break;
- case AV_MMF_TAG_PHRASE_A : /* A melody */
- if (dSize < dIndex + AV_MMF_PHRAZE_SIZE_B)
- return ;
- psPhrase[0].dStartPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
- psPhrase[0].dStopPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 7]));
- dIndex += AV_MMF_PHRAZE_SIZE_B;
- break;
- case AV_MMF_TAG_PHRASE_B : /* B melody */
- if (dSize < dIndex + AV_MMF_PHRAZE_SIZE_B)
- return ;
- psPhrase[1].dStartPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
- psPhrase[1].dStopPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 7]));
- dIndex += AV_MMF_PHRAZE_SIZE_B;
- break;
- case AV_MMF_TAG_PHRASE_E : /* Ending */
- if (dSize < dIndex + AV_MMF_PHRAZE_SIZE_B)
- return ;
- psPhrase[2].dStartPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
- psPhrase[2].dStopPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 7]));
- dIndex += AV_MMF_PHRAZE_SIZE_B;
- break;
- case AV_MMF_TAG_PHRASE_I : /* Intro */
- if (dSize < dIndex + AV_MMF_PHRAZE_SIZE_B)
- return ;
- psPhrase[3].dStartPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
- psPhrase[3].dStopPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 7]));
- dIndex += AV_MMF_PHRAZE_SIZE_B;
- break;
- case AV_MMF_TAG_PHRASE_K : /* Interlude */
- if (dSize < dIndex + AV_MMF_PHRAZE_SIZE_B)
- return ;
- psPhrase[4].dStartPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
- psPhrase[4].dStopPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 7]));
- dIndex += AV_MMF_PHRAZE_SIZE_B;
- break;
- case AV_MMF_TAG_PHRASE_R : /* Refrain */
- if (dSize < dIndex + AV_MMF_PHRAZE_SIZE_B)
- return ;
- psPhrase[5].dStartPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
- psPhrase[5].dStopPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 7]));
- dIndex += AV_MMF_PHRAZE_SIZE_B;
- break;
- case AV_MMF_TAG_PHRASE_S : /* Bridge */
- if (dSize < dIndex + AV_MMF_PHRAZE_SIZE_B)
- return ;
- psPhrase[6].dStartPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
- psPhrase[6].dStopPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 7]));
- dIndex += AV_MMF_PHRAZE_SIZE_B;
- break;
- default :
- return;
+ case AV_MMF_TAG_STARTPOINT: /* start point */
+ psTrack->dStartPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
+ dIndex += AV_MMF_PHRAZE_SIZE_A;
+ break;
+ case AV_MMF_TAG_STOPPOINT: /* stop point */
+ psTrack->dStopPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
+ dIndex += AV_MMF_PHRAZE_SIZE_A;
+ break;
+ case AV_MMF_TAG_PHRASE_A: /* A melody */
+ if (dSize < dIndex + AV_MMF_PHRAZE_SIZE_B)
+ return ;
+ psPhrase[0].dStartPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
+ psPhrase[0].dStopPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 7]));
+ dIndex += AV_MMF_PHRAZE_SIZE_B;
+ break;
+ case AV_MMF_TAG_PHRASE_B: /* B melody */
+ if (dSize < dIndex + AV_MMF_PHRAZE_SIZE_B)
+ return ;
+ psPhrase[1].dStartPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
+ psPhrase[1].dStopPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 7]));
+ dIndex += AV_MMF_PHRAZE_SIZE_B;
+ break;
+ case AV_MMF_TAG_PHRASE_E: /* Ending */
+ if (dSize < dIndex + AV_MMF_PHRAZE_SIZE_B)
+ return ;
+ psPhrase[2].dStartPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
+ psPhrase[2].dStopPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 7]));
+ dIndex += AV_MMF_PHRAZE_SIZE_B;
+ break;
+ case AV_MMF_TAG_PHRASE_I: /* Intro */
+ if (dSize < dIndex + AV_MMF_PHRAZE_SIZE_B)
+ return ;
+ psPhrase[3].dStartPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
+ psPhrase[3].dStopPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 7]));
+ dIndex += AV_MMF_PHRAZE_SIZE_B;
+ break;
+ case AV_MMF_TAG_PHRASE_K: /* Interlude */
+ if (dSize < dIndex + AV_MMF_PHRAZE_SIZE_B)
+ return ;
+ psPhrase[4].dStartPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
+ psPhrase[4].dStopPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 7]));
+ dIndex += AV_MMF_PHRAZE_SIZE_B;
+ break;
+ case AV_MMF_TAG_PHRASE_R: /* Refrain */
+ if (dSize < dIndex + AV_MMF_PHRAZE_SIZE_B)
+ return ;
+ psPhrase[5].dStartPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
+ psPhrase[5].dStopPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 7]));
+ dIndex += AV_MMF_PHRAZE_SIZE_B;
+ break;
+ case AV_MMF_TAG_PHRASE_S: /* Bridge */
+ if (dSize < dIndex + AV_MMF_PHRAZE_SIZE_B)
+ return ;
+ psPhrase[6].dStartPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 3]));
+ psPhrase[6].dStopPoint = _mmf_Get4Byte(&(pbBuf[dIndex + 7]));
+ dIndex += AV_MMF_PHRAZE_SIZE_B;
+ break;
+ default:
+ return;
}
}
return;
@@ -1241,7 +1206,7 @@ _mmf_MspICheck(PTRACKINFO psTrack, PPHRASEINFO psPhrase)
* < 0 error code
********************************************************************************/
static int
-_mmf_STSPCheck( PTRACKINFO psTrack)
+_mmf_STSPCheck(PTRACKINFO psTrack)
{
unsigned int dStart, dStop, dSize;
@@ -1279,11 +1244,10 @@ _mmf_STSPCheck( PTRACKINFO psTrack)
static int
_mmf_MtsuCheck2(PTRACKINFO psTrack, unsigned char bSmafType)
{
- unsigned char* pbBuf;
+ unsigned char *pbBuf;
unsigned int dSize, dIndex;
- if (psTrack->pbMtsu == NULL)
- {
+ if (psTrack->pbMtsu == NULL) {
return AV_MMF_MA2_VOICE_NOTFOUND;
}
@@ -1291,14 +1255,11 @@ _mmf_MtsuCheck2(PTRACKINFO psTrack, unsigned char bSmafType)
dSize = psTrack->dMtsuSize;
dIndex = 0;
- while (dSize > dIndex + 20)
- {
- if ((pbBuf[dIndex] != 0xFF) || (pbBuf[dIndex + 1] != 0xF0))
- {
+ while (dSize > dIndex + 20) {
+ if ((pbBuf[dIndex] != 0xFF) || (pbBuf[dIndex + 1] != 0xF0)) {
return AV_MMF_MA2_VOICE_NOTFOUND;
}
- if (pbBuf[dIndex + 3] == 0x43)
- {
+ if (pbBuf[dIndex + 3] == 0x43) {
if ((bSmafType == AV_MMF_SMAF_TYPE_MA1) && (pbBuf[dIndex + 4] == 0x02))
return AV_MMF_MA2_VOICE_FOUND;
if ((bSmafType == AV_MMF_SMAF_TYPE_MA2) && (pbBuf[dIndex + 4] == 0x03))
@@ -1325,26 +1286,22 @@ _mmf_MtsuCheck2(PTRACKINFO psTrack, unsigned char bSmafType)
* < 0 error code
********************************************************************************/
static int
-_mmf_GetFlex2L(unsigned char* pbBuf, unsigned int dSize, unsigned int* pbRead)
+_mmf_GetFlex2L(unsigned char *pbBuf, unsigned int dSize, unsigned int *pbRead)
{
int sdTemp;
if ((dSize < 1) || ((dSize < 2) && (pbBuf[0] >= 0x80)))
return AV_MMF_FUNC_ERROR;
- if (dSize >= 4)
- {
+ if (dSize >= 4) {
sdTemp = pbBuf[0] + pbBuf[1] + pbBuf[2] + pbBuf[3];
if (sdTemp == 0)
return AV_MMF_FUNC_ERROR;
}
- if (pbBuf[0] >= 0x80)
- {
- sdTemp = (int)( (((int)(pbBuf[0] & 0x7F)) << 7) +
- ((int)(pbBuf[1] & 0x7F)) + 128 );
+ if (pbBuf[0] >= 0x80) {
+ sdTemp = (int)((((int)(pbBuf[0] & 0x7F)) << 7) +
+ ((int)(pbBuf[1] & 0x7F)) + 128);
*pbRead = 2;
- }
- else
- {
+ } else {
sdTemp = (int)(pbBuf[0] & 0x7F);
*pbRead = 1;
}
@@ -1367,13 +1324,12 @@ _mmf_GetFlex2L(unsigned char* pbBuf, unsigned int dSize, unsigned int* pbRead)
static int
_mmf_SeqDataCheck2(PTRACKINFO psTrack, unsigned char bSmafType)
{
- unsigned char* pbBuf;
+ unsigned char *pbBuf;
unsigned int dSize, dIndex;
int sdTemp;
unsigned int dPast, dGate, dFlexSize;
- if (psTrack->pbMtsq == NULL)
- {
+ if (psTrack->pbMtsq == NULL) {
return AV_MMF_ERR_SLENGTH;
}
@@ -1383,22 +1339,20 @@ _mmf_SeqDataCheck2(PTRACKINFO psTrack, unsigned char bSmafType)
dSize = psTrack->dMtsqSize;
dIndex = 0;
-/* scanning to EOS or stop point */
- while ( dSize > dIndex )
- {
- if (psTrack->dStartPoint== dIndex) /* start point */
+ /* scanning to EOS or stop point */
+ while (dSize > dIndex) {
+ if (psTrack->dStartPoint == dIndex) /* start point */
psTrack->dStartTick = dPast;
- if (psTrack->dStopPoint == dIndex)
- { /* stop point */
+ if (psTrack->dStopPoint == dIndex) {
+ /* stop point */
psTrack->dStopTick = dPast;
break;
}
- if (dSize >= dIndex + 4)
- {
- sdTemp=pbBuf[dIndex]+pbBuf[dIndex+1]+pbBuf[dIndex+2]+pbBuf[dIndex+3];
- if (sdTemp == 0)
- { /* EOS */
+ if (dSize >= dIndex + 4) {
+ sdTemp = pbBuf[dIndex] + pbBuf[dIndex + 1] + pbBuf[dIndex + 2] + pbBuf[dIndex + 3];
+ if (sdTemp == 0) {
+ /* EOS */
if (bSmafType == AV_MMF_SMAF_TYPE_MA1)
psTrack->dStopTick = dPast + dGate;
else
@@ -1408,13 +1362,11 @@ _mmf_SeqDataCheck2(PTRACKINFO psTrack, unsigned char bSmafType)
}
sdTemp = _mmf_GetFlex2L(&pbBuf[dIndex], (dSize - dIndex), &dFlexSize);
- if (sdTemp < 0)
- {
+ if (sdTemp < 0) {
return AV_MMF_ERR_CHUNK;
}
dPast += sdTemp;
- if (dPast >= AV_MMF_PLAY_TIME_MAX)
- {
+ if (dPast >= AV_MMF_PLAY_TIME_MAX) {
return AV_MMF_ERR_LLENGTH;
}
@@ -1424,53 +1376,47 @@ _mmf_SeqDataCheck2(PTRACKINFO psTrack, unsigned char bSmafType)
dGate -= sdTemp;
dIndex += dFlexSize;
- if (dSize < dIndex + 2)
- {
+ if (dSize < dIndex + 2) {
return AV_MMF_ERR_CHUNK;
}
- switch (pbBuf[dIndex])
- {
- case 0x00 :
- if ((pbBuf[dIndex + 1] & 0x30) != 0x30)
- dIndex += 2;
- else
- dIndex += 3;
- break;
- case 0xFF :
- switch (pbBuf[dIndex + 1])
- {
- case 0x00 :
- dIndex += 2;
+ switch (pbBuf[dIndex]) {
+ case 0x00:
+ if ((pbBuf[dIndex + 1] & 0x30) != 0x30)
+ dIndex += 2;
+ else
+ dIndex += 3;
break;
- case 0xF0 :
- if (dSize < dIndex + 3)
- {
- return AV_MMF_ERR_CHUNK;
- }
- dIndex += (pbBuf[dIndex + 2] + 3);
- if (dSize < dIndex) {
- return AV_MMF_ERR_CHUNK;
+ case 0xFF:
+ switch (pbBuf[dIndex + 1]) {
+ case 0x00:
+ dIndex += 2;
+ break;
+ case 0xF0:
+ if (dSize < dIndex + 3) {
+ return AV_MMF_ERR_CHUNK;
+ }
+ dIndex += (pbBuf[dIndex + 2] + 3);
+ if (dSize < dIndex) {
+ return AV_MMF_ERR_CHUNK;
+ }
+ if (pbBuf[dIndex - 1] != 0xF7) {
+ return AV_MMF_ERR_CHUNK;
+ }
+ break;
+ default:
+ return AV_MMF_ERR_CHUNK;
}
- if (pbBuf[dIndex - 1] != 0xF7)
- {
+ break;
+ default:
+ sdTemp = _mmf_GetFlex2L(&pbBuf[dIndex + 1], (dSize - dIndex - 1), &dFlexSize);
+ if (sdTemp < 0) {
return AV_MMF_ERR_CHUNK;
}
+ if (dGate < (unsigned int)sdTemp)
+ dGate = (unsigned int)sdTemp;
+ dIndex += (1 + dFlexSize);
break;
- default :
- return AV_MMF_ERR_CHUNK;
- }
- break;
- default :
- sdTemp = _mmf_GetFlex2L(&pbBuf[dIndex+1], (dSize - dIndex- 1), &dFlexSize);
- if (sdTemp < 0)
- {
- return AV_MMF_ERR_CHUNK;
- }
- if (dGate < (unsigned int)sdTemp)
- dGate = (unsigned int)sdTemp;
- dIndex += (1 + dFlexSize);
- break;
}
if (dSize < dIndex) {
return AV_MMF_ERR_CHUNK;
@@ -1478,20 +1424,16 @@ _mmf_SeqDataCheck2(PTRACKINFO psTrack, unsigned char bSmafType)
}
- if (psTrack->dStartTick == AV_MMF_STSP_TIME_NULL)
- {
- if (psTrack->dStartPoint != AV_MMF_STSP_OFFSET_NULL)
- {
+ if (psTrack->dStartTick == AV_MMF_STSP_TIME_NULL) {
+ if (psTrack->dStartPoint != AV_MMF_STSP_OFFSET_NULL) {
return AV_MMF_ERR_CHUNK;
}
psTrack->dStartTick = 0;
}
-/* check start/stop point potision */
- if (psTrack->dStopTick == AV_MMF_STSP_TIME_NULL)
- {
- if ((psTrack->dStopPoint != AV_MMF_STSP_OFFSET_NULL) && (psTrack->dStopPoint != dIndex))
- {
+ /* check start/stop point potision */
+ if (psTrack->dStopTick == AV_MMF_STSP_TIME_NULL) {
+ if ((psTrack->dStopPoint != AV_MMF_STSP_OFFSET_NULL) && (psTrack->dStopPoint != dIndex)) {
return AV_MMF_ERR_CHUNK;
}
if (bSmafType == AV_MMF_SMAF_TYPE_MA1)
@@ -1500,12 +1442,12 @@ _mmf_SeqDataCheck2(PTRACKINFO psTrack, unsigned char bSmafType)
psTrack->dStopTick = dPast;
}
-/* calculate playback time of this track */
+ /* calculate playback time of this track */
psTrack->dPlayTime = psTrack->dStopTick - psTrack->dStartTick;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Play time: %ld\n", psTrack->dPlayTime);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Play time: %ld\n", psTrack->dPlayTime);
+#endif
return AV_MMF_FUNC_SUCCESS;
}
@@ -1529,18 +1471,16 @@ _mmf_TrackChunkCheck2(PLOADINFO psLoad)
int sdResult;
unsigned char i, fbVoice;
-/* delete track information of MA-3/5 */
- psLoad->sTrack_Info[5].pbMtr = NULL;
- psLoad->sTrack_Info[5].dMtrSize = 0;
- psLoad->sTrack_Info[6].pbMtr = NULL;
- psLoad->sTrack_Info[6].dMtrSize = 0;
+ /* delete track information of MA-3/5 */
+ psLoad->sTrack_Info[5].pbMtr = NULL;
+ psLoad->sTrack_Info[5].dMtrSize = 0;
+ psLoad->sTrack_Info[6].pbMtr = NULL;
+ psLoad->sTrack_Info[6].dMtrSize = 0;
-/* fix SMAF Type */
+ /* fix SMAF Type */
psLoad->dSmafType = AV_MMF_SMAF_TYPE_MA1;
- for (i = 1; i < 5; i++)
- {
- if (psLoad->sTrack_Info[i].pbMtr != NULL)
- {
+ for (i = 1; i < 5; i++) {
+ if (psLoad->sTrack_Info[i].pbMtr != NULL) {
psLoad->dSmafType = AV_MMF_SMAF_TYPE_MA2;
break;
}
@@ -1548,99 +1488,82 @@ _mmf_TrackChunkCheck2(PLOADINFO psLoad)
if (psLoad->sTrack_Info[AV_MMF_ATR_TRACK_NO].pbMtr != NULL)
psLoad->dSmafType = AV_MMF_SMAF_TYPE_MA2;
- if (psLoad->dSmafType == AV_MMF_SMAF_TYPE_MA1)
- { /* MA-1 */
- if (psLoad->sTrack_Info[0].pbMtr == NULL)
- {
+ if (psLoad->dSmafType == AV_MMF_SMAF_TYPE_MA1) {
+ /* MA-1 */
+ if (psLoad->sTrack_Info[0].pbMtr == NULL) {
return AV_MMF_ERR_SLENGTH;
}
psTrack = &(psLoad->sTrack_Info[0]);
- if (psTrack->dMtrSize <= AV_MMF_MINIMUM_TRACKSIZE2)
- {
+ if (psTrack->dMtrSize <= AV_MMF_MINIMUM_TRACKSIZE2) {
return AV_MMF_ERR_CHUNK;
}
sdResult = _mmf_MTRCheck(psTrack, AV_MMF_SMAF_TYPE_MA1);
- if (sdResult != AV_MMF_FUNC_SUCCESS)
- {
+ if (sdResult != AV_MMF_FUNC_SUCCESS) {
return sdResult;
}
_mmf_MspICheck(psTrack, &(psLoad->sPhrase_Info[0]));
sdResult = _mmf_STSPCheck(psTrack);
- if (sdResult != AV_MMF_FUNC_SUCCESS)
- {
+ if (sdResult != AV_MMF_FUNC_SUCCESS) {
return sdResult;
}
sdResult = _mmf_MtsuCheck2(psTrack, AV_MMF_SMAF_TYPE_MA1);
- if (sdResult != AV_MMF_MA2_VOICE_FOUND)
- {
+ if (sdResult != AV_MMF_MA2_VOICE_FOUND) {
return AV_MMF_ERR_CHUNK;
}
sdResult = _mmf_SeqDataCheck2(psTrack, AV_MMF_SMAF_TYPE_MA1);
- if (sdResult != AV_MMF_FUNC_SUCCESS)
- {
+ if (sdResult != AV_MMF_FUNC_SUCCESS) {
return sdResult;
}
psLoad->dPlayTime = psTrack->dPlayTime;
psLoad->dStartTime = psTrack->dStartTick;
psLoad->dTimeBase = psTrack->dTimeBase;
return AV_MMF_FUNC_SUCCESS;
- }
- else
- { /* MA-2 */
+ } else {
+ /* MA-2 */
psLoad->sTrack_Info[0].pbMtr = NULL;
psLoad->sTrack_Info[0].dMtrSize = 0;
- for (i = 1; i < 5; i++)
- {
+ for (i = 1; i < 5; i++) {
psTrack = &(psLoad->sTrack_Info[i]);
if (psTrack->pbMtr == NULL)
continue;
- if (psTrack->dMtrSize <= AV_MMF_MINIMUM_TRACKSIZE2)
- {
+ if (psTrack->dMtrSize <= AV_MMF_MINIMUM_TRACKSIZE2) {
return AV_MMF_ERR_CHUNK;
}
sdResult = _mmf_MTRCheck(psTrack, AV_MMF_SMAF_TYPE_MA2);
- if (sdResult != AV_MMF_FUNC_SUCCESS)
- {
+ if (sdResult != AV_MMF_FUNC_SUCCESS) {
return sdResult;
}
_mmf_MspICheck(psTrack, &(psLoad->sPhrase_Info[0]));
sdResult = _mmf_STSPCheck(psTrack);
- if (sdResult != AV_MMF_FUNC_SUCCESS)
- {
+ if (sdResult != AV_MMF_FUNC_SUCCESS) {
return sdResult;
}
sdResult = _mmf_SeqDataCheck2(psTrack, AV_MMF_SMAF_TYPE_MA2);
- if (sdResult != AV_MMF_FUNC_SUCCESS)
- {
+ if (sdResult != AV_MMF_FUNC_SUCCESS) {
return sdResult;
}
psLoad->dPlayTime = psTrack->dPlayTime;
psLoad->dStartTime = psTrack->dStartTick;
psLoad->dTimeBase = psTrack->dTimeBase;
}
- if (psLoad->sTrack_Info[AV_MMF_ATR_TRACK_NO].pbMtr != NULL)
- {
+ if (psLoad->sTrack_Info[AV_MMF_ATR_TRACK_NO].pbMtr != NULL) {
psTrack = &(psLoad->sTrack_Info[AV_MMF_ATR_TRACK_NO]);
- if (psTrack->dMtrSize <= AV_MMF_MINIMUM_TRACKSIZE2)
- {
+ if (psTrack->dMtrSize <= AV_MMF_MINIMUM_TRACKSIZE2) {
return AV_MMF_ERR_CHUNK;
}
sdResult = _mmf_ATRCheck(psTrack);
- if (sdResult != AV_MMF_FUNC_SUCCESS)
- {
+ if (sdResult != AV_MMF_FUNC_SUCCESS) {
return sdResult;
}
_mmf_MspICheck(psTrack, &(psLoad->sPhrase_Info[0]));
sdResult = _mmf_STSPCheck(psTrack);
- if (sdResult != AV_MMF_FUNC_SUCCESS)
- {
+ if (sdResult != AV_MMF_FUNC_SUCCESS) {
return sdResult;
}
sdResult = _mmf_SeqDataCheck2(psTrack, AV_MMF_SMAF_TYPE_MA2);
- if (sdResult != AV_MMF_FUNC_SUCCESS)
- {
+ if (sdResult != AV_MMF_FUNC_SUCCESS) {
return sdResult;
}
psLoad->dPlayTime = psTrack->dPlayTime;
@@ -1648,21 +1571,18 @@ _mmf_TrackChunkCheck2(PLOADINFO psLoad)
psLoad->dTimeBase = psTrack->dTimeBase;
}
-/* totaling of track information */
- for (i = 1; i < AV_MMF_MAX_TRACK_NUM; i++)
- {
+ /* totaling of track information */
+ for (i = 1; i < AV_MMF_MAX_TRACK_NUM; i++) {
psTrack = &(psLoad->sTrack_Info[i]);
if (psTrack->pbMtr == NULL)
continue;
if (psLoad->dPlayTime < psTrack->dPlayTime)
psLoad->dPlayTime = psTrack->dPlayTime;
- if (psLoad->dTimeBase != psTrack->dTimeBase)
- {
+ if (psLoad->dTimeBase != psTrack->dTimeBase) {
return AV_MMF_ERR_CHUNK;
}
- if (psLoad->dStartTime != psTrack->dStartTick)
- {
+ if (psLoad->dStartTime != psTrack->dStartTick) {
return AV_MMF_ERR_CHUNK;
}
if (_mmf_MtsuCheck2(psTrack, AV_MMF_SMAF_TYPE_MA2) == AV_MMF_FUNC_SUCCESS)
@@ -1670,29 +1590,25 @@ _mmf_TrackChunkCheck2(PLOADINFO psLoad)
}
fbVoice = AV_MMF_MA2_VOICE_FOUND;
- for (i = 1; i < 5; i++)
- {
+ for (i = 1; i < 5; i++) {
psTrack = &(psLoad->sTrack_Info[i]);
if (psTrack->pbMtr == NULL)
continue;
- if (_mmf_MtsuCheck2(psTrack, AV_MMF_SMAF_TYPE_MA2) == AV_MMF_MA2_VOICE_FOUND)
- {
+ if (_mmf_MtsuCheck2(psTrack, AV_MMF_SMAF_TYPE_MA2) == AV_MMF_MA2_VOICE_FOUND) {
fbVoice = AV_MMF_MA2_VOICE_FOUND;
break;
- }
- else
+ } else
fbVoice = AV_MMF_MA2_VOICE_NOTFOUND;
}
- if (fbVoice == AV_MMF_MA2_VOICE_NOTFOUND)
- {
+ if (fbVoice == AV_MMF_MA2_VOICE_NOTFOUND) {
return AV_MMF_ERR_CHUNK;
}
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Play time: %ld\n", psLoad->dPlayTime);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Play time: %ld\n", psLoad->dPlayTime);
+#endif
return AV_MMF_FUNC_SUCCESS;
}
@@ -1700,9 +1616,8 @@ _mmf_TrackChunkCheck2(PLOADINFO psLoad)
static unsigned char
_mmf_GetByte3L(PHUFFMANINFO psHuf)
{
- psHuf->dReadSize ++;
- if (psHuf->dReadSize > psHuf->dMtsqSize)
- {
+ psHuf->dReadSize++;
+ if (psHuf->dReadSize > psHuf->dMtsqSize) {
return 0;
}
return *(psHuf->psBuffer++);
@@ -1722,20 +1637,19 @@ _mmf_GetByte3L(PHUFFMANINFO psHuf)
* < 0 error code
********************************************************************************/
static int
-_mmf_GetFlex3L(PLOADINFO psLoad, unsigned int* pdRead)
+_mmf_GetFlex3L(PLOADINFO psLoad, unsigned int *pdRead)
{
unsigned int dTemp, dRead;
unsigned char bTemp;
dRead = 1;
- bTemp = psLoad->pfnGetByte( &(psLoad->sHuffman_Info) );
+ bTemp = psLoad->pfnGetByte(&(psLoad->sHuffman_Info));
dTemp = (unsigned int)(bTemp & 0x7F);
- while (bTemp & 0x80)
- {
+ while (bTemp & 0x80) {
if (dRead >= 4)
return AV_MMF_FUNC_ERROR;
- dRead ++;
- bTemp = psLoad->pfnGetByte( &(psLoad->sHuffman_Info) );
+ dRead++;
+ bTemp = psLoad->pfnGetByte(&(psLoad->sHuffman_Info));
dTemp = (dTemp << 7) + (unsigned int)(bTemp & 0x7F);
}
if (dTemp >= AV_MMF_PLAY_TIME_MAX)
@@ -1768,14 +1682,13 @@ _mmf_SeqDataCheck3(PLOADINFO psLoad, unsigned char bSmafType)
int sdTemp;
unsigned char bTemp;
- if (bSmafType == AV_MMF_SMAF_TYPE_MA3)
- { /* MA-3 */
+ if (bSmafType == AV_MMF_SMAF_TYPE_MA3) {
+ /* MA-3 */
psTrk = &(psLoad->sTrack_Info[5]);
dStartTick = AV_MMF_STSP_TIME_NULL;
dStopTick = AV_MMF_STSP_TIME_NULL;
- }
- else
- { /* MA-5 */
+ } else {
+ /* MA-5 */
psTrk = &(psLoad->sTrack_Info[6]);
dStartTick = psTrk->dStartTick;
dStopTick = psTrk->dStopTick;
@@ -1785,36 +1698,31 @@ _mmf_SeqDataCheck3(PLOADINFO psLoad, unsigned char bSmafType)
psPhr = &(psLoad->sPhrase_Info[0]);
psHuf = &(psLoad->sHuffman_Info);
- fdPhrase= 0;
+ fdPhrase = 0;
dIndex = 0;
dPast = 0;
dGate = 0;
dSize = psHuf->dSeqSize;
- if (psHuf->dSeqSize == 0)
- {
+ if (psHuf->dSeqSize == 0) {
return AV_MMF_ERR_SLENGTH;
}
- for (i = 0; i < AV_MMF_MAX_PHRASE_INFO; i++)
- {
+ for (i = 0; i < AV_MMF_MAX_PHRASE_INFO; i++) {
if (psPhr[i].dStartPoint != AV_MMF_STSP_OFFSET_NULL)
fdPhrase = 1;
}
-/* scanning sequence data to EOS or stop point */
- while (dSize >= dIndex)
- {
+ /* scanning sequence data to EOS or stop point */
+ while (dSize >= dIndex) {
if (psTrk->dStartPoint == dIndex)
psTrk->dStartTick = dPast;
if (psTrk->dStopPoint == dIndex) /* stop point */
psTrk->dStopTick = dPast;
- if (fdPhrase)
- {
- for (i = 0; i < AV_MMF_MAX_PHRASE_INFO; i++)
- {
- if (psPhr[i].dStartPoint== dIndex)
+ if (fdPhrase) {
+ for (i = 0; i < AV_MMF_MAX_PHRASE_INFO; i++) {
+ if (psPhr[i].dStartPoint == dIndex)
psPhr[i].dStartTick = dPast;
if (psPhr[i].dStopPoint == dIndex)
psPhr[i].dStopTick = dPast;
@@ -1829,8 +1737,7 @@ _mmf_SeqDataCheck3(PLOADINFO psLoad, unsigned char bSmafType)
return AV_MMF_ERR_CHUNK;
}
dPast += (unsigned int)sdTemp;
- if (dPast >= AV_MMF_PLAY_TIME_MAX)
- {
+ if (dPast >= AV_MMF_PLAY_TIME_MAX) {
return AV_MMF_ERR_LLENGTH;
}
@@ -1841,120 +1748,110 @@ _mmf_SeqDataCheck3(PLOADINFO psLoad, unsigned char bSmafType)
dIndex += dReadSize;
bTemp = psLoad->pfnGetByte(psHuf);
- dIndex ++;
-
- switch (bTemp & 0xF0)
- {
- case 0x90 :
- psLoad->pfnGetByte(psHuf); /*Note number*/
- dIndex ++;
- psLoad->pfnGetByte(psHuf); /*Key Velocity*/
- dIndex ++;
- sdTemp = _mmf_GetFlex3L(psLoad, &dReadSize);
- if (sdTemp < 0) {
- return AV_MMF_ERR_CHUNK;
- }
- dIndex += dReadSize;
- if ((unsigned int)sdTemp > dGate)
- dGate = sdTemp;
- break;
- case 0x80 :
- psLoad->pfnGetByte(psHuf); /*Note number*/
- dIndex ++;
- sdTemp = _mmf_GetFlex3L(psLoad, &dReadSize);
- if (sdTemp < 0) {
- return AV_MMF_ERR_CHUNK;
- }
- dIndex += dReadSize;
- if ((unsigned int)sdTemp > dGate)
- dGate = sdTemp;
- break;
- case 0xA0 :
- case 0xB0 :
- case 0xE0 :
- bTemp = psLoad->pfnGetByte(psHuf); /*B0: Conrol number, E0:Pitch Bend Change LSB*/
- dIndex ++;
- bTemp = psLoad->pfnGetByte(psHuf); /*B0: Conrol value, E0:Pitch Bend Change MSB*/
- dIndex ++;
- break;
- case 0xC0 :
- case 0xD0 :
- bTemp = psLoad->pfnGetByte(psHuf);
- dIndex ++;
- break;
- default :
- switch (bTemp)
- {
- case 0xF0 :
+ dIndex++;
+
+ switch (bTemp & 0xF0) {
+ case 0x90:
+ psLoad->pfnGetByte(psHuf); /*Note number*/
+ dIndex++;
+ psLoad->pfnGetByte(psHuf); /*Key Velocity*/
+ dIndex++;
sdTemp = _mmf_GetFlex3L(psLoad, &dReadSize);
if (sdTemp < 0) {
return AV_MMF_ERR_CHUNK;
}
- for (i = 0; i < (unsigned int)sdTemp; i++)
- bTemp = psLoad->pfnGetByte(psHuf);
- if (bTemp != 0xF7) {
+ dIndex += dReadSize;
+ if ((unsigned int)sdTemp > dGate)
+ dGate = sdTemp;
+ break;
+ case 0x80:
+ psLoad->pfnGetByte(psHuf); /*Note number*/
+ dIndex++;
+ sdTemp = _mmf_GetFlex3L(psLoad, &dReadSize);
+ if (sdTemp < 0) {
return AV_MMF_ERR_CHUNK;
}
- dIndex += (unsigned int)sdTemp + dReadSize;
+ dIndex += dReadSize;
+ if ((unsigned int)sdTemp > dGate)
+ dGate = sdTemp;
break;
- case 0xFF :
+ case 0xA0:
+ case 0xB0:
+ case 0xE0:
+ bTemp = psLoad->pfnGetByte(psHuf); /*B0: Conrol number, E0:Pitch Bend Change LSB*/
+ dIndex++;
+ bTemp = psLoad->pfnGetByte(psHuf); /*B0: Conrol value, E0:Pitch Bend Change MSB*/
+ dIndex++;
+ break;
+ case 0xC0:
+ case 0xD0:
bTemp = psLoad->pfnGetByte(psHuf);
- dIndex ++;
- switch (bTemp)
- {
- case 0x00 :
- break;
- case 0x2F :
- bTemp = psLoad->pfnGetByte(psHuf);
- dIndex ++;
- if (bTemp != 0x00)
- {
+ dIndex++;
+ break;
+ default:
+ switch (bTemp) {
+ case 0xF0:
+ sdTemp = _mmf_GetFlex3L(psLoad, &dReadSize);
+ if (sdTemp < 0) {
+ return AV_MMF_ERR_CHUNK;
+ }
+ for (i = 0; i < (unsigned int)sdTemp; i++)
+ bTemp = psLoad->pfnGetByte(psHuf);
+ if (bTemp != 0xF7) {
+ return AV_MMF_ERR_CHUNK;
+ }
+ dIndex += (unsigned int)sdTemp + dReadSize;
+ break;
+ case 0xFF:
+ bTemp = psLoad->pfnGetByte(psHuf);
+ dIndex++;
+ switch (bTemp) {
+ case 0x00:
+ break;
+ case 0x2F:
+ bTemp = psLoad->pfnGetByte(psHuf);
+ dIndex++;
+ if (bTemp != 0x00) {
+ return AV_MMF_ERR_CHUNK;
+ }
+ dGate = 0;
+ psTrk->dStopTick = dPast;
+ dIndex = dSize;
+ break;
+ default:
+ return AV_MMF_ERR_CHUNK;
+ }
+ break;
+ default:
return AV_MMF_ERR_CHUNK;
- }
- dGate = 0;
- psTrk->dStopTick = dPast;
- dIndex = dSize;
- break;
- default :
- return AV_MMF_ERR_CHUNK;
}
break;
- default :
- return AV_MMF_ERR_CHUNK;
- }
- break;
}
- if ((dSize < dIndex) || (psHuf->dReadSize > psHuf->dMtsqSize))
- {
+ if ((dSize < dIndex) || (psHuf->dReadSize > psHuf->dMtsqSize)) {
return AV_MMF_ERR_CHUNK;
}
}
- if (bSmafType == AV_MMF_SMAF_TYPE_MA3)
- { /* MA-3 */
-/* check start point */
- if (psTrk->dStartTick == AV_MMF_STSP_TIME_NULL)
- {
- if (psTrk->dStartPoint != AV_MMF_STSP_OFFSET_NULL)
- {
+ if (bSmafType == AV_MMF_SMAF_TYPE_MA3) {
+ /* MA-3 */
+ /* check start point */
+ if (psTrk->dStartTick == AV_MMF_STSP_TIME_NULL) {
+ if (psTrk->dStartPoint != AV_MMF_STSP_OFFSET_NULL) {
return AV_MMF_ERR_CHUNK;
}
psTrk->dStartPoint = 0;
psTrk->dStartTick = 0;
}
-/* check stop point */
- if (psTrk->dStopTick == AV_MMF_STSP_TIME_NULL)
- {
- if (psTrk->dStopPoint != AV_MMF_STSP_OFFSET_NULL)
- {
+ /* check stop point */
+ if (psTrk->dStopTick == AV_MMF_STSP_TIME_NULL) {
+ if (psTrk->dStopPoint != AV_MMF_STSP_OFFSET_NULL) {
return AV_MMF_ERR_CHUNK;
}
psTrk->dStopPoint = dSize;
psTrk->dStopTick = dPast + dGate;
}
-/* adjust phrase information */
- for (i = 0; i < AV_MMF_MAX_PHRASE_INFO; i++)
- {
+ /* adjust phrase information */
+ for (i = 0; i < AV_MMF_MAX_PHRASE_INFO; i++) {
if (psPhr[i].dStartPoint <= psTrk->dStartPoint)
psPhr[i].dStartTick = psTrk->dStartTick;
if (psPhr[i].dStopPoint >= psTrk->dStopPoint)
@@ -1962,24 +1859,22 @@ _mmf_SeqDataCheck3(PLOADINFO psLoad, unsigned char bSmafType)
if (psPhr[i].dStopPoint <= psTrk->dStartPoint)
psPhr[i].dStopTick = AV_MMF_STSP_TIME_NULL;
}
- }
- else
- { /* MA-5 */
-/* check stop point */
- if (dStopTick > dPast)
- {
+ } else {
+ /* MA-5 */
+ /* check stop point */
+ if (dStopTick > dPast) {
return AV_MMF_ERR_CHUNK;
}
psTrk->dStartTick = dStartTick;
psTrk->dStopTick = dStopTick;
}
-/* calculate playback time of this track */
+ /* calculate playback time of this track */
psTrk->dPlayTime = psTrk->dStopTick - psTrk->dStartTick;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Play time: %ld\n", psTrk->dPlayTime);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Play time: %ld\n", psTrk->dPlayTime);
+#endif
return AV_MMF_FUNC_SUCCESS;
}
@@ -2004,13 +1899,12 @@ _mmf_DecodeGetbitL(PHUFFMANINFO psHuf)
{
char czero = 0;
- if (--psHuf->sbBitC < czero)
- {
+ if (--psHuf->sbBitC < czero) {
if (psHuf->dReadSize >= psHuf->dMtsqSize)
return 0;
psHuf->sbBitC = 7;
psHuf->bByte = *(psHuf->psBuffer++);
- psHuf->dReadSize ++;
+ psHuf->dReadSize++;
}
return (unsigned char)(psHuf->bByte & g_abBitMaskTable1[(int)(psHuf->sbBitC)]);
}
@@ -2037,7 +1931,7 @@ _mmf_DecodeGetbits(PHUFFMANINFO psHuf)
bData1 = psHuf->bByte;
bData2 = *(psHuf->psBuffer++);
psHuf->bByte = bData2;
- psHuf->dReadSize ++;
+ psHuf->dReadSize++;
wTemp = (unsigned short)((((unsigned short)bData1) << 8) + ((unsigned short)bData2));
return (unsigned char)((wTemp & g_awBitMaskTable2[(int)(psHuf->sbBitC)]) >> psHuf->sbBitC);
}
@@ -2055,22 +1949,20 @@ _mmf_DecodeGetbits(PHUFFMANINFO psHuf)
* 0 error
********************************************************************************/
static int
-_mmf_DecodeTree( PHUFFMANINFO psHuf)
+_mmf_DecodeTree(PHUFFMANINFO psHuf)
{
unsigned int dNode, dEmpty, dIndex, i;
short *pswLeft, *pswRight, *pswPNode;
unsigned char bTemp;
- if (_mmf_DecodeGetbitL(psHuf))
- {
+ if (_mmf_DecodeGetbitL(psHuf)) {
if (psHuf->dReadSize >= psHuf->dMtsqSize)
return AV_MMF_HUFFMAN_TREE_FAILURE;
pswLeft = &(psHuf->swLeft[256]);
- pswRight= &(psHuf->swRight[256]);
- pswPNode= &(psHuf->swRight[0]);
- for (i = 0; i < 256; i++)
- {
+ pswRight = &(psHuf->swRight[256]);
+ pswPNode = &(psHuf->swRight[0]);
+ for (i = 0; i < 256; i++) {
pswLeft[i] = -1;
pswRight[i] = -1;
pswPNode[i] = 0;
@@ -2078,12 +1970,10 @@ _mmf_DecodeTree( PHUFFMANINFO psHuf)
dNode = 2;
dEmpty = 1;
dIndex = 0;
- }
- else
+ } else
return AV_MMF_HUFFMAN_TREE_FAILURE;
- while (dNode != 0)
- {
+ while (dNode != 0) {
if ((dEmpty >= 256) || (dNode >= 257))
return AV_MMF_HUFFMAN_TREE_FAILURE;
@@ -2091,37 +1981,32 @@ _mmf_DecodeTree( PHUFFMANINFO psHuf)
if (psHuf->dReadSize >= psHuf->dMtsqSize)
return AV_MMF_HUFFMAN_TREE_FAILURE;
- if (bTemp)
- {
- dNode ++;
+ if (bTemp) {
+ dNode++;
if (pswLeft[dIndex] == -1)
pswLeft[dIndex] = (short)(dEmpty + 256);
else
- pswRight[dIndex]= (short)(dEmpty + 256);
+ pswRight[dIndex] = (short)(dEmpty + 256);
pswPNode[dEmpty] = (short)dIndex;
dIndex = dEmpty;
- dEmpty ++;
- }
- else
- {
- dNode --;
+ dEmpty++;
+ } else {
+ dNode--;
bTemp = _mmf_DecodeGetbits(psHuf);
if (psHuf->dReadSize >= psHuf->dMtsqSize)
return AV_MMF_HUFFMAN_TREE_FAILURE;
if (pswLeft[dIndex] == -1)
pswLeft[dIndex] = (short)bTemp;
- else
- {
- pswRight[dIndex]= (short)bTemp;
+ else {
+ pswRight[dIndex] = (short)bTemp;
while ((pswRight[dIndex] != -1) && (dIndex != 0))
dIndex = (unsigned int)pswPNode[dIndex];
}
}
}
- for (i = 0; i < 256; i++)
- {
+ for (i = 0; i < 256; i++) {
if (pswLeft[i] == -1)
pswLeft[i] = 0;
if (pswRight[i] == -1)
@@ -2147,8 +2032,7 @@ _mmf_DecodeInit(PHUFFMANINFO psHuf)
{
unsigned int dSeqSize;
- if (psHuf->dMtsqSize <= 5)
- {
+ if (psHuf->dMtsqSize <= 5) {
return AV_MMF_HUFFMAN_TREE_FAILURE;
}
@@ -2176,16 +2060,14 @@ _mmf_DecodeInit(PHUFFMANINFO psHuf)
* 0 error code
********************************************************************************/
static unsigned char
-_mmf_DecodeByte3L (PHUFFMANINFO psHuf)
+_mmf_DecodeByte3L(PHUFFMANINFO psHuf)
{
unsigned int bData, bIndex;
char czero = 0;
bIndex = 256;
- while (bIndex >= 256)
- {
- if (--psHuf->sbBitC < czero)
- {
- psHuf->dReadSize ++;
+ while (bIndex >= 256) {
+ if (--psHuf->sbBitC < czero) {
+ psHuf->dReadSize++;
if (psHuf->dReadSize > psHuf->dMtsqSize)
return 0;
psHuf->sbBitC = 7;
@@ -2218,18 +2100,15 @@ _mmf_TrackChunkCheck3(PLOADINFO psLoad)
PTRACKINFO psTrack;
int sdResult;
- if (psLoad->sTrack_Info[5].pbMtr == NULL)
- {
+ if (psLoad->sTrack_Info[5].pbMtr == NULL) {
return AV_MMF_ERR_SLENGTH;
}
psTrack = &(psLoad->sTrack_Info[5]);
- if (psTrack->dMtrSize <= AV_MMF_MINIMUM_TRACKSIZE3)
- {
+ if (psTrack->dMtrSize <= AV_MMF_MINIMUM_TRACKSIZE3) {
return AV_MMF_ERR_CHUNK;
}
sdResult = _mmf_MTRCheck(psTrack, AV_MMF_SMAF_TYPE_MA3);
- if (sdResult != AV_MMF_FUNC_SUCCESS)
- {
+ if (sdResult != AV_MMF_FUNC_SUCCESS) {
return sdResult;
}
_mmf_MspICheck(psTrack, &(psLoad->sPhrase_Info[0]));
@@ -2237,21 +2116,19 @@ _mmf_TrackChunkCheck3(PLOADINFO psLoad)
psLoad->sHuffman_Info.psBuffer = psTrack->pbMtsq;
psLoad->sHuffman_Info.dMtsqSize = psTrack->dMtsqSize;
-/* Initialize Huffman information structure */
- if (psTrack->pbMtr[0] == 0x01)
- { /* Compressed Foramt */
- psLoad->sHuffman_Info.dSeqSize = _mmf_DecodeInit( &(psLoad->sHuffman_Info) );
- if (psLoad->sHuffman_Info.dSeqSize == AV_MMF_HUFFMAN_TREE_FAILURE)
- {
+ /* Initialize Huffman information structure */
+ if (psTrack->pbMtr[0] == 0x01) {
+ /* Compressed Foramt */
+ psLoad->sHuffman_Info.dSeqSize = _mmf_DecodeInit(&(psLoad->sHuffman_Info));
+ if (psLoad->sHuffman_Info.dSeqSize == AV_MMF_HUFFMAN_TREE_FAILURE) {
return AV_MMF_ERR_CHUNK;
}
psLoad->pfnGetByte = _mmf_DecodeByte3L;
psLoad->sHuffman_Info.psFBuf = psLoad->sHuffman_Info.psBuffer;
psLoad->sHuffman_Info.sbFBit = psLoad->sHuffman_Info.sbBitC;
psLoad->sHuffman_Info.bFByte = psLoad->sHuffman_Info.bByte;
- }
- else
- { /* No Compressed Foramt */
+ } else {
+ /* No Compressed Foramt */
psLoad->pfnGetByte = _mmf_GetByte3L;
psLoad->sHuffman_Info.dSeqSize = psTrack->dMtsqSize;
psLoad->sHuffman_Info.dReadSize = 0;
@@ -2264,22 +2141,20 @@ _mmf_TrackChunkCheck3(PLOADINFO psLoad)
sdResult = _mmf_STSPCheck(psTrack);
psTrack->dMtsqSize = psLoad->sHuffman_Info.dMtsqSize;
- if (sdResult != AV_MMF_FUNC_SUCCESS)
- {
+ if (sdResult != AV_MMF_FUNC_SUCCESS) {
return sdResult;
}
sdResult = _mmf_SeqDataCheck3(psLoad, AV_MMF_SMAF_TYPE_MA3);
- if (sdResult != AV_MMF_FUNC_SUCCESS)
- {
+ if (sdResult != AV_MMF_FUNC_SUCCESS) {
return sdResult;
}
psLoad->dPlayTime = psTrack->dPlayTime;
psLoad->dStartTime = psTrack->dStartTick;
psLoad->dTimeBase = psTrack->dTimeBase;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Play time: %ld\n", psLoad->dPlayTime);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Play time: %ld\n", psLoad->dPlayTime);
+#endif
return AV_MMF_FUNC_SUCCESS;
}
@@ -2316,15 +2191,13 @@ _mmf_CheckM5P(PLOADINFO psLoad)
pbM5p = NULL;
dMSize = 0;
-/* search Pro5 Chunk */
- while (dOSize > (dIndex + AV_MMF_CHUNK_HEADER_SIZE))
- {
+ /* search Pro5 Chunk */
+ while (dOSize > (dIndex + AV_MMF_CHUNK_HEADER_SIZE)) {
sdChunkSize = _mmf_MalibNextChunk(&pbOpda[dIndex], (dOSize - dIndex),
- AVMALIB_CHUNK_PHASE_OPDASUB, &dChunkID, &dChunkNo);
+ AVMALIB_CHUNK_PHASE_OPDASUB, &dChunkID, &dChunkNo);
if (sdChunkSize < AVMASMW_SUCCESS) return AVMASMW_ERROR;
dIndex += AV_MMF_CHUNK_HEADER_SIZE;
- if ((dChunkID == AVMALIB_CHUNKCODE_M5P) && (dChunkNo == 0x05))
- {
+ if ((dChunkID == AVMALIB_CHUNKCODE_M5P) && (dChunkNo == 0x05)) {
pbM5p = &pbOpda[dIndex];
dMSize = (unsigned int)sdChunkSize;
break;
@@ -2341,15 +2214,12 @@ _mmf_CheckM5P(PLOADINFO psLoad)
if (psTrk->dStartTick >= psTrk->dStopTick) return AVMASMW_ERROR;
- for (i = 0; i < AV_MMF_MAX_PHRASE_INFO; i ++)
- {
+ for (i = 0; i < AV_MMF_MAX_PHRASE_INFO; i++) {
if (dMSize < (dIndex + 8)) break;
- if (dPhraseFlag & (0x80000000 >> i))
- {
+ if (dPhraseFlag & (0x80000000 >> i)) {
psPhr[i].dStartTick = _mmf_Get4Byte(&pbM5p[dIndex]);
psPhr[i].dStopTick = _mmf_Get4Byte(&pbM5p[dIndex + 4]);
- if (psPhr[i].dStartTick >= psPhr[i].dStopTick)
- {
+ if (psPhr[i].dStartTick >= psPhr[i].dStopTick) {
psPhr[i].dStartTick = AV_MMF_STSP_TIME_NULL;
psPhr[i].dStopTick = AV_MMF_STSP_TIME_NULL;
}
@@ -2382,13 +2252,11 @@ _mmf_TrackChunkCheck5(PLOADINFO psLoad)
PTRACKINFO psTrack;
int sdResult;
- if (psLoad->sTrack_Info[6].pbMtr == NULL)
- {
+ if (psLoad->sTrack_Info[6].pbMtr == NULL) {
return AV_MMF_ERR_SLENGTH;
}
psTrack = &(psLoad->sTrack_Info[6]);
- if (psTrack->dMtrSize <= AV_MMF_MINIMUM_TRACKSIZE3)
- {
+ if (psTrack->dMtrSize <= AV_MMF_MINIMUM_TRACKSIZE3) {
return AV_MMF_ERR_CHUNK;
}
sdResult = _mmf_MTRCheck(psTrack, AV_MMF_SMAF_TYPE_MA5);
@@ -2408,9 +2276,9 @@ _mmf_TrackChunkCheck5(PLOADINFO psLoad)
psLoad->dStartTime = psTrack->dStartTick;
psLoad->dTimeBase = psTrack->dTimeBase;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Play time: %ld\n", psLoad->dPlayTime);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Play time: %ld\n", psLoad->dPlayTime);
+#endif
return AV_MMF_FUNC_SUCCESS;
}
@@ -2428,12 +2296,12 @@ _mmf_TrackChunkCheck5(PLOADINFO psLoad)
static void
_mmf_GetHvData(PLOADINFO psLoad, unsigned char bCType)
{
- unsigned char* pbHvData;
+ unsigned char *pbHvData;
unsigned int dHvDataSize;
- unsigned char* pbVoice;
- unsigned char* pbScript;
- unsigned char* pbSetup;
+ unsigned char *pbVoice;
+ unsigned char *pbScript;
+ unsigned char *pbSetup;
unsigned int dVoiceSize, dScriptSize, dSetupSize, dIndex;
unsigned char bHvCh;
unsigned short wTag, wSize;
@@ -2441,19 +2309,16 @@ _mmf_GetHvData(PLOADINFO psLoad, unsigned char bCType)
unsigned int dChunkID, dChunkNo;
int sdChunkSize;
- if ((psLoad->dSmafType == AV_MMF_SMAF_TYPE_MA1) ||(psLoad->dSmafType == AV_MMF_SMAF_TYPE_MA2))
+ if ((psLoad->dSmafType == AV_MMF_SMAF_TYPE_MA1) || (psLoad->dSmafType == AV_MMF_SMAF_TYPE_MA2))
return ;
if ((bCType & 0x0F) == 0x08)
return ;
- if (psLoad->dSmafType == AV_MMF_SMAF_TYPE_MA3)
- {
+ if (psLoad->dSmafType == AV_MMF_SMAF_TYPE_MA3) {
pbHvData = psLoad->sTrack_Info[5].pbMthv;
dHvDataSize = psLoad->sTrack_Info[5].dMthvSize;
- }
- else
- {
+ } else {
pbHvData = psLoad->sTrack_Info[6].pbMthv;
dHvDataSize = psLoad->sTrack_Info[6].dMthvSize;
}
@@ -2470,35 +2335,34 @@ _mmf_GetHvData(PLOADINFO psLoad, unsigned char bCType)
bHvCh = AV_MMF_HV_CHANNEL_NULL;
dIndex = 0;
- while (dHvDataSize > (dIndex + AV_MMF_CHUNK_HEADER_SIZE))
- {
+ while (dHvDataSize > (dIndex + AV_MMF_CHUNK_HEADER_SIZE)) {
sdChunkSize = _mmf_MalibNextChunk(&(pbHvData[dIndex]), (dHvDataSize - dIndex),
- AVMALIB_CHUNK_PHASE_MTHVSUB, &dChunkID, &dChunkNo);
+ AVMALIB_CHUNK_PHASE_MTHVSUB, &dChunkID, &dChunkNo);
if (sdChunkSize < 0) return ;
dIndex += AV_MMF_CHUNK_HEADER_SIZE;
- switch (dChunkID)
- {
- case AVMALIB_CHUNKCODE_MHVS :
- pbSetup = &(pbHvData[dIndex]);
- dSetupSize = (unsigned int)sdChunkSize;
- break;
- case AVMALIB_CHUNKCODE_HVP :
- if (dChunkNo != 0) break;
- pbVoice = &(pbHvData[dIndex - AV_MMF_CHUNK_HEADER_SIZE]);
- dVoiceSize = (unsigned int)(sdChunkSize + AV_MMF_CHUNK_HEADER_SIZE);
- break;
- case AVMALIB_CHUNKCODE_MHSC :
- pbScript = &(pbHvData[dIndex]);
- dScriptSize = (unsigned int)sdChunkSize;
- break;
+ switch (dChunkID) {
+ case AVMALIB_CHUNKCODE_MHVS:
+ pbSetup = &(pbHvData[dIndex]);
+ dSetupSize = (unsigned int)sdChunkSize;
+ break;
+ case AVMALIB_CHUNKCODE_HVP:
+ if (dChunkNo != 0) break;
+ pbVoice = &(pbHvData[dIndex - AV_MMF_CHUNK_HEADER_SIZE]);
+ dVoiceSize = (unsigned int)(sdChunkSize + AV_MMF_CHUNK_HEADER_SIZE);
+ break;
+ case AVMALIB_CHUNKCODE_MHSC:
+ pbScript = &(pbHvData[dIndex]);
+ dScriptSize = (unsigned int)sdChunkSize;
+ break;
+ default:
+ break;
}
dIndex += sdChunkSize;
}
dIndex = 0;
- while (dSetupSize >= dIndex + 4 )
- {
- wTag = (unsigned short)(((unsigned short)(pbSetup[dIndex ]) << 8) + pbSetup[dIndex + 1]);
+ while (dSetupSize >= dIndex + 4) {
+ wTag = (unsigned short)(((unsigned short)(pbSetup[dIndex]) << 8) + pbSetup[dIndex + 1]);
wSize = (unsigned short)(((unsigned short)(pbSetup[dIndex + 2]) << 8) + pbSetup[dIndex + 3]);
dIndex += 4;
if (dSetupSize < (dIndex + wSize)) return ;
@@ -2529,14 +2393,13 @@ _mmf_GetHvData(PLOADINFO psLoad, unsigned char bCType)
* unsigned char success(read data)
********************************************************************************/
static unsigned short
-_mmf_MalibMakeCRC(unsigned int dSize, unsigned char* pbData)
+_mmf_MalibMakeCRC(unsigned int dSize, unsigned char *pbData)
{
unsigned short wRes;
unsigned char bData;
wRes = 0xFFFFU;
- while ( --dSize >= 2 )
- {
+ while (--dSize >= 2) {
bData = *pbData++;
wRes = (unsigned short)((wRes << 8) ^ g_crc_tbl[(unsigned char)(wRes >> 8) ^ bData]);
}
@@ -2558,12 +2421,12 @@ _mmf_MalibMakeCRC(unsigned int dSize, unsigned char* pbData)
* < 0 error code
********************************************************************************/
static int
-_mmf_MALoad( unsigned char* pbFile, unsigned int dFSize)
+_mmf_MALoad(unsigned char *pbFile, unsigned int dFSize)
{
PLOADINFO psLoad_Info;
unsigned int bNo = 0;
unsigned int dChunkID = 0, dChunkNo = 0;
- unsigned char* pbBuf = NULL;
+ unsigned char *pbBuf = NULL;
unsigned int dSize = 0, dIndex = 0;
int sdChunkSize = 0, sdResult = 0;
unsigned int dCalcCrc = 0, dFileCrc = 0;
@@ -2572,13 +2435,12 @@ _mmf_MALoad( unsigned char* pbFile, unsigned int dFSize)
pbBuf = pbFile;
dSize = dFSize;
psLoad_Info = &(g_sSmaf_Info.sLoad_Info[bNo]);
- _mmf_CheckInitial( psLoad_Info );
+ _mmf_CheckInitial(psLoad_Info);
-/* check File Chunk(ID/Size) */
+ /* check File Chunk(ID/Size) */
sdChunkSize = _mmf_MalibNextChunk(pbBuf, dSize, AVMALIB_CHUNK_PHASE_MMMD,
- &dChunkID, &dChunkNo);
- if ((sdChunkSize < 0) || (dChunkID != AVMALIB_CHUNKCODE_MMMD))
- {
+ &dChunkID, &dChunkNo);
+ if ((sdChunkSize < 0) || (dChunkID != AVMALIB_CHUNKCODE_MMMD)) {
return AV_MMF_ERR_FILE;
}
dSize = (unsigned int)(sdChunkSize + AV_MMF_CHUNK_HEADER_SIZE);
@@ -2591,72 +2453,62 @@ _mmf_MALoad( unsigned char* pbFile, unsigned int dFSize)
}
-/* check Contents Info Chunk */
+ /* check Contents Info Chunk */
dIndex = AV_MMF_CHUNK_HEADER_SIZE;
- sdChunkSize = _mmf_MalibNextChunk(&pbBuf[dIndex], (dSize-dIndex),
- AVMALIB_CHUNK_PHASE_CNTI, &dChunkID, &dChunkNo);
- if ((sdChunkSize < 5) || (dChunkID != AVMALIB_CHUNKCODE_CNTI))
- {
+ sdChunkSize = _mmf_MalibNextChunk(&pbBuf[dIndex], (dSize - dIndex),
+ AVMALIB_CHUNK_PHASE_CNTI, &dChunkID, &dChunkNo);
+ if ((sdChunkSize < 5) || (dChunkID != AVMALIB_CHUNKCODE_CNTI)) {
return AV_MMF_ERR_FILE;
}
-/* check Contents Class */
+ /* check Contents Class */
if ((pbBuf[AV_MMF_POSITION_OF_CCLASS] != AV_MMF_CONTENTS_CLASS_0) &&
- (pbBuf[AV_MMF_POSITION_OF_CCLASS] != AV_MMF_CONTENTS_CLASS_1) &&
- (pbBuf[AV_MMF_POSITION_OF_CCLASS] != AV_MMF_CONTENTS_CLASS_2) )
- {
+ (pbBuf[AV_MMF_POSITION_OF_CCLASS] != AV_MMF_CONTENTS_CLASS_1) &&
+ (pbBuf[AV_MMF_POSITION_OF_CCLASS] != AV_MMF_CONTENTS_CLASS_2)) {
return AV_MMF_ERR_CLASS;
}
-/* check Contents Type */
+ /* check Contents Type */
dIndex += AV_MMF_CHUNK_HEADER_SIZE;
if (((pbBuf[AV_MMF_POSITION_OF_CTYPE] & 0xF0) == AV_MMF_CONTENTS_TYPE_0) ||
- ((pbBuf[AV_MMF_POSITION_OF_CTYPE] & 0xF0) == AV_MMF_CONTENTS_TYPE_1) ||
- ((pbBuf[AV_MMF_POSITION_OF_CTYPE] & 0xF0) == AV_MMF_CONTENTS_TYPE_2) )
- {
+ ((pbBuf[AV_MMF_POSITION_OF_CTYPE] & 0xF0) == AV_MMF_CONTENTS_TYPE_1) ||
+ ((pbBuf[AV_MMF_POSITION_OF_CTYPE] & 0xF0) == AV_MMF_CONTENTS_TYPE_2)) {
psLoad_Info->dSmafType = AV_MMF_SMAF_TYPE_MA2;
- }
- else if (((pbBuf[AV_MMF_POSITION_OF_CTYPE] & 0xF0) == AV_MMF_CONTENTS_TYPE_3) ||
- ((pbBuf[AV_MMF_POSITION_OF_CTYPE] & 0xF0) == AV_MMF_CONTENTS_TYPE_4) ||
- ((pbBuf[AV_MMF_POSITION_OF_CTYPE] & 0xF0) == AV_MMF_CONTENTS_TYPE_5) )
- {
- switch (pbBuf[AV_MMF_POSITION_OF_CTYPE] & 0x0F)
- {
- case 0x00 :
- case 0x01 :
- psLoad_Info->dSmafType = AV_MMF_SMAF_TYPE_MA2;
- break;
- case 0x02 :
- case 0x03 :
- psLoad_Info->dSmafType = AV_MMF_SMAF_TYPE_MA3;
- break;
- case 0x04 :
- case 0x05 :
- case 0x06 :
- case 0x07 :
- case 0x08 :
- psLoad_Info->dSmafType = AV_MMF_SMAF_TYPE_MA5;
- break;
- default :
- return AV_MMF_ERR_TYPE;
+ } else if (((pbBuf[AV_MMF_POSITION_OF_CTYPE] & 0xF0) == AV_MMF_CONTENTS_TYPE_3) ||
+ ((pbBuf[AV_MMF_POSITION_OF_CTYPE] & 0xF0) == AV_MMF_CONTENTS_TYPE_4) ||
+ ((pbBuf[AV_MMF_POSITION_OF_CTYPE] & 0xF0) == AV_MMF_CONTENTS_TYPE_5)) {
+ switch (pbBuf[AV_MMF_POSITION_OF_CTYPE] & 0x0F) {
+ case 0x00:
+ case 0x01:
+ psLoad_Info->dSmafType = AV_MMF_SMAF_TYPE_MA2;
+ break;
+ case 0x02:
+ case 0x03:
+ psLoad_Info->dSmafType = AV_MMF_SMAF_TYPE_MA3;
+ break;
+ case 0x04:
+ case 0x05:
+ case 0x06:
+ case 0x07:
+ case 0x08:
+ psLoad_Info->dSmafType = AV_MMF_SMAF_TYPE_MA5;
+ break;
+ default:
+ return AV_MMF_ERR_TYPE;
}
- }
- else
- {
+ } else {
return AV_MMF_ERR_TYPE;
}
-/* get pointer & size of option information */
+ /* get pointer & size of option information */
psLoad_Info->sOption_Info.pbCnti = &pbBuf[dIndex];
psLoad_Info->sOption_Info.dCntiSize = (unsigned int)(sdChunkSize);
dIndex += sdChunkSize;
- if (pbBuf[AV_MMF_POSITION_OF_CTYPE] >= 0x30)
- {
- sdChunkSize = _mmf_MalibNextChunk(&pbBuf[dIndex], (dSize-dIndex),
- AVMALIB_CHUNK_PHASE_MMMDSUB, &dChunkID, &dChunkNo);
- if ((sdChunkSize >= 12) && (dChunkID == AVMALIB_CHUNKCODE_OPDA))
- {
+ if (pbBuf[AV_MMF_POSITION_OF_CTYPE] >= 0x30) {
+ sdChunkSize = _mmf_MalibNextChunk(&pbBuf[dIndex], (dSize - dIndex),
+ AVMALIB_CHUNK_PHASE_MMMDSUB, &dChunkID, &dChunkNo);
+ if ((sdChunkSize >= 12) && (dChunkID == AVMALIB_CHUNKCODE_OPDA)) {
dIndex += AV_MMF_CHUNK_HEADER_SIZE;
psLoad_Info->sOption_Info.pbOpda = &pbBuf[dIndex];
psLoad_Info->sOption_Info.dOpdaSize = (unsigned int)sdChunkSize;
@@ -2664,75 +2516,67 @@ _mmf_MALoad( unsigned char* pbFile, unsigned int dFSize)
}
}
-/* get Track Chunk information */
- while (dSize > (dIndex + AV_MMF_CHUNK_HEADER_SIZE + AV_MMF_FILE_CRC_SIZE))
- {
- sdChunkSize = _mmf_MalibNextChunk(&pbBuf[dIndex], (dSize-dIndex),
- AVMALIB_CHUNK_PHASE_MMMDSUB, &dChunkID, &dChunkNo);
- if (sdChunkSize < 0)
- {
- if (sdChunkSize == AVMALIB_CHUNK_ID_ERROR)
- {
+ /* get Track Chunk information */
+ while (dSize > (dIndex + AV_MMF_CHUNK_HEADER_SIZE + AV_MMF_FILE_CRC_SIZE)) {
+ sdChunkSize = _mmf_MalibNextChunk(&pbBuf[dIndex], (dSize - dIndex),
+ AVMALIB_CHUNK_PHASE_MMMDSUB, &dChunkID, &dChunkNo);
+ if (sdChunkSize < 0) {
+ if (sdChunkSize == AVMALIB_CHUNK_ID_ERROR) {
return AV_MMF_ERR_FILE;
- }
- else {
+ } else {
return AV_MMF_ERR_SIZE;
}
}
dIndex += AV_MMF_CHUNK_HEADER_SIZE;
- switch (dChunkID)
- {
- case AVMALIB_CHUNKCODE_MTR :
- if (dChunkNo > 6)
+ switch (dChunkID) {
+ case AVMALIB_CHUNKCODE_MTR:
+ if (dChunkNo > 6)
+ break;
+ psLoad_Info->sTrack_Info[dChunkNo].pbMtr = &(pbBuf[dIndex]);
+ psLoad_Info->sTrack_Info[dChunkNo].dMtrSize = (unsigned int)sdChunkSize;
break;
- psLoad_Info->sTrack_Info[dChunkNo].pbMtr = &(pbBuf[dIndex]);
- psLoad_Info->sTrack_Info[dChunkNo].dMtrSize = (unsigned int)sdChunkSize;
- break;
- case AVMALIB_CHUNKCODE_ATR :
- if (dChunkNo != 0)
+ case AVMALIB_CHUNKCODE_ATR:
+ if (dChunkNo != 0)
+ break;
+ psLoad_Info->sTrack_Info[AV_MMF_ATR_TRACK_NO].pbMtr = &(pbBuf[dIndex]);
+ psLoad_Info->sTrack_Info[AV_MMF_ATR_TRACK_NO].dMtrSize = (unsigned int)sdChunkSize;
+ break;
+ default:
break;
- psLoad_Info->sTrack_Info[AV_MMF_ATR_TRACK_NO].pbMtr = &(pbBuf[dIndex]);
- psLoad_Info->sTrack_Info[AV_MMF_ATR_TRACK_NO].dMtrSize = (unsigned int)sdChunkSize;
- break;
- default :
- break;
}
dIndex += sdChunkSize;
}
-/* Error Check of Track Chunk */
- switch (psLoad_Info->dSmafType)
- {
- case AV_MMF_SMAF_TYPE_MA2 :
- sdResult = _mmf_TrackChunkCheck2(psLoad_Info);
- break;
- case AV_MMF_SMAF_TYPE_MA3 :
- sdResult = _mmf_TrackChunkCheck3(psLoad_Info);
- break;
- default :
- if (_mmf_CheckM5P(psLoad_Info)!= AV_MMF_FUNC_SUCCESS) return AV_MMF_ERR_CHUNK;
- sdResult = _mmf_TrackChunkCheck5(psLoad_Info);
- break;
+ /* Error Check of Track Chunk */
+ switch (psLoad_Info->dSmafType) {
+ case AV_MMF_SMAF_TYPE_MA2:
+ sdResult = _mmf_TrackChunkCheck2(psLoad_Info);
+ break;
+ case AV_MMF_SMAF_TYPE_MA3:
+ sdResult = _mmf_TrackChunkCheck3(psLoad_Info);
+ break;
+ default:
+ if (_mmf_CheckM5P(psLoad_Info) != AV_MMF_FUNC_SUCCESS) return AV_MMF_ERR_CHUNK;
+ sdResult = _mmf_TrackChunkCheck5(psLoad_Info);
+ break;
}
-/* check playback time */
+ /* check playback time */
if (sdResult != AV_MMF_FUNC_SUCCESS) return sdResult;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "SUM %ld\n", psLoad_Info->dPlayTime * psLoad_Info->dTimeBase);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("SUM %ld\n", psLoad_Info->dPlayTime * psLoad_Info->dTimeBase);
+#endif
- if ((psLoad_Info->dPlayTime * psLoad_Info->dTimeBase) <= AV_MMF_PLAY_TIME_MIN)
- {
+ if ((psLoad_Info->dPlayTime * psLoad_Info->dTimeBase) <= AV_MMF_PLAY_TIME_MIN) {
return AV_MMF_ERR_SLENGTH;
}
- if ((psLoad_Info->dPlayTime * psLoad_Info->dTimeBase) >= AV_MMF_PLAY_TIME_MAX)
- {
+ if ((psLoad_Info->dPlayTime * psLoad_Info->dTimeBase) >= AV_MMF_PLAY_TIME_MAX) {
return AV_MMF_ERR_LLENGTH;
}
- rVal = psLoad_Info->dPlayTime*psLoad_Info->dTimeBase;
+ rVal = psLoad_Info->dPlayTime * psLoad_Info->dTimeBase;
_mmf_GetHvData(psLoad_Info, pbBuf[AV_MMF_POSITION_OF_CTYPE]);
psLoad_Info->pbMmmd = pbBuf;
@@ -2754,7 +2598,7 @@ _mmf_MALoad( unsigned char* pbFile, unsigned int dFSize)
* < 0 error code
********************************************************************************/
static int
-_mmf_RenewalProfile(unsigned char* pbFile)
+_mmf_RenewalProfile(unsigned char *pbFile)
{
PLOADINFO psLoad;
POPTIONINFO psOptn;
@@ -2766,7 +2610,7 @@ _mmf_RenewalProfile(unsigned char* pbFile)
psTrk = &(psLoad->sTrack_Info[5]);
psHuf = &(psLoad->sHuffman_Info);
-/* renew pointer offset to pointer */
+ /* renew pointer offset to pointer */
psLoad->pbMmmd = pbFile;
psLoad->dCrc = AV_MMF_CRC_NULL;
@@ -2779,15 +2623,13 @@ _mmf_RenewalProfile(unsigned char* pbFile)
psTrk->pbMtsq = &(pbFile[(unsigned int)psTrk->pbMtsq]);
psTrk->pbMtsp = &(pbFile[(unsigned int)psTrk->pbMtsp]);
-/* Initialize Huffman information structure */
+ /* Initialize Huffman information structure */
psHuf->psBuffer = psTrk->pbMtsq;
psHuf->dMtsqSize = psTrk->dMtsqSize;
- if (psTrk->pbMtr[0] == 0x01)
- {
+ if (psTrk->pbMtr[0] == 0x01) {
psHuf->dSeqSize = _mmf_DecodeInit(psHuf);
- if (psHuf->dSeqSize == AV_MMF_HUFFMAN_TREE_FAILURE)
- {
+ if (psHuf->dSeqSize == AV_MMF_HUFFMAN_TREE_FAILURE) {
return AV_MMF_FUNC_ERROR;
}
}
@@ -2804,61 +2646,52 @@ _mmf_RenewalProfile(unsigned char* pbFile)
static int
-_mmf_ParseSkipXmf2Mmf(unsigned char* pbFile, unsigned int dFSize)
+_mmf_ParseSkipXmf2Mmf(unsigned char *pbFile, unsigned int dFSize)
{
- unsigned int skipVal = 0, sizeOfpbFile= dFSize;
+ unsigned int skipVal = 0, sizeOfpbFile = dFSize;
char cmpXmfCMMD[5];
if (pbFile)
memcpy(cmpXmfCMMD, pbFile, 4);
- else
- {
- debug_error ( "NULL pointer!\n");
+ else {
+ debug_error("NULL pointer!\n");
return -1;
}
cmpXmfCMMD[4] = 0;
- if (strncmp(cmpXmfCMMD, "CMMD", 4) == 0)
- {
- while (1)
- {
- if (pbFile[skipVal] == 'M' && pbFile[skipVal+1] == 'M' && pbFile[skipVal+2] == 'M' && pbFile[skipVal+3] == 'D')
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "MMMD Header found!\n");
- #endif
+ if (strncmp(cmpXmfCMMD, "CMMD", 4) == 0) {
+ while (1) {
+ if (pbFile[skipVal] == 'M' && pbFile[skipVal + 1] == 'M' && pbFile[skipVal + 2] == 'M' && pbFile[skipVal + 3] == 'D') {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MMMD Header found!\n");
+#endif
break;
- }
- else
- {
+ } else {
skipVal++;
- if (skipVal >= sizeOfpbFile)
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "MMMD Header is not found!\n");
- #endif
+ if (skipVal >= sizeOfpbFile) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MMMD Header is not found!\n");
+#endif
return -1;
}
}
}
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "File header is not started CMMD\n");
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("File header is not started CMMD\n");
+#endif
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "skip value: %d\n", skipVal);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("skip value: %d\n", skipVal);
+#endif
return skipVal;
}
static int
-mmf_file_mmf_get_duration (char *src, int is_xmf)
+mmf_file_mmf_get_duration(char *src, int is_xmf)
{
int readed = 0;
int xmf_skip_offset = 0;
@@ -2879,30 +2712,29 @@ mmf_file_mmf_get_duration (char *src, int is_xmf)
#endif
/*open*/
- ret = mmfile_open (&fp, src, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL)
- {
- debug_error ( "open failed.\n");
+ ret = mmfile_open(&fp, src, MMFILE_RDONLY);
+ if (ret == MMFILE_UTIL_FAIL) {
+ debug_error("open failed.\n");
return -1;
}
/*get file size*/
- mmfile_seek (fp, 0L, MMFILE_SEEK_END);
- src_size = mmfile_tell (fp);
- mmfile_seek (fp, 0L, MMFILE_SEEK_SET);
+ mmfile_seek(fp, 0L, MMFILE_SEEK_END);
+ src_size = mmfile_tell(fp);
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
if (src_size <= 0) {
- debug_error ( "failed to get file size.\n");
+ debug_error("failed to get file size.\n");
ret_msec = -1;
goto _RELEASE_RESOURCE;
}
/*alloc work buffer*/
- buf = mmfile_malloc (src_size + 1);
+ buf = mmfile_malloc(src_size + 1);
/*read data*/
- if ((readed = mmfile_read (fp, buf, src_size) ) <= 0 ) {
- debug_error ( "read error. size = %d\n", readed);
+ if ((readed = mmfile_read(fp, buf, src_size)) <= 0) {
+ debug_error("read error. size = %d\n", readed);
ret_msec = -1;
goto _RELEASE_RESOURCE;
@@ -2910,7 +2742,7 @@ mmf_file_mmf_get_duration (char *src, int is_xmf)
/*if XMF, get skip offset.*/
if (is_xmf) {
- xmf_skip_offset = _mmf_ParseSkipXmf2Mmf (buf, src_size);
+ xmf_skip_offset = _mmf_ParseSkipXmf2Mmf(buf, src_size);
if (xmf_skip_offset == -1) {
ret_msec = -1;
goto _RELEASE_RESOURCE;
@@ -2920,14 +2752,14 @@ mmf_file_mmf_get_duration (char *src, int is_xmf)
if (g_sSmaf_Info.dStatus == AV_MMF_STATUS_SAT_PROFILE) {
load_info = &(g_sSmaf_Info.sLoad_Info[1]);
if (load_info->dMmmdSize <= src_size) {
- p_crc = &(buf[load_info->dMmmdSize -2+xmf_skip_offset]);
+ p_crc = &(buf[load_info->dMmmdSize - 2 + xmf_skip_offset]);
dCrc = (unsigned int)((((unsigned int)p_crc[0]) << 8) + (unsigned int)p_crc[1]);
} else {
dCrc = AV_MMF_CRC_NULL;
}
if (dCrc == load_info->dCrc) {
- if (_mmf_RenewalProfile (buf + xmf_skip_offset) == AV_MMF_FUNC_SUCCESS) {
+ if (_mmf_RenewalProfile(buf + xmf_skip_offset) == AV_MMF_FUNC_SUCCESS) {
g_sSmaf_Info.dStatus = AV_MMF_STATUS_LOADED;
ret_msec = -1;
goto _RELEASE_RESOURCE;
@@ -2935,13 +2767,13 @@ mmf_file_mmf_get_duration (char *src, int is_xmf)
}
}
- ret_msec = _mmf_MALoad (buf + xmf_skip_offset, src_size);
+ ret_msec = _mmf_MALoad(buf + xmf_skip_offset, src_size);
_RELEASE_RESOURCE:
- mmfile_close (fp);
+ mmfile_close(fp);
- if (buf) mmfile_free (buf);
+ if (buf) mmfile_free(buf);
return ret_msec;
}
diff --git a/formats/ffmpeg/mm_file_format_mp3.c b/formats/ffmpeg/mm_file_format_mp3.c
index 46de8ae..5e52b93 100755
--- a/formats/ffmpeg/mm_file_format_mp3.c
+++ b/formats/ffmpeg/mm_file_format_mp3.c
@@ -27,7 +27,7 @@
#include <stdlib.h> /*malloc*/
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
#include "mm_file_format_private.h"
#include "mm_file_format_audio.h"
@@ -42,167 +42,162 @@
#define AV_MP3_FIND_SYNC_LEN 1024*30
-#undef MIN
+#undef MIN
#define MIN(a, b) ((a) < (b) ? (a) : (b))
-static const unsigned char mp3FrameMasking[4] = {0xFF,0xFE,0x0C,0x00};
+static const unsigned char mp3FrameMasking[4] = {0xFF, 0xFE, 0x0C, 0x00};
static unsigned char mp3FrameDataValid[4];
static const int mp3BitRateTable[2][3][16] = {
- { {0,32,64,96,128,160,192,224,256,288,320,352,384,416,448,},
- {0,32,48,56, 64, 80, 96,112,128,160,192,224,256,320,384,},
- {0,32,40,48, 56, 64, 80, 96,112,128,160,192,224,256,320,} },
-
- { {0,32,48,56,64,80,96,112,128,144,160,176,192,224,256,},
- {0,8,16,24,32,40,48,56,64,80,96,112,128,144,160,},
- {0,8,16,24,32,40,48,56,64,80,96,112,128,144,160,} }
+ { {0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448,},
+ {0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384,},
+ {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320,}
+ },
+
+ { {0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256,},
+ {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160,},
+ {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160,}
+ }
};
-static const int mp3SamRateTable[3][3] =
-{ {44100, 48000, 32000},
- {22050, 24000, 16000} ,
- {11025, 12000, 8000}
+static const int mp3SamRateTable[3][3] = {
+ {44100, 48000, 32000},
+ {22050, 24000, 16000},
+ {11025, 12000, 8000}
};
#define IS_VALID_FRAME_MP3(x) \
- ((((x)[0] & mp3FrameMasking[0]) == mp3FrameDataValid[0]) && \
- (((x)[1] & mp3FrameMasking[1]) == mp3FrameDataValid[1]) && \
- (((x)[2] & mp3FrameMasking[2]) == mp3FrameDataValid[2]) && \
- (((x)[3] & mp3FrameMasking[3]) == mp3FrameDataValid[3]))
+ ((((x)[0] & mp3FrameMasking[0]) == mp3FrameDataValid[0]) && \
+ (((x)[1] & mp3FrameMasking[1]) == mp3FrameDataValid[1]) && \
+ (((x)[2] & mp3FrameMasking[2]) == mp3FrameDataValid[2]) && \
+ (((x)[3] & mp3FrameMasking[3]) == mp3FrameDataValid[3]))
/* interface functions */
-int mmfile_format_read_stream_mp3 (MMFileFormatContext *formatContext);
-int mmfile_format_read_frame_mp3 (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
-int mmfile_format_read_tag_mp3 (MMFileFormatContext *formatContext);
-int mmfile_format_close_mp3 (MMFileFormatContext *formatContext);
+int mmfile_format_read_stream_mp3(MMFileFormatContext *formatContext);
+int mmfile_format_read_frame_mp3(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
+int mmfile_format_read_tag_mp3(MMFileFormatContext *formatContext);
+int mmfile_format_close_mp3(MMFileFormatContext *formatContext);
/* internal */
-static int mmf_file_mp3_get_infomation (char *src, AvFileContentInfo* pInfo );
+static int mmf_file_mp3_get_infomation(char *src, AvFileContentInfo *pInfo);
EXPORT_API
-int mmfile_format_open_mp3 (MMFileFormatContext *formatContext)
+int mmfile_format_open_mp3(MMFileFormatContext *formatContext)
{
- AvFileContentInfo *privateData = NULL;;
- int ret = 0;
+ AvFileContentInfo *privateData = NULL;;
+ int ret = 0;
#ifdef __MMFILE_TEST_MODE__
debug_fenter();
#endif
-
- if (NULL == formatContext)
- {
- debug_error("formatContext is NULL\n");
- return MMFILE_FORMAT_FAIL;
- }
+
+ if (NULL == formatContext) {
+ debug_error("formatContext is NULL\n");
+ return MMFILE_FORMAT_FAIL;
+ }
if (formatContext->pre_checked == 0) {
- ret = MMFileFormatIsValidMP3 (formatContext->uriFileName,5);
- if ( ret == 0 )
- {
+ ret = MMFileFormatIsValidMP3(NULL, formatContext->uriFileName, 5);
+ if (ret == 0) {
debug_error("It is not mp3 file\n");
- return MMFILE_FORMAT_FAIL;
+ return MMFILE_FORMAT_FAIL;
}
}
-
- formatContext->ReadStream = mmfile_format_read_stream_mp3;
- formatContext->ReadFrame = mmfile_format_read_frame_mp3;
- formatContext->ReadTag = mmfile_format_read_tag_mp3;
- formatContext->Close = mmfile_format_close_mp3;
-
- formatContext->videoTotalTrackNum = 0;
- formatContext->audioTotalTrackNum = 1;
-
- privateData = mmfile_malloc (sizeof (AvFileContentInfo));
- if (!privateData)
- {
- debug_error ("error: mmfile_malloc MP3 privateData\n");
- return MMFILE_FORMAT_FAIL;
- }
-
- formatContext->privateFormatData = privateData;
-
- ret = mmf_file_mp3_get_infomation (formatContext->uriFileName, privateData);
- if ( ret == -1 )
- {
- debug_error ("error: mmfile_format_read_stream_mp3\n");
- goto exception;
- }
-
- return MMFILE_FORMAT_SUCCESS;
-
+
+ formatContext->ReadStream = mmfile_format_read_stream_mp3;
+ formatContext->ReadFrame = mmfile_format_read_frame_mp3;
+ formatContext->ReadTag = mmfile_format_read_tag_mp3;
+ formatContext->Close = mmfile_format_close_mp3;
+
+ formatContext->videoTotalTrackNum = 0;
+ formatContext->audioTotalTrackNum = 1;
+
+ privateData = mmfile_malloc(sizeof(AvFileContentInfo));
+ if (!privateData) {
+ debug_error("error: mmfile_malloc MP3 privateData\n");
+ return MMFILE_FORMAT_FAIL;
+ }
+
+ formatContext->privateFormatData = privateData;
+
+ ret = mmf_file_mp3_get_infomation(formatContext->uriFileName, privateData);
+ if (ret == -1) {
+ debug_error("error: mmfile_format_read_stream_mp3\n");
+ goto exception;
+ }
+
+ return MMFILE_FORMAT_SUCCESS;
+
exception:
- mmfile_format_close_mp3 (formatContext);
- return MMFILE_FORMAT_FAIL;
+ mmfile_format_close_mp3(formatContext);
+ return MMFILE_FORMAT_FAIL;
}
EXPORT_API
-int mmfile_format_read_stream_mp3 (MMFileFormatContext *formatContext)
+int mmfile_format_read_stream_mp3(MMFileFormatContext *formatContext)
{
- AvFileContentInfo *privateData = NULL;
+ AvFileContentInfo *privateData = NULL;
#ifdef __MMFILE_TEST_MODE__
debug_fenter();
#endif
- if (!formatContext || !formatContext->privateFormatData)
- {
- debug_error("formatContext is NULL\n");
- return MMFILE_FORMAT_FAIL;
- }
-
- privateData = formatContext->privateFormatData;
-
- formatContext->duration = privateData->duration;
- formatContext->videoTotalTrackNum = 0;
- formatContext->audioTotalTrackNum = 1;
- formatContext->nbStreams = 1;
- formatContext->streams[MMFILE_AUDIO_STREAM] = mmfile_malloc (sizeof (MMFileFormatStream));
- if (NULL == formatContext->streams[MMFILE_AUDIO_STREAM])
- {
- debug_error ("formatContext->streams[MMFILE_AUDIO_STREAM] is NULL\n");
- return MMFILE_FORMAT_FAIL;
- }
-
- formatContext->streams[MMFILE_AUDIO_STREAM]->streamType = MMFILE_AUDIO_STREAM;
- formatContext->streams[MMFILE_AUDIO_STREAM]->codecId = MM_AUDIO_CODEC_MP3;
- formatContext->streams[MMFILE_AUDIO_STREAM]->bitRate = (privateData->bitRate*1000);
- formatContext->streams[MMFILE_AUDIO_STREAM]->framePerSec = (privateData->duration == 0 ? 0 : privateData->frameNum/privateData->duration);
- formatContext->streams[MMFILE_AUDIO_STREAM]->width = 0;
- formatContext->streams[MMFILE_AUDIO_STREAM]->height = 0;
- formatContext->streams[MMFILE_AUDIO_STREAM]->nbChannel = privateData->channels;
- formatContext->streams[MMFILE_AUDIO_STREAM]->samplePerSec = privateData->sampleRate;
-
- return MMFILE_FORMAT_SUCCESS;
+ if (!formatContext || !formatContext->privateFormatData) {
+ debug_error("formatContext is NULL\n");
+ return MMFILE_FORMAT_FAIL;
+ }
+
+ privateData = formatContext->privateFormatData;
+
+ formatContext->duration = privateData->duration;
+ formatContext->videoTotalTrackNum = 0;
+ formatContext->audioTotalTrackNum = 1;
+ formatContext->nbStreams = 1;
+ formatContext->streams[MMFILE_AUDIO_STREAM] = mmfile_malloc(sizeof(MMFileFormatStream));
+ if (NULL == formatContext->streams[MMFILE_AUDIO_STREAM]) {
+ debug_error("formatContext->streams[MMFILE_AUDIO_STREAM] is NULL\n");
+ return MMFILE_FORMAT_FAIL;
+ }
+
+ formatContext->streams[MMFILE_AUDIO_STREAM]->streamType = MMFILE_AUDIO_STREAM;
+ formatContext->streams[MMFILE_AUDIO_STREAM]->codecId = MM_AUDIO_CODEC_MP3;
+ formatContext->streams[MMFILE_AUDIO_STREAM]->bitRate = (privateData->bitRate * 1000);
+ formatContext->streams[MMFILE_AUDIO_STREAM]->framePerSec = (privateData->duration == 0 ? 0 : privateData->frameNum / privateData->duration);
+ formatContext->streams[MMFILE_AUDIO_STREAM]->width = 0;
+ formatContext->streams[MMFILE_AUDIO_STREAM]->height = 0;
+ formatContext->streams[MMFILE_AUDIO_STREAM]->nbChannel = privateData->channels;
+ formatContext->streams[MMFILE_AUDIO_STREAM]->samplePerSec = privateData->sampleRate;
+
+ return MMFILE_FORMAT_SUCCESS;
}
EXPORT_API
-int mmfile_format_read_frame_mp3 (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame)
+int mmfile_format_read_frame_mp3(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame)
{
- return MMFILE_FORMAT_SUCCESS;
+ return MMFILE_FORMAT_SUCCESS;
}
EXPORT_API
-int mmfile_format_read_tag_mp3 (MMFileFormatContext *formatContext)
+int mmfile_format_read_tag_mp3(MMFileFormatContext *formatContext)
{
- AvFileContentInfo *privateData = NULL;
+ AvFileContentInfo *privateData = NULL;
#ifdef __MMFILE_TEST_MODE__
debug_fenter();
#endif
- if (!formatContext || !formatContext->privateFormatData)
- {
- debug_error("formatContext is NULL\n");
- return MMFILE_FORMAT_FAIL;
- }
+ if (!formatContext || !formatContext->privateFormatData) {
+ debug_error("formatContext is NULL\n");
+ return MMFILE_FORMAT_FAIL;
+ }
- privateData = formatContext->privateFormatData;
+ privateData = formatContext->privateFormatData;
if (privateData->pTitle) formatContext->title = mmfile_strdup(privateData->pTitle);
if (privateData->pArtist) formatContext->artist = mmfile_strdup(privateData->pArtist);
@@ -217,27 +212,24 @@ int mmfile_format_read_tag_mp3 (MMFileFormatContext *formatContext)
if (privateData->pComposer) formatContext->composer = mmfile_strdup(privateData->pComposer);
if (privateData->pContentGroup) formatContext->classification = mmfile_strdup(privateData->pContentGroup);
if (privateData->pConductor) formatContext->conductor = mmfile_strdup(privateData->pConductor);
- if (privateData->pUnsyncLyrics) formatContext->unsyncLyrics= mmfile_strdup(privateData->pUnsyncLyrics);
- if (privateData->pSyncLyrics) formatContext->syncLyrics= privateData->pSyncLyrics;
- if (privateData->syncLyricsNum) formatContext->syncLyricsNum= privateData->syncLyricsNum;
- if (privateData->pRecDate) formatContext->recDate= mmfile_strdup(privateData->pRecDate);
-
- if(privateData->imageInfo.imageLen > 0)
- {
- formatContext->artwork = mmfile_malloc (privateData->imageInfo.imageLen);
- if(formatContext->artwork)
- {
+ if (privateData->pUnsyncLyrics) formatContext->unsyncLyrics = mmfile_strdup(privateData->pUnsyncLyrics);
+ if (privateData->pSyncLyrics) formatContext->syncLyrics = privateData->pSyncLyrics;
+ if (privateData->syncLyricsNum) formatContext->syncLyricsNum = privateData->syncLyricsNum;
+ if (privateData->pRecDate) formatContext->recDate = mmfile_strdup(privateData->pRecDate);
+
+ if (privateData->imageInfo.imageLen > 0) {
+ formatContext->artwork = mmfile_malloc(privateData->imageInfo.imageLen);
+ if (formatContext->artwork) {
formatContext->artworkSize = privateData->imageInfo.imageLen;
- memcpy (formatContext->artwork, privateData->imageInfo.pImageBuf, privateData->imageInfo.imageLen);
+ memcpy(formatContext->artwork, privateData->imageInfo.pImageBuf, privateData->imageInfo.imageLen);
if (strlen(privateData->imageInfo.imageMIMEType) > 0)
- formatContext->artworkMime= mmfile_strdup(privateData->imageInfo.imageMIMEType);
- else if(strlen(privateData->imageInfo.imageExt) > 0) {
- #ifdef __MMFILE_TEST_MODE__
+ formatContext->artworkMime = mmfile_strdup(privateData->imageInfo.imageMIMEType);
+ else if (strlen(privateData->imageInfo.imageExt) > 0) {
+#ifdef __MMFILE_TEST_MODE__
debug_msg("ID3 tag V2 File");
- #endif
- formatContext->artworkMime= mmfile_strdup(privateData->imageInfo.imageExt);
- }
- else {
+#endif
+ formatContext->artworkMime = mmfile_strdup(privateData->imageInfo.imageExt);
+ } else {
debug_error("Album art image exist but there is no type information of album art\n");
}
}
@@ -247,22 +239,20 @@ int mmfile_format_read_tag_mp3 (MMFileFormatContext *formatContext)
}
EXPORT_API
-int mmfile_format_close_mp3 (MMFileFormatContext *formatContext)
+int mmfile_format_close_mp3(MMFileFormatContext *formatContext)
{
- AvFileContentInfo *privateData = NULL;
-
- if (formatContext)
- {
- privateData = formatContext->privateFormatData;
- if (privateData)
- {
- mm_file_free_AvFileContentInfo (privateData);
- mmfile_free (privateData);
- formatContext->privateFormatData = NULL;
- }
- }
-
- return MMFILE_FORMAT_SUCCESS;
+ AvFileContentInfo *privateData = NULL;
+
+ if (formatContext) {
+ privateData = formatContext->privateFormatData;
+ if (privateData) {
+ mm_file_free_AvFileContentInfo(privateData);
+ mmfile_free(privateData);
+ formatContext->privateFormatData = NULL;
+ }
+ }
+
+ return MMFILE_FORMAT_SUCCESS;
}
static int
@@ -295,46 +285,43 @@ __AvExtractI2(unsigned char *buf)
}
static int
-__AvGetXingHeader( AvXHeadData* headData, unsigned char *buf )
+__AvGetXingHeader(AvXHeadData *headData, unsigned char *buf)
{
int index, headFlags;
int hId, hMode, hSrIndex;
- static int mp3SamRateTable[4] = { 44100, 48000, 32000, 99999 };
+ int mp3SampleRateTable[4] = { 44100, 48000, 32000, 99999 };
- // get Xing header data
+ /* get Xing header data */
headData->flags = 0;
- // get selected MP3 header data
+ /* get selected MP3 header data */
hId = (buf[1] >> 3) & 1;
hSrIndex = (buf[2] >> 2) & 3;
hMode = (buf[3] >> 6) & 3;
- // determine offset of header
- if( hId ) // mpeg1
- {
- if( hMode != 3 )
- buf += (32+4);
+ /* determine offset of header */
+ if (hId) { /* mpeg1 */
+ if (hMode != 3)
+ buf += (32 + 4);
else
- buf += (17+4);
- }
- else // mpeg2
- {
- if( hMode != 3 )
- buf += (17+4);
+ buf += (17 + 4);
+ } else { /* mpeg2 */
+ if (hMode != 3)
+ buf += (17 + 4);
else
- buf += (9+4);
+ buf += (9 + 4);
}
/* There could be 2 attrs in this header : Xing or Info */
if (buf[0] == 'X') {
- if( buf[1] != 'i' ) return 0;
- if( buf[2] != 'n' ) return 0;
- if( buf[3] != 'g' ) return 0;
+ if (buf[1] != 'i') return 0;
+ if (buf[2] != 'n') return 0;
+ if (buf[3] != 'g') return 0;
} else if (buf[0] == 'I') {
- if( buf[1] != 'n' ) return 0;
- if( buf[2] != 'f' ) return 0;
- if( buf[3] != 'o' ) return 0;
+ if (buf[1] != 'n') return 0;
+ if (buf[2] != 'f') return 0;
+ if (buf[3] != 'o') return 0;
} else {
return 0;
}
@@ -342,119 +329,111 @@ __AvGetXingHeader( AvXHeadData* headData, unsigned char *buf )
buf += 4;
headData->hId = hId;
- headData->sampRate = mp3SamRateTable[hSrIndex];
- if( hId == 0 )
+ headData->sampRate = mp3SampleRateTable[hSrIndex];
+ if (hId == 0)
headData->sampRate >>= 1;
- headFlags = headData->flags = __AvExtractI4( buf ); // get flags
- buf+=4;
+ headFlags = headData->flags = __AvExtractI4(buf); /* get flags */
+ buf += 4;
- if( headFlags & FRAMES_FLAG )
- {
- headData->frames = __AvExtractI4( buf );
- buf+=4;
+ if (headFlags & FRAMES_FLAG) {
+ headData->frames = __AvExtractI4(buf);
+ buf += 4;
}
- if( headFlags & BYTES_FLAG )
- {
- headData->bytes = __AvExtractI4( buf );
- buf+=4;
+ if (headFlags & BYTES_FLAG) {
+ headData->bytes = __AvExtractI4(buf);
+ buf += 4;
}
- if( headFlags & TOC_FLAG )
- {
- if( headData->toc != NULL )
- {
- for( index = 0; index < 100; index++ )
+ if (headFlags & TOC_FLAG) {
+ if (headData->toc != NULL) {
+ for (index = 0; index < 100; index++)
headData->toc[index] = buf[index];
}
- buf+=100;
+ buf += 100;
}
headData->vbrScale = -1;
- if( headFlags & VBR_SCALE_FLAG )
- {
- headData->vbrScale = __AvExtractI4( buf );
- buf+=4;
+ if (headFlags & VBR_SCALE_FLAG) {
+ headData->vbrScale = __AvExtractI4(buf);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("Xing header: sampling-rate:%d, stream-size:%d, frame-number:%d\n",
- headData->sampRate, headData->bytes, headData->frames);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Xing header: sampling-rate:%d, stream-size:%d, frame-number:%d\n",
+ headData->sampRate, headData->bytes, headData->frames);
+#endif
- return 1; // success
+ return 1; /* success */
}
static int
-__AvGetVBRIHeader( AvVBRIHeadData* headData, unsigned char *buf )
+__AvGetVBRIHeader(AvVBRIHeadData *headData, unsigned char *buf)
{
int hId, hSrIndex;
- static int mp3SamRateTable[4] = { 44100, 48000, 32000, 99999 };
+ int mp3SampleRateTable[4] = { 44100, 48000, 32000, 99999 };
- // get selected MP3 header data
+ /* get selected MP3 header data */
hId = (buf[1] >> 3) & 1;
hSrIndex = (buf[2] >> 2) & 3;
- buf += (32+4);
+ buf += (32 + 4);
- if( buf[0] != 'V' ) return 0; // fail
- if( buf[1] != 'B' ) return 0; // header not found
- if( buf[2] != 'R' ) return 0;
- if( buf[3] != 'I' ) return 0;
+ if (buf[0] != 'V') return 0; /* fail */
+ if (buf[1] != 'B') return 0; /* header not found */
+ if (buf[2] != 'R') return 0;
+ if (buf[3] != 'I') return 0;
buf += 4;
headData->hId = hId;
- headData->sampRate = mp3SamRateTable[hSrIndex];
- if( hId == 0 )
+ headData->sampRate = mp3SampleRateTable[hSrIndex];
+ if (hId == 0)
headData->sampRate >>= 1;
- headData->vID = __AvExtractI2( buf ); // get ver ID
- buf+=2;
- headData->delay = __AvExtractI2( buf );
- buf+=2;
+ headData->vID = __AvExtractI2(buf); /* get ver ID */
+ buf += 2;
+ headData->delay = __AvExtractI2(buf);
+ buf += 2;
headData->qualityIndicator = buf[0];
- buf+=2;
- headData->bytes = __AvExtractI4( buf );
- buf+=4;
- headData->frames= __AvExtractI4( buf );
- buf+=4;
- headData->numOfTOC = __AvExtractI2( buf );
- buf+=2;
- headData->vbriScale = __AvExtractI2( buf );
- buf+=2;
- headData->sizePerTable = __AvExtractI2( buf );
- buf+=2;
- headData->framesPerTable = __AvExtractI2( buf );
- buf+=2;
-
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("Vbri header: sampling-rate:%d, stream-size:%d, frame-number:%d\n",
- headData->sampRate, headData->bytes, headData->frames);
- #endif
-
- return true; // success
+ buf += 2;
+ headData->bytes = __AvExtractI4(buf);
+ buf += 4;
+ headData->frames = __AvExtractI4(buf);
+ buf += 4;
+ headData->numOfTOC = __AvExtractI2(buf);
+ buf += 2;
+ headData->vbriScale = __AvExtractI2(buf);
+ buf += 2;
+ headData->sizePerTable = __AvExtractI2(buf);
+ buf += 2;
+ headData->framesPerTable = __AvExtractI2(buf);
+
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Vbri header: sampling-rate:%d, stream-size:%d, frame-number:%d\n",
+ headData->sampRate, headData->bytes, headData->frames);
+#endif
+
+ return true; /* success */
}
static bool
-__AvIsValidHeader(AvFileContentInfo* pInfo, unsigned char *buf)
+__AvIsValidHeader(AvFileContentInfo *pInfo, unsigned char *buf)
{
bool bSync = false;
- if (VALID_SYNC(buf))
- {
+ if (VALID_SYNC(buf)) {
mp3FrameDataValid[0] = (0xFF) & (mp3FrameMasking[0]);
mp3FrameDataValid[1] = (0xE0 | (buf[AV_MP3HDR_VERSION_OFS] & AV_MP3HDR_VERSION_M)
- | (buf[AV_MP3HDR_LAYER_OFS] & AV_MP3HDR_LAYER_M)) & (mp3FrameMasking[1]);
+ | (buf[AV_MP3HDR_LAYER_OFS] & AV_MP3HDR_LAYER_M)) & (mp3FrameMasking[1]);
mp3FrameDataValid[2] = (buf[AV_MP3HDR_SAMPLERATE_OFS] & AV_MP3HDR_SAMPLERATE_M) &
- (mp3FrameMasking[2]);
+ (mp3FrameMasking[2]);
mp3FrameDataValid[3] = (buf[AV_MP3HDR_CHANNEL_OFS] & AV_MP3HDR_CHANNEL_M) &
- (mp3FrameMasking[3]);
+ (mp3FrameMasking[3]);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("*** [%02x][%02x][%02x][%02x] : [%02x][%02x][%02x][%02x]",
- buf[0], buf[1], buf[2],buf[3],
- mp3FrameDataValid[0], mp3FrameDataValid[1], mp3FrameDataValid[2],mp3FrameDataValid[3]);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("*** [%02x][%02x][%02x][%02x] : [%02x][%02x][%02x][%02x]",
+ buf[0], buf[1], buf[2], buf[3],
+ mp3FrameDataValid[0], mp3FrameDataValid[1], mp3FrameDataValid[2], mp3FrameDataValid[3]);
+#endif
/*
* MPEG Audio Layer I/II/III frame header
@@ -479,273 +458,253 @@ __AvIsValidHeader(AvFileContentInfo* pInfo, unsigned char *buf)
*/
/* Simple check for version, layer, bitrate, samplerate */
- if ( (buf[1] & 0x18) != 0x08 && /* 000XX000 : MPEG Audio version ID, XX=01 - reserved => 00001000(0x08) */
- (buf[1] & 0x06) != 0x00 && /* 00000XX0 : Layer description, XX=00 - reserved => 00000000(0x00) */
- (buf[2] & 0xF0) != 0xF0 && /* XXXX0000 : Bitrate index, XX=1111 - bad => 11110000(0xF0) */
- (buf[2] & 0x0C) != 0x0C) /* 0000XX00 : Sampling rate frequency index , XX=11 -reserved => 00001100(0x0C) */
- {
+ if ((buf[1] & 0x18) != 0x08 && /* 000XX000 : MPEG Audio version ID, XX=01 - reserved => 00001000(0x08) */
+ (buf[1] & 0x06) != 0x00 && /* 00000XX0 : Layer description, XX=00 - reserved => 00000000(0x00) */
+ (buf[2] & 0xF0) != 0xF0 && /* XXXX0000 : Bitrate index, XX=1111 - bad => 11110000(0xF0) */
+ (buf[2] & 0x0C) != 0x0C) { /* 0000XX00 : Sampling rate frequency index, XX=11 -reserved => 00001100(0x0C) */
bSync = true;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("=> %s\n", bSync? "Good!":"Bad...");
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("=> %s\n", bSync ? "Good!" : "Bad...");
+#endif
}
- if(bSync == true)
+ if (bSync == true)
return true;
- else
+ else
return false;
}
static bool
-__AvParseMp3Header( AvFileContentInfo* pInfo, unsigned char* header )
+__AvParseMp3Header(AvFileContentInfo *pInfo, unsigned char *header)
{
unsigned char result;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("### [%02x][%02x][%02x][%02x] ###\n", header[0], header[1], header[2],header[3]);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("### [%02x][%02x][%02x][%02x] ###\n", header[0], header[1], header[2], header[3]);
+#endif
- // 1. Check the version of mp3
+ /* 1. Check the version of mp3 */
result = header[1] & MASK_MPEG;
- switch (result)
- {
- case MASK_MPEG_1:
- pInfo->mpegVersion = AV_MPEG_VER_1;
- break;
- case MASK_MPEG_2:
- pInfo->mpegVersion = AV_MPEG_VER_2;
- break;
- case MASK_MPEG_25:
- pInfo->mpegVersion = AV_MPEG_VER_25;
- break;
- default:
- return false;
+ switch (result) {
+ case MASK_MPEG_1:
+ pInfo->mpegVersion = AV_MPEG_VER_1;
+ break;
+ case MASK_MPEG_2:
+ pInfo->mpegVersion = AV_MPEG_VER_2;
+ break;
+ case MASK_MPEG_25:
+ pInfo->mpegVersion = AV_MPEG_VER_25;
+ break;
+ default:
+ return false;
}
- // 2. Get a layer
+ /* 2. Get a layer */
result = header[1] & MASK_LAYER;
- switch (result)
- {
- case MASK_LAYER_1:
- pInfo->layer = AV_MP3_LAYER_1;
- break;
- case MASK_LAYER_2:
- pInfo->layer = AV_MP3_LAYER_2;
- break;
- case MASK_LAYER_3:
- pInfo->layer = AV_MP3_LAYER_3;
- break;
- default:
- return false;
+ switch (result) {
+ case MASK_LAYER_1:
+ pInfo->layer = AV_MP3_LAYER_1;
+ break;
+ case MASK_LAYER_2:
+ pInfo->layer = AV_MP3_LAYER_2;
+ break;
+ case MASK_LAYER_3:
+ pInfo->layer = AV_MP3_LAYER_3;
+ break;
+ default:
+ return false;
}
-
- // 3. bitrate
+
+ /* 3. bitrate */
result = header[2] >> 4;
- if ( pInfo->mpegVersion == AV_MPEG_VER_1 )
- pInfo->bitRate = mp3BitRateTable[0][pInfo->layer-1][(int)result] ;
+ if (pInfo->mpegVersion == AV_MPEG_VER_1)
+ pInfo->bitRate = mp3BitRateTable[0][pInfo->layer - 1][(int)result] ;
else
- pInfo->bitRate = mp3BitRateTable[1][pInfo->layer-1][(int)result] ;
+ pInfo->bitRate = mp3BitRateTable[1][pInfo->layer - 1][(int)result] ;
- // 4. samplerate
- result = ( header[2] & MASK_SAMPLERATE ) >> 2;
- if ( result == 0x03 )
+ /* 4. samplerate */
+ result = (header[2] & MASK_SAMPLERATE) >> 2;
+ if (result == 0x03)
return false;
else
pInfo->sampleRate = mp3SamRateTable[pInfo->mpegVersion - 1][(int)result];
-
- // 5. channel
+
+ /* 5. channel */
result = header[3] & MASK_CHANNEL;
- switch (result)
- {
- case MASK_CHANNEL_ST:
- pInfo->channelIndex = 0;
- pInfo->channels = 2;
- break;
- case MASK_CHANNEL_JS:
- pInfo->channelIndex = 1;
- pInfo->channels = 2;
- break;
- case MASK_CHANNEL_DC:
- pInfo->channelIndex = 2;
- pInfo->channels = 2;
- break;
- case MASK_CHANNEL_MN:
- pInfo->channelIndex = 3;;
- pInfo->channels = 1;
- break;
- default:
- return false;
+ switch (result) {
+ case MASK_CHANNEL_ST:
+ pInfo->channelIndex = 0;
+ pInfo->channels = 2;
+ break;
+ case MASK_CHANNEL_JS:
+ pInfo->channelIndex = 1;
+ pInfo->channels = 2;
+ break;
+ case MASK_CHANNEL_DC:
+ pInfo->channelIndex = 2;
+ pInfo->channels = 2;
+ break;
+ case MASK_CHANNEL_MN:
+ pInfo->channelIndex = 3;;
+ pInfo->channels = 1;
+ break;
+ default:
+ return false;
}
- // 6. padding
+ /* 6. padding */
result = header[2] & MASK_PADDING;
- if ( result == MASK_PADDING )
+ if (result == MASK_PADDING)
pInfo->bPadding = true;
else
pInfo->bPadding = false;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("=> samplerate=%d, bitrate=%d, layer=%d, version=%d, channel=%d, padding=%d",
- pInfo->sampleRate, pInfo->bitRate, pInfo->layer, pInfo->mpegVersion, pInfo->channels, pInfo->bPadding );
- #endif
-
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("=> samplerate=%d, bitrate=%d, layer=%d, version=%d, channel=%d, padding=%d",
+ pInfo->sampleRate, pInfo->bitRate, pInfo->layer, pInfo->mpegVersion, pInfo->channels, pInfo->bPadding);
+#endif
+
return true;
}
static bool
-__AvParseXingHeader( AvFileContentInfo* pInfo, unsigned char* buf )
+__AvParseXingHeader(AvFileContentInfo *pInfo, unsigned char *buf)
{
AvXHeadData data;
- memset( &data, 0x00, sizeof(AvXHeadData) );
+ memset(&data, 0x00, sizeof(AvXHeadData));
- // 1. Xing Header
+ /* 1. Xing Header */
/* There could be 2 attrs in this header : Xing or Info */
- if((pInfo->mpegVersion == AV_MPEG_VER_1) && (pInfo->channels == 2))
- {
- if (buf[36] =='X') {
- if( buf[37] != 'i' ) return false;
- if( buf[38] != 'n' ) return false;
- if( buf[39] != 'g' ) return false;
+ if ((pInfo->mpegVersion == AV_MPEG_VER_1) && (pInfo->channels == 2)) {
+ if (buf[36] == 'X') {
+ if (buf[37] != 'i') return false;
+ if (buf[38] != 'n') return false;
+ if (buf[39] != 'g') return false;
} else if (buf[36] == 'I') {
- if( buf[37] != 'n' ) return false;
- if( buf[38] != 'f' ) return false;
- if( buf[39] != 'o' ) return false;
+ if (buf[37] != 'n') return false;
+ if (buf[38] != 'f') return false;
+ if (buf[39] != 'o') return false;
} else {
return false;
}
- }
- else
- if((pInfo->mpegVersion == AV_MPEG_VER_2 || pInfo->mpegVersion == AV_MPEG_VER_25) && (pInfo->channels == 1))
- {
- if (buf[13] =='X') {
- if( buf[14] != 'i' ) return false;
- if( buf[15] != 'n' ) return false;
- if( buf[16] != 'g' ) return false;
+ } else if ((pInfo->mpegVersion == AV_MPEG_VER_2 || pInfo->mpegVersion == AV_MPEG_VER_25) && (pInfo->channels == 1)) {
+ if (buf[13] == 'X') {
+ if (buf[14] != 'i') return false;
+ if (buf[15] != 'n') return false;
+ if (buf[16] != 'g') return false;
} else if (buf[13] == 'I') {
- if( buf[14] != 'n' ) return false;
- if( buf[15] != 'f' ) return false;
- if( buf[16] != 'o' ) return false;
+ if (buf[14] != 'n') return false;
+ if (buf[15] != 'f') return false;
+ if (buf[16] != 'o') return false;
} else {
return false;
}
- }
- else
- {
- if (buf[21] =='X') {
- if( buf[22] != 'i' ) return false;
- if( buf[23] != 'n' ) return false;
- if( buf[24] != 'g' ) return false;
+ } else {
+ if (buf[21] == 'X') {
+ if (buf[22] != 'i') return false;
+ if (buf[23] != 'n') return false;
+ if (buf[24] != 'g') return false;
} else if (buf[21] == 'I') {
- if( buf[22] != 'n' ) return false;
- if( buf[23] != 'f' ) return false;
- if( buf[24] != 'o' ) return false;
+ if (buf[22] != 'n') return false;
+ if (buf[23] != 'f') return false;
+ if (buf[24] != 'o') return false;
} else {
return false;
}
}
- // 2. TOC
- if ( pInfo->pToc )
+ /* 2. TOC */
+ if (pInfo->pToc)
data.toc = (unsigned char *)(pInfo->pToc);
- if ( __AvGetXingHeader( &data, (unsigned char *)buf ) == 1 ) // VBR.
- {
+ if (__AvGetXingHeader(&data, (unsigned char *)buf) == 1) { /* VBR. */
if (data.sampRate == 0 || data.bytes == 0 || data.frames == 0) {
- debug_error ("invalid Xing header\n");
+ debug_error("invalid Xing header\n");
return false;
}
pInfo->datafileLen = data.bytes;
pInfo->frameNum = data.frames;
- pInfo->frameSize = (int) ( (float) data.bytes / (float) data.frames ) ;
+ pInfo->frameSize = (int)((float) data.bytes / (float) data.frames) ;
pInfo->bVbr = true;
return true;
- }
- else
+ } else
return false;
}
static bool
-__AvParseVBRIHeader( AvFileContentInfo* pInfo, unsigned char* buf )
+__AvParseVBRIHeader(AvFileContentInfo *pInfo, unsigned char *buf)
{
AvVBRIHeadData data;
- memset( &data, 0x00, sizeof(AvVBRIHeadData) );
-
- // 1. Xing Header
- if((pInfo->mpegVersion == AV_MPEG_VER_1) && (pInfo->channels == 2))
- {
- if( buf[36] != 'V' ) return false;
- if( buf[37] != 'B' ) return false;
- if( buf[38] != 'R' ) return false;
- if( buf[39] != 'I' ) return false;
- }
- else
- if((pInfo->mpegVersion == AV_MPEG_VER_2) && (pInfo->channels == 1))
- {
- if( buf[36] != 'V' ) return false;
- if( buf[37] != 'B' ) return false;
- if( buf[38] != 'R' ) return false;
- if( buf[39] != 'I' ) return false;
- }
- else
- {
- if( buf[36] != 'V' ) return false;
- if( buf[37] != 'B' ) return false;
- if( buf[38] != 'R' ) return false;
- if( buf[39] != 'I' ) return false;
+ memset(&data, 0x00, sizeof(AvVBRIHeadData));
+
+ /* 1. Xing Header */
+ if ((pInfo->mpegVersion == AV_MPEG_VER_1) && (pInfo->channels == 2)) {
+ if (buf[36] != 'V') return false;
+ if (buf[37] != 'B') return false;
+ if (buf[38] != 'R') return false;
+ if (buf[39] != 'I') return false;
+ } else if ((pInfo->mpegVersion == AV_MPEG_VER_2) && (pInfo->channels == 1)) {
+ if (buf[36] != 'V') return false;
+ if (buf[37] != 'B') return false;
+ if (buf[38] != 'R') return false;
+ if (buf[39] != 'I') return false;
+ } else {
+ if (buf[36] != 'V') return false;
+ if (buf[37] != 'B') return false;
+ if (buf[38] != 'R') return false;
+ if (buf[39] != 'I') return false;
}
- // 2. TOC
- if ( pInfo->pToc )
- data.toc = (unsigned char*)(pInfo->pToc);
+ /* 2. TOC */
+ if (pInfo->pToc)
+ data.toc = (unsigned char *)(pInfo->pToc);
- if ( __AvGetVBRIHeader( &data, (unsigned char*)buf ) == 1 ) // VBR.
- {
+ if (__AvGetVBRIHeader(&data, (unsigned char *)buf) == 1) { /* VBR. */
if (data.sampRate == 0 || data.bytes == 0 || data.frames == 0) {
- debug_error ("invalid Vbri header\n");
+ debug_error("invalid Vbri header\n");
return false;
}
pInfo->sampleRate = data.sampRate;
pInfo->datafileLen = data.bytes;
pInfo->frameNum = data.frames;
- pInfo->frameSize = (int) ( (float) data.bytes / (float) data.frames ) ;
+ pInfo->frameSize = (int)((float) data.bytes / (float) data.frames) ;
pInfo->bVbr = true;
return true;
- }
- else
+ } else
return false;
}
-#ifdef __MMFILE_NEW_FRAME_FUNC // from gst
+#ifdef __MMFILE_NEW_FRAME_FUNC /* from gst */
static bool
-__AvGetMp3FrameSize( AvFileContentInfo* pInfo )
+__AvGetMp3FrameSize(AvFileContentInfo *pInfo)
{
unsigned int frameSize = 0;
- if ( pInfo == NULL )
+ if (pInfo == NULL)
return false;
frameSize = pInfo->bPadding;
- if (pInfo->bitRate == 0) {
- if (pInfo->layer == 1) {
- frameSize *= 4;
- frameSize += 0/* FIXME: possible_free_framelen*/;
- pInfo->bitRate = frameSize * pInfo->sampleRate / 48000;
- } else {
- frameSize += 0/* FIXME: possible_free_framelen*/;
- pInfo->bitRate = frameSize * pInfo->sampleRate /
- ((pInfo->layer == AV_MP3_LAYER_3 && pInfo->mpegVersion != AV_MPEG_VER_1) ? 72000 : 144000);
- }
- } else {
- /* calculating */
- if (pInfo->layer == 1) {
- frameSize = ((12000 * pInfo->bitRate / pInfo->sampleRate) + frameSize) * 4;
- } else {
- frameSize += ((pInfo->layer == AV_MP3_LAYER_3
- && pInfo->mpegVersion != AV_MPEG_VER_1) ? 72000 : 144000) * pInfo->bitRate / pInfo->sampleRate;
- }
- }
+ if (pInfo->bitRate == 0) {
+ if (pInfo->layer == 1) {
+ frameSize *= 4;
+ frameSize += 0/* FIXME: possible_free_framelen*/;
+ pInfo->bitRate = frameSize * pInfo->sampleRate / 48000;
+ } else {
+ frameSize += 0/* FIXME: possible_free_framelen*/;
+ pInfo->bitRate = frameSize * pInfo->sampleRate /
+ ((pInfo->layer == AV_MP3_LAYER_3 && pInfo->mpegVersion != AV_MPEG_VER_1) ? 72000 : 144000);
+ }
+ } else {
+ /* calculating */
+ if (pInfo->layer == 1) {
+ frameSize = ((12000 * pInfo->bitRate / pInfo->sampleRate) + frameSize) * 4;
+ } else {
+ frameSize += ((pInfo->layer == AV_MP3_LAYER_3
+ && pInfo->mpegVersion != AV_MPEG_VER_1) ? 72000 : 144000) * pInfo->bitRate / pInfo->sampleRate;
+ }
+ }
pInfo->frameSize = (int)frameSize;
@@ -754,36 +713,33 @@ __AvGetMp3FrameSize( AvFileContentInfo* pInfo )
#endif
-static bool
-__AvGetXingBitrate( AvFileContentInfo* pInfo )
+static bool
+__AvGetXingBitrate(AvFileContentInfo *pInfo)
{
float br, factor;
int padding;
- if ( pInfo == NULL || pInfo->bVbr == false )
+ if (pInfo == NULL || pInfo->bVbr == false)
return false;
- if ( pInfo->bPadding )
+ if (pInfo->bPadding)
padding = 1;
else
padding = 0;
- if (pInfo->mpegVersion == AV_MPEG_VER_1 ) // MPEG version 1
- {
- if (pInfo->layer == AV_MP3_LAYER_1 ) // Layer 1
+ if (pInfo->mpegVersion == AV_MPEG_VER_1) { /* MPEG version 1 */
+ if (pInfo->layer == AV_MP3_LAYER_1) /* Layer 1 */
factor = 48000.0;
- else // Layer 2, 3
+ else /* Layer 2, 3 */
factor = 144000.0;
- }
- else // MPEG version 2
- {
- if (pInfo->layer == AV_MP3_LAYER_1 ) // Layer 1
+ } else { /* MPEG version 2 */
+ if (pInfo->layer == AV_MP3_LAYER_1) /* Layer 1 */
factor = 24000.0;
- else // Layer 2, 3
+ else /* Layer 2, 3 */
factor = 72000.0;
}
- br = ( pInfo->frameSize - padding ) * pInfo->sampleRate / factor;
+ br = (pInfo->frameSize - padding) * pInfo->sampleRate / factor;
pInfo->bitRate = (int) br;
@@ -791,47 +747,44 @@ __AvGetXingBitrate( AvFileContentInfo* pInfo )
}
static bool
-__AvGetVBRIBitrate( AvFileContentInfo* pInfo )
+__AvGetVBRIBitrate(AvFileContentInfo *pInfo)
{
float br, factor;
int padding;
- if ( pInfo == NULL || pInfo->bVbr == false )
+ if (pInfo == NULL || pInfo->bVbr == false)
return false;
- if ( pInfo->bPadding )
+ if (pInfo->bPadding)
padding = 1;
else
padding = 0;
- if (pInfo->mpegVersion == AV_MPEG_VER_1 ) // MPEG version 1
- {
- if (pInfo->layer == AV_MP3_LAYER_1 ) // Layer 1
+ if (pInfo->mpegVersion == AV_MPEG_VER_1) { /* MPEG version 1 */
+ if (pInfo->layer == AV_MP3_LAYER_1) /* Layer 1 */
factor = 48000.0;
- else // Layer 2, 3
+ else /* Layer 2, 3 */
factor = 144000.0;
- }
- else // MPEG version 2
- {
- if (pInfo->layer == AV_MP3_LAYER_1 ) // Layer 1
+ } else { /* MPEG version 2 */
+ if (pInfo->layer == AV_MP3_LAYER_1) /* Layer 1 */
factor = 24000.0;
- else // Layer 2, 3
+ else /* Layer 2, 3 */
factor = 72000.0;
}
- br = ( pInfo->frameSize - padding ) * pInfo->sampleRate / factor;
+ br = (pInfo->frameSize - padding) * pInfo->sampleRate / factor;
pInfo->bitRate = (int) br;
return true;
}
-static int __AvGetLastID3offset (MMFileIOHandle *fp, unsigned int *offset)
+static int __AvGetLastID3offset(MMFileIOHandle *fp, unsigned int *offset)
{
#define _MMFILE_MP3_TAGV2_HEADER_LEN 10
-#define _MMFILE_GET_INT_NUMBER(buff) (int)( (((int)(buff)[0]) << 24) | (((int)(buff)[1]) << 16) | (((int)(buff)[2]) << 8) | (((int)(buff)[3])))
+#define _MMFILE_GET_INT_NUMBER(buff) (int)((((int)(buff)[0]) << 24) | (((int)(buff)[1]) << 16) | (((int)(buff)[2]) << 8) | (((int)(buff)[3])))
- unsigned char tagHeader[_MMFILE_MP3_TAGV2_HEADER_LEN] = {0,};
+ unsigned char tagHeader[_MMFILE_MP3_TAGV2_HEADER_LEN] = {0, };
unsigned int tagInfoSize = 0;
unsigned int acc_tagsize = 0;
int tagVersion = 0;
@@ -842,44 +795,44 @@ static int __AvGetLastID3offset (MMFileIOHandle *fp, unsigned int *offset)
*offset = 0;
mmfile_seek(fp, 0, MMFILE_SEEK_SET);
-
+
_START_TAG_SEARCH:
- readed = mmfile_read (fp, tagHeader, _MMFILE_MP3_TAGV2_HEADER_LEN);
+ readed = mmfile_read(fp, tagHeader, _MMFILE_MP3_TAGV2_HEADER_LEN);
if (readed != _MMFILE_MP3_TAGV2_HEADER_LEN) {
- debug_error ("read error occured.\n");
+ debug_error("read error occured.\n");
return 0;
}
- if (memcmp (tagHeader, "ID3", 3) == 0) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("'ID3' found.\n");
- #endif
+ if (memcmp(tagHeader, "ID3", 3) == 0) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("'ID3' found.\n");
+#endif
} else {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("'ID3' not found.\n");
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("'ID3' not found.\n");
+#endif
goto search_end;
}
/**@note weak id3v2 tag checking*/
if (tagHeader[3] != 0xFF && tagHeader[4] != 0xFF &&
- (tagHeader[6] & 0x80) == 0 && (tagHeader[7] & 0x80) == 0 &&
- (tagHeader[8] & 0x80) == 0 && (tagHeader[9] & 0x80) == 0) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("good ID3V2 tag.\n");
- #endif
+ (tagHeader[6] & 0x80) == 0 && (tagHeader[7] & 0x80) == 0 &&
+ (tagHeader[8] & 0x80) == 0 && (tagHeader[9] & 0x80) == 0) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("good ID3V2 tag.\n");
+#endif
} else {
- debug_warning ("It's bad ID3V2 tag.\n");
+ debug_warning("It's bad ID3V2 tag.\n");
goto search_end;
}
tagVersion = tagHeader[3];
if (tagVersion > 4) {
- #ifdef __MMFILE_TEST_MODE__
+#ifdef __MMFILE_TEST_MODE__
debug_msg("Tag version not supported\n");
- #endif
+#endif
goto search_end;
}
@@ -889,9 +842,9 @@ _START_TAG_SEARCH:
/**@note unfortunately, some contents has many id3 tag.*/
acc_tagsize += tagInfoSize;
- #ifdef __MMFILE_TEST_MODE__
+#ifdef __MMFILE_TEST_MODE__
debug_msg("tag size: %u, offset: %u\n", tagInfoSize, acc_tagsize);
- #endif
+#endif
mmfile_seek(fp, acc_tagsize, MMFILE_SEEK_SET);
*offset = acc_tagsize;
@@ -909,9 +862,9 @@ search_end:
* This function returns the start position of header.
*/
static int
-__AvFindStartOfMp3Header(MMFileIOHandle *hFile, unsigned char *buf, AvFileContentInfo* pInfo)
+__AvFindStartOfMp3Header(MMFileIOHandle *hFile, unsigned char *buf, AvFileContentInfo *pInfo)
{
- int index=0;
+ unsigned int index = 0;
long readLen;
unsigned long id3v2TagLen = 0;
unsigned char *pHeader = NULL;
@@ -923,77 +876,64 @@ __AvFindStartOfMp3Header(MMFileIOHandle *hFile, unsigned char *buf, AvFileConte
bool bFoundSync = false;
unsigned long minLen;
-
- if(pInfo->fileLen > (_AV_MP3_HEADER_POSITION_MAX+ pInfo->tagV2Info.tagLen))
+
+ if (pInfo->fileLen > (_AV_MP3_HEADER_POSITION_MAX + pInfo->tagV2Info.tagLen))
bufLen = _AV_MP3_HEADER_POSITION_MAX;
else
- bufLen = pInfo ->fileLen - pInfo->tagV2Info.tagLen;
+ bufLen = pInfo->fileLen - pInfo->tagV2Info.tagLen;
- if(IS_ID3V2_TAG(buf))
- {
-
+ if (IS_ID3V2_TAG(buf)) {
- if(pInfo->tagV2Info.tagVersion == 0x02)
- {
-
- if(!mm_file_id3tag_parse_v222(pInfo, buf))
+
+ if (pInfo->tagV2Info.tagVersion == 0x02) {
+
+ if (!mm_file_id3tag_parse_v222(pInfo, buf))
pInfo->tagV2Info.tagLen = 0;
- }
- else if (pInfo->tagV2Info.tagVersion == 0x03)
- {
-
- if(!mm_file_id3tag_parse_v223(pInfo, buf))
+ } else if (pInfo->tagV2Info.tagVersion == 0x03) {
+
+ if (!mm_file_id3tag_parse_v223(pInfo, buf))
pInfo->tagV2Info.tagLen = 0;
- }
- else if (pInfo->tagV2Info.tagVersion == 0x04)
- {
-
- if(!mm_file_id3tag_parse_v224(pInfo, buf)) // currently 2.4 ver pased by 2.3 routine
+ } else if (pInfo->tagV2Info.tagVersion == 0x04) {
+
+ if (!mm_file_id3tag_parse_v224(pInfo, buf)) /* currently 2.4 ver pased by 2.3 routine */
pInfo->tagV2Info.tagLen = 0;
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->tagV2Info.tagVersion(%d)\n", pInfo->tagV2Info.tagVersion);
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->tagV2Info.tagVersion(%d)\n", pInfo->tagV2Info.tagVersion);
+#endif
}
id3v2TagLen = pInfo->tagV2Info.tagLen;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "id3v2TagLen(%d)\n", id3v2TagLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("id3v2TagLen(%d)\n", id3v2TagLen);
+#endif
- if(id3v2TagLen)
- {
- if (mmfile_seek (hFile, id3v2TagLen, SEEK_SET) < 0) {
- debug_error ( "seek failed.\n");
+ if (id3v2TagLen) {
+ if (mmfile_seek(hFile, id3v2TagLen, SEEK_SET) < 0) {
+ debug_error("seek failed.\n");
return -1;
}
- if ((readLen = mmfile_read (hFile, buf, bufLen)) <= 0) {
- debug_error ( "seek failed.\n");
+ if ((readLen = mmfile_read(hFile, buf, bufLen)) <= 0) {
+ debug_error("seek failed.\n");
return -1;
}
}
- while(1)
- {
- if (preHeaderGap == bufLen -2)
+ while (1) {
+ if (preHeaderGap == bufLen - 2)
break;
- if(__AvIsValidHeader(pInfo, buf+preHeaderGap))
+ if (__AvIsValidHeader(pInfo, buf + preHeaderGap))
break;
preHeaderGap++;
}
-
- }
- else
- {
- while(1)
- {
- if (preHeaderGap == bufLen -2)
+
+ } else {
+ while (1) {
+ if (preHeaderGap == bufLen - 2)
+ break;
+ if (__AvIsValidHeader(pInfo, buf + preHeaderGap))
break;
- if(__AvIsValidHeader(pInfo, buf+preHeaderGap))
- break;
preHeaderGap++;
}
@@ -1002,158 +942,126 @@ __AvFindStartOfMp3Header(MMFileIOHandle *hFile, unsigned char *buf, AvFileConte
buf += preHeaderGap;
index += preHeaderGap;
- while (index <= (bufLen - minLen))
- {
- if(buf[0] == 0xff)
- {
- if(VALID_SYNC(buf))
- {
- if(bufLen - index > 256)
- {
- pHeader = mmfile_malloc (256);
- if (pHeader == NULL)
- {
- debug_error ( "malloc failed.\n");
+ while (index <= (bufLen - minLen)) {
+ if (buf[0] == 0xff) {
+ if (VALID_SYNC(buf)) {
+ if (bufLen - index > 256) {
+ pHeader = mmfile_malloc(256);
+ if (pHeader == NULL) {
+ debug_error("malloc failed.\n");
return -1;
}
strncpy((char *)pHeader, (char *)buf, 256);
- }
- else
- {
- debug_error ( "Header field is not exist\n");
+ } else {
+ debug_error("Header field is not exist\n");
return -1;
}
- if ( __AvParseMp3Header( pInfo, pHeader ) == false)
- {
- //return -1;
- if(pHeader)
+ if (__AvParseMp3Header(pInfo, pHeader) == false) {
+ /*return -1; */
+ if (pHeader)
_FREE_EX(pHeader);
- debug_warning ( "Mp3 parse header failed & index(%d)\n", index);
+ debug_warning("Mp3 parse header failed & index(%d)\n", index);
buf++;
index++;
continue;
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "This header is valid. index(%d)\n", index);
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("This header is valid. index(%d)\n", index);
+#endif
}
- if ( __AvParseXingHeader( pInfo, pHeader ) )
- {
- __AvGetXingBitrate( pInfo );
+ if (__AvParseXingHeader(pInfo, pHeader)) {
+ __AvGetXingBitrate(pInfo);
+ } else if (__AvParseVBRIHeader(pInfo, pHeader)) {
+ __AvGetVBRIBitrate(pInfo);
}
- else if(__AvParseVBRIHeader( pInfo, pHeader ))
- {
- __AvGetVBRIBitrate( pInfo );
- }
-
- if (pInfo->bVbr)
- {
- if(pHeader)
+
+ if (pInfo->bVbr) {
+ if (pHeader)
_FREE_EX(pHeader);
bFoundSync = true;
break;
- }
- else
- {
- if(__AvIsValidHeader(pInfo, pHeader))
- {
- if(pHeader)
+ } else {
+ if (__AvIsValidHeader(pInfo, pHeader)) {
+ if (pHeader)
_FREE_EX(pHeader);
-
- __AvGetMp3FrameSize( pInfo );
+
+ __AvGetMp3FrameSize(pInfo);
pInfo->datafileLen = pInfo->fileLen - pInfo->headerPos;
frameLen = pInfo->frameSize;
- if (frameLen)
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("<<< frameLen=[%d] >>> \n", frameLen);
- #endif
+ if (frameLen) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("<<< frameLen=[%d] >>> \n", frameLen);
+#endif
- #ifndef __MMFILE_NEW_FRAME_FUNC // FIXME : what purpose to do this?
+#ifndef __MMFILE_NEW_FRAME_FUNC /* FIXME : what purpose to do this? */
/* Account for loss of precision in the frame length calculation*/
frameLen--;
- #endif
+#endif
/* Check if the remaining buffer size is large enough to
* look for another sync */
- if ((index + frameLen) < (bufLen - (minLen - 1)))
- {
+ if ((index + frameLen) < (bufLen - (minLen - 1))) {
nextFrameOff = frameLen;
- nextFrameOffEnd = nextFrameOff +MIN(6, bufLen - (index+frameLen) - (minLen - 1));
+ nextFrameOffEnd = nextFrameOff + MIN(6, bufLen - (index + frameLen) - (minLen - 1));
/* Search the next few bytes for the next sync */
- while (nextFrameOff < nextFrameOffEnd)
- {
- if (VALID_SYNC(buf+nextFrameOff))
- {
- if(IS_VALID_FRAME_MP3(buf+nextFrameOff))
- {
+ while (nextFrameOff < nextFrameOffEnd) {
+ if (VALID_SYNC(buf + nextFrameOff)) {
+ if (IS_VALID_FRAME_MP3(buf + nextFrameOff)) {
bFoundSync = true;
break;
}
}
nextFrameOff++;
}
- if (bFoundSync == true)
+ if (bFoundSync == true)
break;
- }
- else
- {
+ } else {
/* Assume that the first sync is valid, since there is not
* enough data in the buffer to look for the next sync */
bFoundSync = true;
- break;
+ break;
}
}
- }
- else
- {
- debug_warning ( "Is not vaild header pHeader\n");
+ } else {
+ debug_warning("Is not vaild header pHeader\n");
}
}
- if(pHeader)
+ if (pHeader)
_FREE_EX(pHeader);
- }
- else
- {
- debug_warning ( "Mp3 file frist byte is 0xff, but not header sync\n");
+ } else {
+ debug_warning("Mp3 file frist byte is 0xff, but not header sync\n");
}
}
buf++;
index++;
}
- _FREE_EX (pHeader);
+ _FREE_EX(pHeader);
if (mmfile_seek(hFile, 0, SEEK_SET) < 0) {
- debug_error ( "seek error!\n");
+ debug_error("seek error!\n");
return -1;
}
- if(index > (bufLen - minLen))
- {
- debug_warning ( "Mp3 file sync is not found : index(%d) bufLen(%d), minLen(%d)\n", index, bufLen, minLen);
+ if (index > (bufLen - minLen)) {
+ debug_warning("Mp3 file sync is not found : index(%d) bufLen(%d), minLen(%d)\n", index, bufLen, minLen);
return -1;
}
-
- if(bFoundSync == true)
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Mp3 file found a sync Success!\n");
- #endif
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Mp3 file found a sync Failed!\n");
- #endif
+
+ if (bFoundSync == true) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Mp3 file found a sync Success!\n");
+#endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Mp3 file found a sync Failed!\n");
+#endif
return -1;
}
- return index+id3v2TagLen;
+ return index + id3v2TagLen;
}
/*
@@ -1162,16 +1070,16 @@ __AvFindStartOfMp3Header(MMFileIOHandle *hFile, unsigned char *buf, AvFileConte
* Param _frame [out] Specifies a struct pointer for mp3 information.
* This function returns true on success, or false on failure.
*/
-static int mmf_file_mp3_get_infomation (char *filename, AvFileContentInfo* pInfo )
+static int mmf_file_mp3_get_infomation(char *filename, AvFileContentInfo *pInfo)
{
MMFileIOHandle *hFile;
unsigned char header[256];
- unsigned long frameSamples=0;
- unsigned char *buf = NULL;
- unsigned char* v2TagExistCheck = NULL;
+ unsigned long frameSamples = 0;
+ unsigned char *buf = NULL;
+ unsigned char *v2TagExistCheck = NULL;
int readAmount = 0, readedDataLen = 0;
unsigned char TagBuff[MP3TAGINFO_SIZE + TAGV1_SEEK_GAP];
- unsigned char TagV1ID[4] = { 0x54, 0x41, 0x47}; //TAG
+ unsigned char TagV1ID[4] = { 0x54, 0x41, 0x47}; /*TAG */
int tagHeaderPos = 0;
int ret = 0;
unsigned int head_offset = 0;
@@ -1179,180 +1087,151 @@ static int mmf_file_mp3_get_infomation (char *filename, AvFileContentInfo* pInfo
#ifdef __MMFILE_TEST_MODE__
debug_fenter();
#endif
-
+
if (pInfo == NULL || filename == NULL)
return -1;
- memset( pInfo, 0x00, sizeof(AvFileContentInfo) );
+ memset(pInfo, 0x00, sizeof(AvFileContentInfo));
pInfo->tagV2Info.tagLen = 0;
pInfo->headerPos = 0;
pInfo->genre = 148;
/*open*/
- ret = mmfile_open (&hFile, filename, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL)
- {
- debug_error ( "open failed.\n");
+ ret = mmfile_open(&hFile, filename, MMFILE_RDONLY);
+ if (ret == MMFILE_UTIL_FAIL) {
+ debug_error("open failed.\n");
return -1;
}
- mmfile_seek (hFile, 0L, SEEK_END);
- pInfo->fileLen = mmfile_tell (hFile);
- if (pInfo->fileLen <= 0)
- {
- debug_error ( "file is too small.\n");
+ mmfile_seek(hFile, 0L, SEEK_END);
+ pInfo->fileLen = mmfile_tell(hFile);
+ if (pInfo->fileLen <= 0) {
+ debug_error("file is too small.\n");
goto EXCEPTION;
}
- mmfile_seek (hFile, 0L, SEEK_SET);
+ mmfile_seek(hFile, 0L, SEEK_SET);
- v2TagExistCheck = mmfile_malloc (MP3_TAGv2_HEADER_LEN);
+ v2TagExistCheck = mmfile_malloc(MP3_TAGv2_HEADER_LEN);
if (v2TagExistCheck == NULL) {
- debug_error ( "malloc failed.\n");
+ debug_error("malloc failed.\n");
goto EXCEPTION;
}
- if (mmfile_read (hFile, v2TagExistCheck, MP3_TAGv2_HEADER_LEN) > 0)
- {
- if(IS_ID3V2_TAG(v2TagExistCheck))
- {
- if(!(v2TagExistCheck[3] == 0xFF || v2TagExistCheck[4] == 0xFF ||v2TagExistCheck[6] >= 0x80 || v2TagExistCheck[7] >= 0x80 || v2TagExistCheck[8] >= 0x80 || v2TagExistCheck[9] >= 0x80))
- {
- if(!(v2TagExistCheck[3] > 0x04))
- {
+ if (mmfile_read(hFile, v2TagExistCheck, MP3_TAGv2_HEADER_LEN) > 0) {
+ if (IS_ID3V2_TAG(v2TagExistCheck)) {
+ if (!(v2TagExistCheck[3] == 0xFF || v2TagExistCheck[4] == 0xFF || v2TagExistCheck[6] >= 0x80 || v2TagExistCheck[7] >= 0x80 || v2TagExistCheck[8] >= 0x80 || v2TagExistCheck[9] >= 0x80)) {
+ if (!(v2TagExistCheck[3] > 0x04)) {
pInfo->tagV2Info.tagVersion = v2TagExistCheck[3];
pInfo->tagV2Info.tagLen = MP3_TAGv2_HEADER_LEN;
- pInfo->tagV2Info.tagLen += (unsigned long)v2TagExistCheck[6] << 21 | (unsigned long)v2TagExistCheck[7] << 14 |(unsigned long)v2TagExistCheck[8] << 7 | (unsigned long)v2TagExistCheck[9];
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->tagV2Info.tagLen(%d), pInfo->tagV2Info.tagVersion(%d)\n", pInfo->tagV2Info.tagLen, pInfo->tagV2Info.tagVersion);
- #endif
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "tag is a not supported version(%d)\n", v2TagExistCheck[3]);
- #endif
+ pInfo->tagV2Info.tagLen += (unsigned long)v2TagExistCheck[6] << 21 | (unsigned long)v2TagExistCheck[7] << 14 | (unsigned long)v2TagExistCheck[8] << 7 | (unsigned long)v2TagExistCheck[9];
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->tagV2Info.tagLen(%d), pInfo->tagV2Info.tagVersion(%d)\n", pInfo->tagV2Info.tagLen, pInfo->tagV2Info.tagVersion);
+#endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("tag is a not supported version(%d)\n", v2TagExistCheck[3]);
+#endif
}
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("tag is a tag data is valid.\n");
+#endif
}
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "tag is a tag data is valid.\n");
- #endif
- }
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "this mp3 file is not included ID3v2 tag info!\n");
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("this mp3 file is not included ID3v2 tag info!\n");
+#endif
}
- }
- else
- {
- debug_error ( "v2TagExistCheck value read fail!\n");
- if(v2TagExistCheck)
+ } else {
+ debug_error("v2TagExistCheck value read fail!\n");
+ if (v2TagExistCheck)
_FREE_EX(v2TagExistCheck);
goto EXCEPTION;
}
- if(v2TagExistCheck)
+ if (v2TagExistCheck)
_FREE_EX(v2TagExistCheck);
- if(!(pInfo->fileLen > pInfo->tagV2Info.tagLen ))
+ if (!(pInfo->fileLen > pInfo->tagV2Info.tagLen))
pInfo->tagV2Info.tagLen = 0;
if (mmfile_seek(hFile, 0L, SEEK_SET) < 0)
goto EXCEPTION;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->fileLen(%lld)\n", pInfo->fileLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->fileLen(%lld)\n", pInfo->fileLen);
+#endif
- if(pInfo->fileLen > (_AV_MP3_HEADER_POSITION_MAX + pInfo->tagV2Info.tagLen))
- {
+ if (pInfo->fileLen > (_AV_MP3_HEADER_POSITION_MAX + pInfo->tagV2Info.tagLen)) {
readAmount = _AV_MP3_HEADER_POSITION_MAX + pInfo->tagV2Info.tagLen;
- buf = mmfile_malloc (readAmount);
+ buf = mmfile_malloc(readAmount);
if (buf == NULL) {
- debug_error ( "malloc failed.\n");
+ debug_error("malloc failed.\n");
goto EXCEPTION;
}
- while(readAmount > 0)
- {
- if(readAmount >= AV_MP3_HEADER_READ_MAX)
- {
+ while (readAmount > 0) {
+ if (readAmount >= AV_MP3_HEADER_READ_MAX) {
if ((readedDataLen <= _AV_MP3_HEADER_POSITION_MAX + pInfo->tagV2Info.tagLen)
- &&(mmfile_read(hFile, buf+readedDataLen, AV_MP3_HEADER_READ_MAX) <= 0))
- {
- if(buf)
+ && (mmfile_read(hFile, buf + readedDataLen, AV_MP3_HEADER_READ_MAX) <= 0)) {
+ if (buf)
_FREE_EX(buf);
-
+
goto EXCEPTION;
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Reading buf readedDataLen(%d) readAmount (%d)\n", readedDataLen, readAmount);
+#endif
}
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Reading buf readedDataLen(%d) readAmount (%d)\n", readedDataLen,readAmount);
- #endif
- }
- }
- else
- {
+ } else {
if ((readedDataLen <= _AV_MP3_HEADER_POSITION_MAX + pInfo->tagV2Info.tagLen)
- &&(mmfile_read(hFile, buf+readedDataLen, readAmount) <= 0))
- {
- if(buf)
+ && (mmfile_read(hFile, buf + readedDataLen, readAmount) <= 0)) {
+ if (buf)
_FREE_EX(buf);
-
+
goto EXCEPTION;
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "The remained buf readed! readedDataLen(%d) readAmount (%d)\n", readedDataLen,readAmount);
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("The remained buf readed! readedDataLen(%d) readAmount (%d)\n", readedDataLen, readAmount);
+#endif
}
}
readAmount -= AV_MP3_HEADER_READ_MAX;
readedDataLen += AV_MP3_HEADER_READ_MAX;
-
- if(readAmount <= 0)
+
+ if (readAmount <= 0)
break;
}
- }
- else
- {
- buf = mmfile_malloc (pInfo->fileLen);
- if (buf == NULL)
- {
- goto EXCEPTION;
+ } else {
+ buf = mmfile_malloc(pInfo->fileLen);
+ if (buf == NULL) {
+ goto EXCEPTION;
}
- if (mmfile_read(hFile, buf, pInfo->fileLen) <= 0)
- {
- if(buf)
+ if (mmfile_read(hFile, buf, pInfo->fileLen) <= 0) {
+ if (buf)
_FREE_EX(buf);
goto EXCEPTION;
}
}
-
- if (__AvGetLastID3offset (hFile, &head_offset)) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "search start offset: %u\n", head_offset);
- #endif
+
+ if (__AvGetLastID3offset(hFile, &head_offset)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("search start offset: %u\n", head_offset);
+#endif
pInfo->tagV2Info.tagLen = head_offset;
}
-
+
pInfo->headerPos = (long) __AvFindStartOfMp3Header(hFile, buf, pInfo);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Header Pos: %ld\n", pInfo->headerPos);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Pos: %ld\n", pInfo->headerPos);
+#endif
- if(buf)
+ if (buf)
_FREE_EX(buf);
if (pInfo->headerPos == -1)
@@ -1361,105 +1240,92 @@ static int mmf_file_mp3_get_infomation (char *filename, AvFileContentInfo* pInfo
if (mmfile_seek(hFile, pInfo->headerPos, SEEK_SET) < 0)
goto EXCEPTION;
- if (mmfile_read (hFile, header, 256) <= 0)
+ if (mmfile_read(hFile, header, 256) <= 0)
goto EXCEPTION;
- if ( __AvParseMp3Header( pInfo, header ) == false)
+ if (__AvParseMp3Header(pInfo, header) == false)
goto EXCEPTION;
- if ( __AvParseXingHeader( pInfo, header ) )
- {
- __AvGetXingBitrate( pInfo );
- }
- else if(__AvParseVBRIHeader( pInfo, header ))
- {
- __AvGetVBRIBitrate( pInfo );
- }
- else
- {
- __AvGetMp3FrameSize( pInfo );
+ if (__AvParseXingHeader(pInfo, header)) {
+ __AvGetXingBitrate(pInfo);
+ } else if (__AvParseVBRIHeader(pInfo, header)) {
+ __AvGetVBRIBitrate(pInfo);
+ } else {
+ __AvGetMp3FrameSize(pInfo);
pInfo->datafileLen = pInfo->fileLen - pInfo->headerPos;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Mp3 File FrameSize (%d) pInfo->headerPos(%d)\n", pInfo->frameSize,pInfo->headerPos);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Mp3 File FrameSize (%d) pInfo->headerPos(%d)\n", pInfo->frameSize, pInfo->headerPos);
+#endif
}
- if (mmfile_seek (hFile, -(MP3TAGINFO_SIZE + TAGV1_SEEK_GAP), SEEK_END) < 0)
+ if (mmfile_seek(hFile, -(MP3TAGINFO_SIZE + TAGV1_SEEK_GAP), SEEK_END) < 0)
goto EXCEPTION;
- pInfo ->bV1tagFound = false;
+ pInfo->bV1tagFound = false;
- if (mmfile_read (hFile, TagBuff, MP3TAGINFO_SIZE + TAGV1_SEEK_GAP) <= 0)
+ if (mmfile_read(hFile, TagBuff, MP3TAGINFO_SIZE + TAGV1_SEEK_GAP) <= 0)
goto EXCEPTION;
- if ((tagHeaderPos = __AvMemstr(TagBuff, TagV1ID, 3, TAGV1_SEEK_GAP+5)) >= 0)
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Mp3 File Tag is existing\n");
- #endif
-
- pInfo ->bV1tagFound = true;
- /* In this case, V2 Tag alreay exist So, ignore V1 tag */
- if (pInfo->tagV2Info.tagLen == 0) {
- memcpy(TagBuff, (TagBuff + tagHeaderPos), MP3TAGINFO_SIZE);
- if(!mm_file_id3tag_parse_v110(pInfo, TagBuff))
- goto EXCEPTION;
- }
+ if ((tagHeaderPos = __AvMemstr(TagBuff, TagV1ID, 3, TAGV1_SEEK_GAP + 5)) >= 0) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Mp3 File Tag is existing\n");
+#endif
+
+ pInfo->bV1tagFound = true;
+ /* In this case, V2 Tag alreay exist So, ignore V1 tag */
+ if (pInfo->tagV2Info.tagLen == 0) {
+ memcpy(TagBuff, (TagBuff + tagHeaderPos), MP3TAGINFO_SIZE);
+ if (!mm_file_id3tag_parse_v110(pInfo, TagBuff))
+ goto EXCEPTION;
}
+ }
- mm_file_id3tag_restore_content_info (pInfo);
+ mm_file_id3tag_restore_content_info(pInfo);
- if(pInfo->mpegVersion== 1)
- {
- if(pInfo->layer== 1)
+ if (pInfo->mpegVersion == 1) {
+ if (pInfo->layer == 1)
frameSamples = MPEG_1_SIZE_LAYER_1;
else
frameSamples = MPEG_1_SIZE_LAYER_2_3;
- }
- else
- {
- if(pInfo->layer == 1)
+ } else {
+ if (pInfo->layer == 1)
frameSamples = MPEG_2_SIZE_LAYER_1;
else
frameSamples = MPEG_2_SIZE_LAYER_2_3;
}
#if 0
- unsigned long numOfFrames=0;
+ unsigned long numOfFrames = 0;
unsigned long long tempduration = 0;
unsigned int tempNumFrames = 0;
- if(pInfo->bVbr)
- numOfFrames = pInfo->frameNum*10;
- else
- {
+ if (pInfo->bVbr)
+ numOfFrames = pInfo->frameNum * 10;
+ else {
numOfFrames = ((pInfo->fileLen
- -(pInfo->headerPos + (pInfo ->bV1tagFound ? MP3TAGINFO_SIZE : 0) ) )*10) / pInfo->frameSize;
- }
- tempNumFrames = (unsigned int)(numOfFrames/10);
+ - (pInfo->headerPos + (pInfo->bV1tagFound ? MP3TAGINFO_SIZE : 0))) * 10) / pInfo->frameSize;
+ }
+ tempNumFrames = (unsigned int)(numOfFrames / 10);
- if((numOfFrames - tempNumFrames * 10 ) > 5)
- numOfFrames = (numOfFrames/10) + 1;
+ if ((numOfFrames - tempNumFrames * 10) > 5)
+ numOfFrames = (numOfFrames / 10) + 1;
else
- numOfFrames = numOfFrames/10;
+ numOfFrames = numOfFrames / 10;
-
- tempduration = (unsigned long long)(numOfFrames *1000);
-
- if(pInfo->mpegVersion== 1)
- {
- if(pInfo->layer== 1)
+
+ tempduration = (unsigned long long)(numOfFrames * 1000);
+
+ if (pInfo->mpegVersion == 1) {
+ if (pInfo->layer == 1)
frameSamples = MPEG_1_SIZE_LAYER_1;
- else
+ else
frameSamples = MPEG_1_SIZE_LAYER_2_3;
- }
- else
- {
- if(pInfo->layer == 1)
+ } else {
+ if (pInfo->layer == 1)
frameSamples = MPEG_2_SIZE_LAYER_1;
- else
+ else
frameSamples = MPEG_2_SIZE_LAYER_2_3;
}
@@ -1467,71 +1333,69 @@ static int mmf_file_mp3_get_infomation (char *filename, AvFileContentInfo* pInfo
debug_msg("frameSamples : %d, tempduration : %ld", frameSamples, tempduration);
#endif
- if(tempduration < (unsigned long long)pInfo->sampleRate)
- {
- tempduration = (tempduration*frameSamples*10)/pInfo->sampleRate;
- tempduration = (tempduration/10);
- }
- else
- tempduration = (tempduration*frameSamples)/pInfo->sampleRate;
+ if (tempduration < (unsigned long long)pInfo->sampleRate) {
+ tempduration = (tempduration * frameSamples * 10) / pInfo->sampleRate;
+ tempduration = (tempduration / 10);
+ } else
+ tempduration = (tempduration * frameSamples) / pInfo->sampleRate;
pInfo->duration = tempduration;
#else
- if(pInfo->bVbr) {
- pInfo->duration = ((double)(frameSamples * 1000) / pInfo->sampleRate) * pInfo->frameNum;
+ if (pInfo->bVbr) {
+ pInfo->duration = ((double)(frameSamples * 1000) / pInfo->sampleRate) * pInfo->frameNum;
debug_msg("duration for VBR : %lld", pInfo->duration);
} else {
unsigned long long frame_duration = (((unsigned long long)frameSamples * 1000000000) / pInfo->sampleRate / 1000);
int file_size_except_header = pInfo->fileLen - (pInfo->headerPos + (pInfo->bV1tagFound ? MP3TAGINFO_SIZE : 0));
pInfo->duration = ((double)file_size_except_header / (double)pInfo->frameSize) * frame_duration / 1000;
- //pInfo->duration = ((double)file_size_except_header / (double)pInfo->frameSize) * (frameSamples * 1000 / pInfo->sampleRate);
+ /*pInfo->duration = ((double)file_size_except_header / (double)pInfo->frameSize) * (frameSamples * 1000 / pInfo->sampleRate); */
debug_msg("duration from new algorithm : %lld", pInfo->duration);
}
#endif
mmfile_close(hFile);
-
+
/*debug print*/
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Mp3 File pInfo->duration (%lld) \n", pInfo->duration);
- debug_msg ( "** MP3 **\n");
- debug_msg ( "Version : %u\n", pInfo->mpegVersion);
- debug_msg ( "Layer : %u\n", pInfo->layer);
- debug_msg ( "Channel idx: %u\n", pInfo->channelIndex);
- debug_msg ( "Is VBR : %d\n", (pInfo->bVbr == true ? 1 : 0));
- debug_msg ( "Bitrate : %u\n", pInfo->bitRate);
- debug_msg ( "SampleRate : %u\n", pInfo->sampleRate);
- debug_msg ( "Channels : %u\n", pInfo->channels);
- debug_msg ( "**** Info #1 ****\n");
- debug_msg ( "Title : %s\n", pInfo->pTitle);
- debug_msg ( "Artist : %s\n", pInfo->pArtist);
- debug_msg ( "Album : %s\n", pInfo->pAlbum);
- debug_msg ( "Album_Artist: %s\n", pInfo->pAlbum_Artist);
- debug_msg ( "Year : %s\n", pInfo->pYear);
- debug_msg ( "Comment : %s\n", pInfo->pComment);
- debug_msg ( "TrackNum : %s\n", pInfo->pTrackNum);
- debug_msg ( "Genre : %s\n", pInfo->pGenre);
- debug_msg ( "**** Info #2 ****\n");
- debug_msg ( "Author : %s\n", pInfo->pAuthor);
- debug_msg ( "Copyright : %s\n", pInfo->pCopyright);
- debug_msg ( "Comment : %s\n", pInfo->pComment);
- debug_msg ( "Rating : %s\n", pInfo->pRating);
- debug_msg ( "RecDate : %s\n", pInfo->pRecDate);
- debug_msg ( "Encoded by : %s\n", pInfo->pEncBy);
- debug_msg ( "URL : %s\n", pInfo->pURL);
- debug_msg ( "Ori. Artist : %s\n", pInfo->pOriginArtist);
- debug_msg ( "Composer : %s\n", pInfo->pComposer);
- debug_msg ( "Conductor : %s\n", pInfo->pConductor);
- debug_msg ( "Artwork : mime(%s) addr(%p) size(%d)\n", pInfo->imageInfo.imageMIMEType, pInfo->imageInfo.pImageBuf, pInfo->imageInfo.imageLen);
- debug_msg ( "UnsyncLyrics : %s\n", pInfo->pUnsyncLyrics);
- debug_msg ( "SyncLyrics size : %d\n", pInfo->syncLyricsNum);
-
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Mp3 File pInfo->duration (%lld) \n", pInfo->duration);
+ debug_msg("** MP3 **\n");
+ debug_msg("Version : %u\n", pInfo->mpegVersion);
+ debug_msg("Layer : %u\n", pInfo->layer);
+ debug_msg("Channel idx: %u\n", pInfo->channelIndex);
+ debug_msg("Is VBR : %d\n", (pInfo->bVbr == true ? 1 : 0));
+ debug_msg("Bitrate : %u\n", pInfo->bitRate);
+ debug_msg("SampleRate : %u\n", pInfo->sampleRate);
+ debug_msg("Channels : %u\n", pInfo->channels);
+ debug_msg("**** Info #1 ****\n");
+ debug_msg("Title : %s\n", pInfo->pTitle);
+ debug_msg("Artist : %s\n", pInfo->pArtist);
+ debug_msg("Album : %s\n", pInfo->pAlbum);
+ debug_msg("Album_Artist: %s\n", pInfo->pAlbum_Artist);
+ debug_msg("Year : %s\n", pInfo->pYear);
+ debug_msg("Comment : %s\n", pInfo->pComment);
+ debug_msg("TrackNum : %s\n", pInfo->pTrackNum);
+ debug_msg("Genre : %s\n", pInfo->pGenre);
+ debug_msg("**** Info #2 ****\n");
+ debug_msg("Author : %s\n", pInfo->pAuthor);
+ debug_msg("Copyright : %s\n", pInfo->pCopyright);
+ debug_msg("Comment : %s\n", pInfo->pComment);
+ debug_msg("Rating : %s\n", pInfo->pRating);
+ debug_msg("RecDate : %s\n", pInfo->pRecDate);
+ debug_msg("Encoded by : %s\n", pInfo->pEncBy);
+ debug_msg("URL : %s\n", pInfo->pURL);
+ debug_msg("Ori. Artist : %s\n", pInfo->pOriginArtist);
+ debug_msg("Composer : %s\n", pInfo->pComposer);
+ debug_msg("Conductor : %s\n", pInfo->pConductor);
+ debug_msg("Artwork : mime(%s) addr(%p) size(%d)\n", pInfo->imageInfo.imageMIMEType, pInfo->imageInfo.pImageBuf, pInfo->imageInfo.imageLen);
+ debug_msg("UnsyncLyrics : %s\n", pInfo->pUnsyncLyrics);
+ debug_msg("SyncLyrics size : %d\n", pInfo->syncLyricsNum);
+
+#endif
return 0;
EXCEPTION:
- debug_error ("Error occured!\n");
+ debug_error("Error occured!\n");
mmfile_close(hFile);
return -1;
}
diff --git a/formats/ffmpeg/mm_file_format_tag_id3.c b/formats/ffmpeg/mm_file_format_tag_id3.c
index 9a96ca7..823d74a 100755
--- a/formats/ffmpeg/mm_file_format_tag_id3.c
+++ b/formats/ffmpeg/mm_file_format_tag_id3.c
@@ -21,178 +21,161 @@
#include <string.h>
#include <stdlib.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_format_tag_id3.h"
#define MMFILE_ID3V1TAG_SIZE 128
#define MMFILE_ID3V2TAG_HEADER_SIZE 10
-static unsigned int GetSynchsafeInteger (unsigned int value);
+static unsigned int GetSynchsafeInteger(unsigned int value);
EXPORT_API
-int MMFileID3V1TagFind (MMFileIOHandle *fp, unsigned char bAppended, unsigned int startOffset, unsigned int endOffset, tMMFileTags *out)
+int MMFileID3V1TagFind(MMFileIOHandle *fp, unsigned char bAppended, unsigned int startOffset, unsigned int endOffset, tMMFileTags *out)
{
- int ret = 0;
-
- if (!fp || !out)
- {
- debug_error ("Invalid input\n");
- return MMFILE_ID3TAG_FAIL;
- }
-
- if (bAppended)
- {
- unsigned char tagSymbol[3] = {0,};
-
- unsigned int offset = endOffset - MMFILE_ID3V1TAG_SIZE;
-
- mmfile_seek (fp, offset, MMFILE_SEEK_SET);
-
- ret = mmfile_read (fp, tagSymbol, 3);
- if (MMFILE_UTIL_FAIL == ret)
- {
- debug_error ("read error\n");
- return MMFILE_ID3TAG_FAIL;
- }
-
- if (memcmp ("TAG", tagSymbol, 3) == 0)
- {
- unsigned char versionBuf[2] = {0,};
-
- out->typeOfTag = MMFILE_TAG_ID3V1;
- out->startOffset = offset;
- out->endOffset = endOffset;
- out->bAppendedTag = 1;
- out->tagSize = MMFILE_ID3V1TAG_SIZE;
-
- offset += 125; // byte delimiter offset: ID3V1.1 spec.
- mmfile_seek (fp, offset, MMFILE_SEEK_SET);
-
- ret = mmfile_read (fp, versionBuf, 2);
- if (MMFILE_UTIL_FAIL == ret)
- {
- debug_error ("read error\n");
- return MMFILE_ID3TAG_FAIL;
- }
-
- if (versionBuf[0] == '\0' && versionBuf[1] != '\0')
- {
- out->version = MMFILE_ID3TAG_V1_1;
- }
- else
- {
- out->version = MMFILE_ID3TAG_V1_0;
- }
-
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("typeOfTag = %d\n", out->typeOfTag);
- debug_msg ("startOffset = %d\n", out->startOffset);
- debug_msg ("endOffset = %d\n", out->endOffset);
- debug_msg ("bAppendedTag = %d\n", out->bAppendedTag);
- debug_msg ("tagSize = %d\n", out->tagSize);
- debug_msg ("version = %d\n", out->version);
- #endif
-
- return MMFILE_ID3TAG_SUCCESS;
- }
- }
-
- return MMFILE_ID3TAG_FAIL;
+ int ret = 0;
+
+ if (!fp || !out) {
+ debug_error("Invalid input\n");
+ return MMFILE_ID3TAG_FAIL;
+ }
+
+ if (bAppended) {
+ unsigned char tagSymbol[3] = {0, };
+
+ unsigned int offset = endOffset - MMFILE_ID3V1TAG_SIZE;
+
+ mmfile_seek(fp, offset, MMFILE_SEEK_SET);
+
+ ret = mmfile_read(fp, tagSymbol, 3);
+ if (MMFILE_UTIL_FAIL == ret) {
+ debug_error("read error\n");
+ return MMFILE_ID3TAG_FAIL;
+ }
+
+ if (memcmp("TAG", tagSymbol, 3) == 0) {
+ unsigned char versionBuf[2] = {0, };
+
+ out->typeOfTag = MMFILE_TAG_ID3V1;
+ out->startOffset = offset;
+ out->endOffset = endOffset;
+ out->bAppendedTag = 1;
+ out->tagSize = MMFILE_ID3V1TAG_SIZE;
+
+ offset += 125; /* byte delimiter offset: ID3V1.1 spec. */
+ mmfile_seek(fp, offset, MMFILE_SEEK_SET);
+
+ ret = mmfile_read(fp, versionBuf, 2);
+ if (MMFILE_UTIL_FAIL == ret) {
+ debug_error("read error\n");
+ return MMFILE_ID3TAG_FAIL;
+ }
+
+ if (versionBuf[0] == '\0' && versionBuf[1] != '\0') {
+ out->version = MMFILE_ID3TAG_V1_1;
+ } else {
+ out->version = MMFILE_ID3TAG_V1_0;
+ }
+
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("typeOfTag = %d\n", out->typeOfTag);
+ debug_msg("startOffset = %d\n", out->startOffset);
+ debug_msg("endOffset = %d\n", out->endOffset);
+ debug_msg("bAppendedTag = %d\n", out->bAppendedTag);
+ debug_msg("tagSize = %d\n", out->tagSize);
+ debug_msg("version = %d\n", out->version);
+#endif
+
+ return MMFILE_ID3TAG_SUCCESS;
+ }
+ }
+
+ return MMFILE_ID3TAG_FAIL;
}
EXPORT_API
-int MMFileID3V2TagFind (MMFileIOHandle *fp, unsigned char bAppended, unsigned int startOffset, unsigned int endOffset, tMMFileTags *out)
+int MMFileID3V2TagFind(MMFileIOHandle *fp, unsigned char bAppended, unsigned int startOffset, unsigned int endOffset, tMMFileTags *out)
{
- unsigned char *id3v2ID = NULL;
- unsigned char header[MMFILE_ID3V2TAG_HEADER_SIZE] = {0,};
- unsigned int offset = 0;
- unsigned int index = 0;
- int ret = 0;
-
- if (!fp || !out)
- {
- debug_error ("Invalid input\n");
- return MMFILE_ID3TAG_FAIL;
- }
-
- if (bAppended)
- {
- id3v2ID = "3DI";
- offset = endOffset - MMFILE_ID3V2TAG_HEADER_SIZE;
- }
- else
- {
- id3v2ID = "ID3";
- offset = startOffset;
- }
-
- mmfile_seek (fp, offset, MMFILE_SEEK_SET);
-
- ret = mmfile_read (fp, header, MMFILE_ID3V2TAG_HEADER_SIZE);
- if (MMFILE_UTIL_FAIL == ret)
- {
- debug_error ("read error\n");
- return MMFILE_ID3TAG_FAIL;
- }
-
- if (memcmp (id3v2ID, header, 3) == 0)
- {
- index += 3;
- out->typeOfTag = MMFILE_TAG_ID3V2;
- out->bAppendedTag = bAppended;
- out->startOffset = offset;
-
- //version check
- switch (header[index])
- {
- case 0:
- out->version = MMFILE_ID3TAG_V2_0;
- break;
- case 2:
- out->version = MMFILE_ID3TAG_V2_2;
- break;
- case 3:
- out->version = MMFILE_ID3TAG_V2_3;
- break;
- case 4:
- out->version = MMFILE_ID3TAG_V2_4;
- break;
- default:
- debug_warning ("unknown version of id3v2\n");
- break;
- }
-
- index += 2;
- //check footer
- unsigned char footer = (header[index] & 0x10) ? 1 : 0;
-
- index += 1;
- //out->tagSize = GetSynchsafeInteger () + (footer ? 20 : 10)
-
- if (bAppended)
- {
-// out->endOffset
- }
- out->endOffset = endOffset;
- }
-
-
- return MMFILE_ID3TAG_FAIL;
+ unsigned char *id3v2ID = NULL;
+ unsigned char header[MMFILE_ID3V2TAG_HEADER_SIZE] = {0, };
+ unsigned int offset = 0;
+ unsigned int index = 0;
+ int ret = 0;
+
+ if (!fp || !out) {
+ debug_error("Invalid input\n");
+ return MMFILE_ID3TAG_FAIL;
+ }
+
+ if (bAppended) {
+ id3v2ID = "3DI";
+ offset = endOffset - MMFILE_ID3V2TAG_HEADER_SIZE;
+ } else {
+ id3v2ID = "ID3";
+ offset = startOffset;
+ }
+
+ mmfile_seek(fp, offset, MMFILE_SEEK_SET);
+
+ ret = mmfile_read(fp, header, MMFILE_ID3V2TAG_HEADER_SIZE);
+ if (MMFILE_UTIL_FAIL == ret) {
+ debug_error("read error\n");
+ return MMFILE_ID3TAG_FAIL;
+ }
+
+ if (memcmp(id3v2ID, header, 3) == 0) {
+ index += 3;
+ out->typeOfTag = MMFILE_TAG_ID3V2;
+ out->bAppendedTag = bAppended;
+ out->startOffset = offset;
+
+ /*version check */
+ switch (header[index]) {
+ case 0:
+ out->version = MMFILE_ID3TAG_V2_0;
+ break;
+ case 2:
+ out->version = MMFILE_ID3TAG_V2_2;
+ break;
+ case 3:
+ out->version = MMFILE_ID3TAG_V2_3;
+ break;
+ case 4:
+ out->version = MMFILE_ID3TAG_V2_4;
+ break;
+ default:
+ debug_warning("unknown version of id3v2\n");
+ break;
+ }
+
+ index += 2;
+ /*check footer */
+ unsigned char footer = (header[index] & 0x10) ? 1 : 0;
+
+ index += 1;
+ /*out->tagSize = GetSynchsafeInteger() + (footer ? 20 : 10) */
+
+ if (bAppended) {
+/* out->endOffset */
+ }
+ out->endOffset = endOffset;
+ }
+
+
+ return MMFILE_ID3TAG_FAIL;
}
-static unsigned int GetSynchsafeInteger (unsigned int value)
+static unsigned int GetSynchsafeInteger(unsigned int value)
{
- int i = 0;
- const unsigned int mask = 0x7F000000;
- unsigned int ret = 0;
-
- for (i = 0; i < sizeof(unsigned int); i++)
- {
- ret = (ret << 7) | ((value & mask) >> 24);
- value <<= 8;
- }
- return ret;
+ int i = 0;
+ const unsigned int mask = 0x7F000000;
+ unsigned int ret = 0;
+
+ for (i = 0; i < sizeof(unsigned int); i++) {
+ ret = (ret << 7) | ((value & mask) >> 24);
+ value <<= 8;
+ }
+ return ret;
}
diff --git a/formats/ffmpeg/mm_file_format_tags.c b/formats/ffmpeg/mm_file_format_tags.c
index f1c2bf2..51c6640 100755
--- a/formats/ffmpeg/mm_file_format_tags.c
+++ b/formats/ffmpeg/mm_file_format_tags.c
@@ -21,7 +21,7 @@
#include <string.h>
#include <stdlib.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
#include "mm_file_format_tag_id3.h"
#include "mm_file_format_tags.h"
@@ -31,220 +31,195 @@
typedef int (*MMFileFindTagFunc)(MMFileIOHandle *fp, unsigned char bAppended, unsigned int startOffset, unsigned int endOffset, tMMFileTags *out);
-typedef struct mmfiletagsdata
-{
- MMFileIOHandle *fp;
- unsigned int filesize;
- unsigned int startOffset;
- unsigned int endOffset;
- MMFileList tagList;
+typedef struct mmfiletagsdata {
+ MMFileIOHandle *fp;
+ unsigned int filesize;
+ unsigned int startOffset;
+ unsigned int endOffset;
+ MMFileList tagList;
} tMMFileTagsData;
-MMFileFindTagFunc gFindPreprendTagFuncs[] =
-{
- MMFileID3V2TagFind,
+MMFileFindTagFunc gFindPreprendTagFuncs[] = {
+ MMFileID3V2TagFind,
};
-MMFileFindTagFunc gFindAppendTagFuncs[] =
-{
- MMFileID3V1TagFind,
- MMFileID3V2TagFind,
+MMFileFindTagFunc gFindAppendTagFuncs[] = {
+ MMFileID3V1TagFind,
+ MMFileID3V2TagFind,
};
-int _MMFileFindTags (tMMFileTagsData *privateData, MMFileFindTagFunc FindTag, unsigned char bAppended);
-int _MMFileFindPrependTags (tMMFileTagsData *privateData);
-int _MMFileFindAppendTags (tMMFileTagsData *privateData);
+int _MMFileFindTags(tMMFileTagsData *privateData, MMFileFindTagFunc FindTag, unsigned char bAppended);
+int _MMFileFindPrependTags(tMMFileTagsData *privateData);
+int _MMFileFindAppendTags(tMMFileTagsData *privateData);
EXPORT_API
-int MMFileOpenTags (MMFileTagsHandle *tagsHandle, const char *uriName)
+int MMFileOpenTags(MMFileTagsHandle *tagsHandle, const char *uriName)
{
- tMMFileTagsData *privateData = NULL;
- int ret = 0;
-
- privateData = mmfile_malloc (sizeof(tMMFileTagsData));
- if (!privateData)
- {
- debug_error ("mmfile_malloc: tMMFileTagsData\n");
- return MMFILE_TAGS_FAIL;
- }
-
- *tagsHandle = privateData;
-
- ret = mmfile_open (&privateData->fp, uriName, MMFILE_RDONLY);
- if (MMFILE_UTIL_FAIL == ret)
- {
- debug_error ("mmfile_open\n");
- ret = MMFILE_TAGS_FAIL;
- goto exception;
- }
-
- ret = mmfile_seek (privateData->fp, 0, MMFILE_SEEK_END);
- if (MMFILE_UTIL_FAIL == ret)
- {
- debug_error ("mmfile_seek\n");
- ret = MMFILE_TAGS_FAIL;
- goto exception;
- }
-
- privateData->filesize = mmfile_tell (privateData->fp);
-
- mmfile_seek (privateData->fp, 0, MMFILE_SEEK_SET);
-
- privateData->startOffset = 0;
- privateData->endOffset = privateData->filesize;
-
- /* Find all of tags */
- while (MMFILE_TAGS_SUCCESS == _MMFileFindPrependTags (privateData)) ;
- while (MMFILE_TAGS_SUCCESS == _MMFileFindAppendTags (privateData)) ;
-
- if (!privateData->tagList)
- {
- debug_error ("there is no tags\n");
- ret = MMFILE_TAGS_FAIL;
- goto exception;
- }
-
- return MMFILE_TAGS_SUCCESS;
+ tMMFileTagsData *privateData = NULL;
+ int ret = 0;
+
+ privateData = mmfile_malloc(sizeof(tMMFileTagsData));
+ if (!privateData) {
+ debug_error("mmfile_malloc: tMMFileTagsData\n");
+ return MMFILE_TAGS_FAIL;
+ }
+
+ *tagsHandle = privateData;
+
+ ret = mmfile_open(&privateData->fp, uriName, MMFILE_RDONLY);
+ if (MMFILE_UTIL_FAIL == ret) {
+ debug_error("mmfile_open\n");
+ ret = MMFILE_TAGS_FAIL;
+ goto exception;
+ }
+
+ ret = mmfile_seek(privateData->fp, 0, MMFILE_SEEK_END);
+ if (MMFILE_UTIL_FAIL == ret) {
+ debug_error("mmfile_seek\n");
+ ret = MMFILE_TAGS_FAIL;
+ goto exception;
+ }
+
+ privateData->filesize = mmfile_tell(privateData->fp);
+
+ mmfile_seek(privateData->fp, 0, MMFILE_SEEK_SET);
+
+ privateData->startOffset = 0;
+ privateData->endOffset = privateData->filesize;
+
+ /* Find all of tags */
+ while (MMFILE_TAGS_SUCCESS == _MMFileFindPrependTags(privateData)) ;
+ while (MMFILE_TAGS_SUCCESS == _MMFileFindAppendTags(privateData)) ;
+
+ if (!privateData->tagList) {
+ debug_error("there is no tags\n");
+ ret = MMFILE_TAGS_FAIL;
+ goto exception;
+ }
+
+ return MMFILE_TAGS_SUCCESS;
exception:
- if (*tagsHandle)
- {
- MMFileTagsClose (*tagsHandle);
- *tagsHandle = NULL;
- }
-
- return ret;
+ if (*tagsHandle) {
+ MMFileTagsClose(*tagsHandle);
+ *tagsHandle = NULL;
+ }
+
+ return ret;
}
EXPORT_API
-int MMFileTagsClose (MMFileTagsHandle tagsHandle)
+int MMFileTagsClose(MMFileTagsHandle tagsHandle)
{
- tMMFileTagsData *privateData = tagsHandle;
+ tMMFileTagsData *privateData = tagsHandle;
- if (privateData)
- {
- if (privateData->fp)
- {
- mmfile_close (privateData->fp);
- }
+ if (privateData) {
+ if (privateData->fp) {
+ mmfile_close(privateData->fp);
+ }
- if (privateData->tagList)
- {
- mmfile_free (privateData->tagList);
- }
+ if (privateData->tagList) {
+ mmfile_free(privateData->tagList);
+ }
- mmfile_free (privateData);
- }
+ mmfile_free(privateData);
+ }
- return MMFILE_TAGS_SUCCESS;
+ return MMFILE_TAGS_SUCCESS;
}
EXPORT_API
-int MMFileGetFirstTag (MMFileTagsHandle tagsHandle, tMMFileTags *out)
+int MMFileGetFirstTag(MMFileTagsHandle tagsHandle, tMMFileTags *out)
{
-
+
}
EXPORT_API
-int MMFileGetNextTag (MMFileTagsHandle tagsHandle, tMMFileTags *out)
+int MMFileGetNextTag(MMFileTagsHandle tagsHandle, tMMFileTags *out)
{
}
-int _MMFileFindPrependTags (tMMFileTagsData *privateData)
+int _MMFileFindPrependTags(tMMFileTagsData *privateData)
{
- int i = 0;
- int res = 0;
-
- if (!privateData || !privateData->fp)
- {
- debug_error ("Invalid argument\n");
- return MMFILE_TAGS_FAIL;
- }
-
- for (i = 0; i < MMFILE_TAGS_NUMBER_OF_ELEMENTS(gFindPreprendTagFuncs); i++)
- {
- if (gFindPreprendTagFuncs[i])
- {
- if (MMFILE_TAGS_SUCCESS == _MMFileFindTags (privateData, gFindPreprendTagFuncs[i], 0))
- {
- return MMFILE_TAGS_SUCCESS;
- }
- }
- }
-
- return MMFILE_TAGS_FAIL;
+ int i = 0;
+ int res = 0;
+
+ if (!privateData || !privateData->fp) {
+ debug_error("Invalid argument\n");
+ return MMFILE_TAGS_FAIL;
+ }
+
+ for (i = 0; i < MMFILE_TAGS_NUMBER_OF_ELEMENTS(gFindPreprendTagFuncs); i++) {
+ if (gFindPreprendTagFuncs[i]) {
+ if (MMFILE_TAGS_SUCCESS == _MMFileFindTags(privateData, gFindPreprendTagFuncs[i], 0)) {
+ return MMFILE_TAGS_SUCCESS;
+ }
+ }
+ }
+
+ return MMFILE_TAGS_FAIL;
}
-int _MMFileFindAppendTags (tMMFileTagsData *privateData)
+int _MMFileFindAppendTags(tMMFileTagsData *privateData)
{
- int i = 0;
- int res = 0;
-
- if (!privateData || !privateData->fp)
- {
- debug_error ("Invalid argument\n");
- return MMFILE_TAGS_FAIL;
- }
-
- for (i = 0; i < MMFILE_TAGS_NUMBER_OF_ELEMENTS(gFindAppendTagFuncs); i++)
- {
- if (gFindAppendTagFuncs[i])
- {
- if (MMFILE_TAGS_SUCCESS == _MMFileFindTags (privateData, gFindAppendTagFuncs[i], 1))
- {
- return MMFILE_TAGS_SUCCESS;
- }
- }
- }
-
- return MMFILE_TAGS_FAIL;
+ int i = 0;
+ int res = 0;
+
+ if (!privateData || !privateData->fp) {
+ debug_error("Invalid argument\n");
+ return MMFILE_TAGS_FAIL;
+ }
+
+ for (i = 0; i < MMFILE_TAGS_NUMBER_OF_ELEMENTS(gFindAppendTagFuncs); i++) {
+ if (gFindAppendTagFuncs[i]) {
+ if (MMFILE_TAGS_SUCCESS == _MMFileFindTags(privateData, gFindAppendTagFuncs[i], 1)) {
+ return MMFILE_TAGS_SUCCESS;
+ }
+ }
+ }
+
+ return MMFILE_TAGS_FAIL;
}
-int _MMFileFindTags (tMMFileTagsData *privateData, MMFileFindTagFunc FindTag, unsigned char bAppended)
+int _MMFileFindTags(tMMFileTagsData *privateData, MMFileFindTagFunc FindTag, unsigned char bAppended)
{
- tMMFileTags *tagData = NULL;
- int ret = 0;
-
- if (!privateData || !privateData->fp)
- {
- debug_error ("Invalid argument\n");
- return MMFILE_TAGS_FAIL;
- }
-
- tagData = mmfile_malloc (sizeof(tMMFileTags));
- if (!tagData)
- {
- debug_error ("mmfile_malloc tagData\n");
- return MMFILE_TAGS_FAIL;
- }
-
- ret = FindTag (privateData->fp, bAppended, privateData->startOffset, privateData->endOffset, tagData);
- if (ret)
- {
- if (bAppended)
- {
- privateData->endOffset = tagData->startOffset;
- }
- else
- {
- privateData->startOffset = tagData->endOffset;
- }
-
- /* add tagData into privateData->tagList */
-
- //privateData->tagList = mmfile_list_append (privateData->tagList, tagData);
-
- ret = MMFILE_TAGS_SUCCESS;
- }
-
- mmfile_free(tagData);
-
- return ret;
+ tMMFileTags *tagData = NULL;
+ int ret = 0;
+
+ if (!privateData || !privateData->fp) {
+ debug_error("Invalid argument\n");
+ return MMFILE_TAGS_FAIL;
+ }
+
+ tagData = mmfile_malloc(sizeof(tMMFileTags));
+ if (!tagData) {
+ debug_error("mmfile_malloc tagData\n");
+ return MMFILE_TAGS_FAIL;
+ }
+
+ ret = FindTag(privateData->fp, bAppended, privateData->startOffset, privateData->endOffset, tagData);
+ if (ret) {
+ if (bAppended) {
+ privateData->endOffset = tagData->startOffset;
+ } else {
+ privateData->startOffset = tagData->endOffset;
+ }
+
+ /* add tagData into privateData->tagList */
+
+ /*privateData->tagList = mmfile_list_append(privateData->tagList, tagData); */
+
+ ret = MMFILE_TAGS_SUCCESS;
+ }
+
+ mmfile_free(tagData);
+
+ return ret;
}
diff --git a/formats/ffmpeg/mm_file_format_wav.c b/formats/ffmpeg/mm_file_format_wav.c
index bbe04d2..8bbfe8e 100755
--- a/formats/ffmpeg/mm_file_format_wav.c
+++ b/formats/ffmpeg/mm_file_format_wav.c
@@ -23,7 +23,7 @@
#include <stdlib.h> /*malloc*/
#include <mm_error.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
#include "mm_file_format_private.h"
@@ -46,8 +46,8 @@
* 32 2 little Block align
* 34 2 little Bit per sample
*/
-
-
+
+
#define MMF_FILE_WAVE_CHUNK_LEN 12
#define MMF_FILE_WAVE_SUBCHUNK_LEN 24
#define MMF_FILE_WAVE_HEADER_LEN (MMF_FILE_WAVE_CHUNK_LEN + MMF_FILE_WAVE_SUBCHUNK_LEN)
@@ -55,10 +55,10 @@
#ifdef __MMFILE_TEST_MODE__
typedef struct {
short codec; /**< WAVE form Registration Number*/
- char *name; /**< WAVE form wFormatTag ID*/
+ const char *name; /**< WAVE form wFormatTag ID*/
} MMF_FILE_WAVE_CODEC_NAME;
-MMF_FILE_WAVE_CODEC_NAME g_audio_cdc_tbl [] = {
+MMF_FILE_WAVE_CODEC_NAME g_audio_cdc_tbl[] = {
{ 0x0000, "WAVE_FORMAT_UNKNOWN" },
{ 0x0001, "WAVE_FORMAT_PCM" },
{ 0x0002, "WAVE_FORMAT_ADPCM" },
@@ -179,19 +179,19 @@ typedef struct {
/* internal */
-static unsigned char *mmf_file_wave_get_header (char *src);
-static int mmf_file_wave_get_info (unsigned char *header, MM_FILE_WAVE_INFO *info);
+static unsigned char *mmf_file_wave_get_header(char *src);
+static int mmf_file_wave_get_info(unsigned char *header, MM_FILE_WAVE_INFO *info);
/* mm plugin porting */
-int mmfile_format_read_stream_wav (MMFileFormatContext *formatContext);
-int mmfile_format_read_frame_wav (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
-int mmfile_format_read_tag_wav (MMFileFormatContext *formatContext);
-int mmfile_format_close_wav (MMFileFormatContext *formatContext);
+int mmfile_format_read_stream_wav(MMFileFormatContext *formatContext);
+int mmfile_format_read_frame_wav(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
+int mmfile_format_read_tag_wav(MMFileFormatContext *formatContext);
+int mmfile_format_close_wav(MMFileFormatContext *formatContext);
EXPORT_API
-int mmfile_format_open_wav (MMFileFormatContext *formatContext)
+int mmfile_format_open_wav(MMFileFormatContext *formatContext)
{
int ret = 0;
@@ -201,11 +201,10 @@ int mmfile_format_open_wav (MMFileFormatContext *formatContext)
}
if (formatContext->pre_checked == 0) {
- ret = MMFileFormatIsValidWAV (formatContext->uriFileName);
- if ( ret == 0 )
- {
+ ret = MMFileFormatIsValidWAV(NULL, formatContext->uriFileName);
+ if (ret == 0) {
debug_error("It is not wav file\n");
- return MMFILE_FORMAT_FAIL;
+ return MMFILE_FORMAT_FAIL;
}
}
@@ -243,7 +242,7 @@ static bool __check_uhqa(int sample_rate, short bits_per_sample)
}
EXPORT_API
-int mmfile_format_read_stream_wav (MMFileFormatContext *formatContext)
+int mmfile_format_read_stream_wav(MMFileFormatContext *formatContext)
{
unsigned char *header = NULL;
MM_FILE_WAVE_INFO *waveinfo = NULL;
@@ -253,41 +252,41 @@ int mmfile_format_read_stream_wav (MMFileFormatContext *formatContext)
if (formatContext == NULL) {
debug_error("formatContext is NULL\n");
- return MMFILE_FORMAT_FAIL;
+ return MMFILE_FORMAT_FAIL;
}
- header = mmf_file_wave_get_header (formatContext->uriFileName);
+ header = mmf_file_wave_get_header(formatContext->uriFileName);
if (header == NULL) {
debug_error("error: mmf_file_wave_get_header\n");
goto exception;
}
- waveinfo = mmfile_malloc (sizeof(MM_FILE_WAVE_INFO));
+ waveinfo = mmfile_malloc(sizeof(MM_FILE_WAVE_INFO));
if (waveinfo == NULL) {
debug_error("error: mmfile_malloc\n");
goto exception;
}
- ret = mmf_file_wave_get_info (header, waveinfo);
+ ret = mmf_file_wave_get_info(header, waveinfo);
if (ret == -1) {
debug_error("error: mmf_file_wave_get_info\n");
goto exception;
}
- mmfile_free (header);
+ mmfile_free(header);
- /* Get file size. because sometimes waveinfo->size is wrong */
- ret = mmfile_open (&fp, formatContext->uriFileName, MMFILE_RDONLY);
- if(fp) {
- mmfile_seek (fp, 0, MMFILE_SEEK_END);
+ /* Get file size. because sometimes waveinfo->size is wrong */
+ ret = mmfile_open(&fp, formatContext->uriFileName, MMFILE_RDONLY);
+ if (fp) {
+ mmfile_seek(fp, 0, MMFILE_SEEK_END);
filesize = mmfile_tell(fp);
- mmfile_seek (fp, 0, MMFILE_SEEK_SET);
- mmfile_close (fp);
+ mmfile_seek(fp, 0, MMFILE_SEEK_SET);
+ mmfile_close(fp);
}
formatContext->privateFormatData = waveinfo;
- if(waveinfo->size > filesize) {
+ if (waveinfo->size > filesize) {
/*Wrong information*/
formatContext->duration = (int)((((float)filesize - MMF_FILE_WAVE_HEADER_LEN) / (float)(waveinfo->byte_rate)) * 1000.0F);
} else {
@@ -296,11 +295,11 @@ int mmfile_format_read_stream_wav (MMFileFormatContext *formatContext)
formatContext->audioTotalTrackNum = 1;
formatContext->nbStreams = 1;
- formatContext->streams[MMFILE_AUDIO_STREAM] = mmfile_malloc (sizeof(MMFileFormatStream));
+ formatContext->streams[MMFILE_AUDIO_STREAM] = mmfile_malloc(sizeof(MMFileFormatStream));
if (!formatContext->streams[MMFILE_AUDIO_STREAM]) {
debug_error("error: mmfile_malloc audio stream for wav\n");
- return MMFILE_FORMAT_FAIL;
+ return MMFILE_FORMAT_FAIL;
}
formatContext->streams[MMFILE_AUDIO_STREAM]->streamType = MMFILE_AUDIO_STREAM;
@@ -326,7 +325,7 @@ int mmfile_format_read_stream_wav (MMFileFormatContext *formatContext)
break;
}
- formatContext->streams[MMFILE_AUDIO_STREAM]->bitRate = waveinfo->byte_rate*8;
+ formatContext->streams[MMFILE_AUDIO_STREAM]->bitRate = waveinfo->byte_rate * 8;
formatContext->streams[MMFILE_AUDIO_STREAM]->nbChannel = waveinfo->channel;
formatContext->streams[MMFILE_AUDIO_STREAM]->framePerSec = 0;
formatContext->streams[MMFILE_AUDIO_STREAM]->samplePerSec = waveinfo->sample_rate;
@@ -336,29 +335,29 @@ int mmfile_format_read_stream_wav (MMFileFormatContext *formatContext)
return MMFILE_FORMAT_SUCCESS;
exception:
- mmfile_free (header);
- mmfile_free (waveinfo);
+ mmfile_free(header);
+ mmfile_free(waveinfo);
return MMFILE_FORMAT_FAIL;
}
EXPORT_API
-int mmfile_format_read_frame_wav (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame)
+int mmfile_format_read_frame_wav(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame)
{
return MMFILE_FORMAT_SUCCESS;
}
EXPORT_API
-int mmfile_format_read_tag_wav (MMFileFormatContext *formatContext)
+int mmfile_format_read_tag_wav(MMFileFormatContext *formatContext)
{
return MMFILE_FORMAT_SUCCESS;
}
EXPORT_API
-int mmfile_format_close_wav (MMFileFormatContext *formatContext)
+int mmfile_format_close_wav(MMFileFormatContext *formatContext)
{
if (formatContext == NULL) {
debug_error("formatContext is NULL\n");
@@ -366,57 +365,58 @@ int mmfile_format_close_wav (MMFileFormatContext *formatContext)
}
if (formatContext->privateFormatData)
- mmfile_free (formatContext->privateFormatData);
+ mmfile_free(formatContext->privateFormatData);
return MMFILE_FORMAT_SUCCESS;
}
-static char*
-_dump_codec_name (short codec)
-{
#ifdef __MMFILE_TEST_MODE__
- int sz = sizeof (g_audio_cdc_tbl) / sizeof (MMF_FILE_WAVE_CODEC_NAME);
+static const char *
+_dump_codec_name(short codec)
+{
+ int sz = sizeof(g_audio_cdc_tbl) / sizeof(MMF_FILE_WAVE_CODEC_NAME);
int i;
-
+
for (i = 0; i < sz; i++) {
if (g_audio_cdc_tbl[i].codec == codec) {
return g_audio_cdc_tbl[i].name;
}
}
-#endif
+
return NULL;
}
+#endif
-static int _get_fmt_subchunk_offset (MMFileIOHandle *fp, long long limit, long long *offset)
+static int _get_fmt_subchunk_offset(MMFileIOHandle *fp, long long limit, long long *offset)
{
long long fmt_offset;
int readed;
int i;
unsigned char buf[4];
- fmt_offset = mmfile_tell (fp);
+ fmt_offset = mmfile_tell(fp);
if (fmt_offset < 0)
return 0;
for (i = 0; i < limit; i++) {
- mmfile_seek (fp, fmt_offset + i, MMFILE_SEEK_SET);
- readed = mmfile_read (fp, buf, 4);
+ mmfile_seek(fp, fmt_offset + i, MMFILE_SEEK_SET);
+ readed = mmfile_read(fp, buf, 4);
if (readed != 4) {
- debug_error ( "failed to read. size = %d\n", readed);
+ debug_error("failed to read. size = %d\n", readed);
return 0;
}
-
+
if (buf[0] == 'f' && buf[1] == 'm' && buf[2] == 't' && buf[3] == ' ') {
*offset = fmt_offset + i;
return 1;
}
}
-
+
return 0;
}
static unsigned char *
-mmf_file_wave_get_header (char *src)
+mmf_file_wave_get_header(char *src)
{
int readed = 0;
MMFileIOHandle *fp = NULL;
@@ -426,115 +426,115 @@ mmf_file_wave_get_header (char *src)
long long offset = 0;
long long limit;
- header = mmfile_malloc (MMF_FILE_WAVE_HEADER_LEN);
+ header = mmfile_malloc(MMF_FILE_WAVE_HEADER_LEN);
if (!header)
return NULL;
/*open*/
- ret = mmfile_open (&fp, src, MMFILE_RDONLY);
+ ret = mmfile_open(&fp, src, MMFILE_RDONLY);
if (ret == MMFILE_UTIL_FAIL) {
- debug_error ( "open failed.\n");
+ debug_error("open failed.\n");
goto failed;
}
/*get file size*/
- mmfile_seek (fp, 0L, MMFILE_SEEK_END);
- src_size = mmfile_tell (fp);
- mmfile_seek (fp, 0L, MMFILE_SEEK_SET);
+ mmfile_seek(fp, 0L, MMFILE_SEEK_END);
+ src_size = mmfile_tell(fp);
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
if (src_size < MMF_FILE_WAVE_HEADER_LEN) {
- debug_error ( "header is too small.\n");
+ debug_error("header is too small.\n");
goto failed;
}
/*read chunk data*/
- readed = mmfile_read (fp, header, MMF_FILE_WAVE_CHUNK_LEN);
+ readed = mmfile_read(fp, header, MMF_FILE_WAVE_CHUNK_LEN);
if (readed != MMF_FILE_WAVE_CHUNK_LEN) {
- debug_error ( "read error. size = %d\n", readed);
+ debug_error("read error. size = %d\n", readed);
goto failed;
}
/*seach 'fmt ' sub chunk*/
limit = (src_size - MMF_FILE_WAVE_HEADER_LEN > 10240 ? 10240 : src_size - MMF_FILE_WAVE_HEADER_LEN);
- ret = _get_fmt_subchunk_offset (fp, limit, &offset);
+ ret = _get_fmt_subchunk_offset(fp, limit, &offset);
if (ret == 0) {
- debug_error ( "failed to seach 'fmt ' chunk\n");
+ debug_error("failed to seach 'fmt ' chunk\n");
goto failed;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("fmt offset: %lld\n", offset);
- #endif
-
- mmfile_seek (fp, offset, MMFILE_SEEK_SET);
-
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("fmt offset: %lld\n", offset);
+#endif
+
+ mmfile_seek(fp, offset, MMFILE_SEEK_SET);
+
/*read sub chunk data*/
- readed = mmfile_read (fp, header + MMF_FILE_WAVE_CHUNK_LEN, MMF_FILE_WAVE_SUBCHUNK_LEN);
+ readed = mmfile_read(fp, header + MMF_FILE_WAVE_CHUNK_LEN, MMF_FILE_WAVE_SUBCHUNK_LEN);
if (readed != MMF_FILE_WAVE_SUBCHUNK_LEN) {
- debug_error ( "read error. size = %d\n", readed);
+ debug_error("read error. size = %d\n", readed);
goto failed;
}
- mmfile_close (fp);
+ mmfile_close(fp);
return header;
failed:
- if (header) mmfile_free (header);
- if (fp) mmfile_close (fp);
+ if (header) mmfile_free(header);
+ if (fp) mmfile_close(fp);
return NULL;
}
static int
-mmf_file_wave_get_info (unsigned char *header, MM_FILE_WAVE_INFO *info)
+mmf_file_wave_get_info(unsigned char *header, MM_FILE_WAVE_INFO *info)
{
if (!header || !info) {
return -1;
}
/*get chunk size*/
- info->size = *((int*)(header + 4));
-
+ info->size = *((int *)(header + 4));
+
/*get format*/
- info->format = *((short*)(header + 20));
+ info->format = *((short *)(header + 20));
/*get channel*/
- info->channel = *((short*)(header + 22));
+ info->channel = *((short *)(header + 22));
/*get sampling-rate*/
- info->sample_rate = *((int*)(header + 24));
+ info->sample_rate = *((int *)(header + 24));
/*get byte rate*/
- info->byte_rate = *((int*)(header + 28));
+ info->byte_rate = *((int *)(header + 28));
/*get byte align*/
- info->block_align = *((short*)(header + 32));
-
+ info->block_align = *((short *)(header + 32));
+
/*get bits per sample*/
- info->bits_per_sample = *((short*)(header + 34));
-
- info->size = mmfile_io_le_int32 (info->size);
- info->format = mmfile_io_le_int16 (info->format);
- info->channel = mmfile_io_le_int16 (info->channel);
- info->sample_rate = mmfile_io_le_int32 (info->sample_rate);
- info->byte_rate = mmfile_io_le_int32 (info->byte_rate);
- info->block_align = mmfile_io_le_int16 (info->block_align);
- info->bits_per_sample = mmfile_io_le_int16 (info->bits_per_sample);
-
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "----------------------------------------------\n");
- debug_msg ( "chunk size: %d\n", info->size);
- debug_msg ( "WAVE form Registration Number: 0x%04X\n", info->format);
- debug_msg ( "WAVE form wFormatTag ID: %s\n", _dump_codec_name (info->format));
- debug_msg ( "channel: %d\n", info->channel);
- debug_msg ( "sampling-rate: %d\n", info->sample_rate);
- debug_msg ( "byte-rate: %d\n", info->byte_rate);
- debug_msg ( "byte align: %d\n", info->block_align);
- debug_msg ( "bit per sample: %d\n", info->bits_per_sample);
- debug_msg ( "----------------------------------------------\n");
- #endif
+ info->bits_per_sample = *((short *)(header + 34));
+
+ info->size = mmfile_io_le_int32(info->size);
+ info->format = mmfile_io_le_int16(info->format);
+ info->channel = mmfile_io_le_int16(info->channel);
+ info->sample_rate = mmfile_io_le_int32(info->sample_rate);
+ info->byte_rate = mmfile_io_le_int32(info->byte_rate);
+ info->block_align = mmfile_io_le_int16(info->block_align);
+ info->bits_per_sample = mmfile_io_le_int16(info->bits_per_sample);
+
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("----------------------------------------------\n");
+ debug_msg("chunk size: %d\n", info->size);
+ debug_msg("WAVE form Registration Number: 0x%04X\n", info->format);
+ debug_msg("WAVE form wFormatTag ID: %s\n", _dump_codec_name(info->format));
+ debug_msg("channel: %d\n", info->channel);
+ debug_msg("sampling-rate: %d\n", info->sample_rate);
+ debug_msg("byte-rate: %d\n", info->byte_rate);
+ debug_msg("byte align: %d\n", info->block_align);
+ debug_msg("bit per sample: %d\n", info->bits_per_sample);
+ debug_msg("----------------------------------------------\n");
+#endif
return 0;
diff --git a/formats/ffmpeg/mm_file_formats.c b/formats/ffmpeg/mm_file_formats.c
index 573d262..962664f 100755
--- a/formats/ffmpeg/mm_file_formats.c
+++ b/formats/ffmpeg/mm_file_formats.c
@@ -22,14 +22,55 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
-
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_format_private.h"
#include "mm_file_utils.h"
#define _MMF_FILE_FILEEXT_MAX 128
-int (*MMFileOpenFunc[MM_FILE_FORMAT_NUM+1]) (MMFileFormatContext *fileContext) = {
+#define MMFILE_EXT_MP4 0x6D7034
+#define MMFILE_EXT_MPEG4 0x6D70656734
+#define MMFILE_EXT_M4A 0x6D3461
+#define MMFILE_EXT_MPG 0x6D7067
+#define MMFILE_EXT_MPG4 0x6D706734
+#define MMFILE_EXT_M4V 0x6D3476
+#define MMFILE_EXT_3GP 0x336770
+#define MMFILE_EXT_AMR 0x616D72
+#define MMFILE_EXT_AWB 0x617762
+#define MMFILE_EXT_WAV 0x776176
+#define MMFILE_EXT_MID 0x6D6964
+#define MMFILE_EXT_MIDI 0x6D696D69
+#define MMFILE_EXT_SPM 0x73706D
+#define MMFILE_EXT_MP3 0x6D7033
+#define MMFILE_EXT_AAC 0x616163
+#define MMFILE_EXT_XMF 0x786D66
+#define MMFILE_EXT_MXMF 0x6D786D66
+#define MMFILE_EXT_MMF 0x6D6D66
+#define MMFILE_EXT_MA2 0x6D6132
+#define MMFILE_EXT_IMY 0x696D79
+#define MMFILE_EXT_AVI 0x617669
+#define MMFILE_EXT_DIVX 0x64697678
+#define MMFILE_EXT_ASF 0x617366
+#define MMFILE_EXT_ASX 0x617378
+#define MMFILE_EXT_WMA 0x776D61
+#define MMFILE_EXT_WMV 0x776D76
+#define MMFILE_EXT_OGG 0x6F6767
+#define MMFILE_EXT_MKV 0x6D6B76
+#define MMFILE_EXT_MKA 0x6D6B61
+#define MMFILE_EXT_MOV 0x6D6F76
+#define MMFILE_EXT_FLAC 0x666C6163
+#define MMFILE_EXT_FLV 0x666C76
+#define MMFILE_EXT_AIF 0x616966
+#define MMFILE_EXT_AIFF 0x61696666
+#define MMFILE_EXT_RMVB 0x726D7662
+#define MMFILE_EXT_RM 0x726D
+#define MMFILE_EXT_M2TS 0x6D327473
+#define MMFILE_EXT_MTS 0x6D7473
+#define MMFILE_EXT_TS 0x7473
+#define MMFILE_EXT_TP 0x7470
+#define MMFILE_EXT_MPEG 0x6D706567
+
+int (*MMFileOpenFunc[MM_FILE_FORMAT_NUM + 1])(MMFileFormatContext *fileContext) = {
mmfile_format_open_ffmpg, /* 3GP */
mmfile_format_open_ffmpg, /* ASF */
mmfile_format_open_ffmpg, /* AVI */
@@ -37,12 +78,12 @@ int (*MMFileOpenFunc[MM_FILE_FORMAT_NUM+1]) (MMFileFormatContext *fileContext) =
mmfile_format_open_ffmpg, /* MP4 */
mmfile_format_open_ffmpg, /* OGG */
NULL, /* NUT */
- mmfile_format_open_ffmpg, /* QT */
- NULL, /* REAL */
+ mmfile_format_open_ffmpg, /* QT */
+ mmfile_format_open_ffmpg, /* REAL */
mmfile_format_open_amr, /* AMR */
mmfile_format_open_aac, /* AAC */
mmfile_format_open_mp3, /* MP3 */
- NULL, /* AIFF */
+ mmfile_format_open_ffmpg, /* AIFF */
NULL, /* AU */
mmfile_format_open_wav, /* WAV */
mmfile_format_open_mid, /* MID */
@@ -55,10 +96,14 @@ int (*MMFileOpenFunc[MM_FILE_FORMAT_NUM+1]) (MMFileFormatContext *fileContext) =
mmfile_format_open_ffmpg, /* WMV */
NULL, /* JPG */
mmfile_format_open_ffmpg, /* FLAC */
+ mmfile_format_open_ffmpg, /* MPEG-TS */
+ mmfile_format_open_ffmpg, /* MPEG-PS */
+ mmfile_format_open_ffmpg, /* MPEG 1 VIDEO*/
+ mmfile_format_open_ffmpg, /* MPEG 1 AUDIO */
NULL,
};
-static int _CleanupFrameContext (MMFileFormatContext *formatContext, bool clean_all)
+static int _CleanupFrameContext(MMFileFormatContext *formatContext, bool clean_all)
{
if (formatContext) {
@@ -89,7 +134,7 @@ static int _CleanupFrameContext (MMFileFormatContext *formatContext, bool clean_
if (formatContext->unsyncLyrics) mmfile_free(formatContext->unsyncLyrics);
if (formatContext->rotate) mmfile_free(formatContext->rotate);
- if(clean_all) //syncLyrics has to be freed in mm_file_destroy_tag_attrs() except abnormal status
+ if (clean_all) /*syncLyrics has to be freed in mm_file_destroy_tag_attrs() except abnormal status */
if (formatContext->syncLyrics) mm_file_free_synclyrics_list(formatContext->syncLyrics);
if (formatContext->privateFormatData) mmfile_free(formatContext->privateFormatData);
@@ -109,12 +154,12 @@ static int _CleanupFrameContext (MMFileFormatContext *formatContext, bool clean_
if (formatContext->thumbNail) {
if (formatContext->thumbNail->frameData)
- mmfile_free (formatContext->thumbNail->frameData);
+ mmfile_free(formatContext->thumbNail->frameData);
if (formatContext->thumbNail->configData)
- mmfile_free (formatContext->thumbNail->configData);
+ mmfile_free(formatContext->thumbNail->configData);
- mmfile_free (formatContext->thumbNail);
+ mmfile_free(formatContext->thumbNail);
}
formatContext->videoTotalTrackNum = 0;
@@ -126,19 +171,45 @@ static int _CleanupFrameContext (MMFileFormatContext *formatContext, bool clean_
}
static int
-_PreprocessFile (MMFileSourceType *fileSrc, char **urifilename, int *formatEnum, int *isdrm)
+_PreprocessFile(MMFileSourceType *fileSrc, char **urifilename, int *formatEnum)
{
const char *fileName = NULL;
- char extansion_name[_MMF_FILE_FILEEXT_MAX];
- int pos = 0;
int filename_len = 0;
int index = 0, skip_index = 0;
+ int ret = 0;
+ MMFileIOHandle *fp = NULL;
if (fileSrc->type == MM_FILE_SRC_TYPE_FILE) {
+ unsigned long long file_extansion = 0;
+
fileName = (const char *)(fileSrc->file.path);
- filename_len = strlen (fileName);
- pos = filename_len;
+ filename_len = strlen(fileName);
+
+ int pos = filename_len;
+#ifdef __MMFILE_MMAP_MODE__
+ *urifilename = mmfile_malloc(MMFILE_MMAP_URI_LEN + filename_len + 1);
+ if (!*urifilename) {
+ debug_error("error: mmfile_malloc uriname\n");
+ goto FILE_FORMAT_FAIL;
+ }
+
+ memset(*urifilename, 0x00, MMFILE_MMAP_URI_LEN + filename_len + 1);
+ strncpy(*urifilename, MMFILE_MMAP_URI, MMFILE_MMAP_URI_LEN);
+ strncat(*urifilename, fileName, filename_len);
+ (*urifilename)[MMFILE_MMAP_URI_LEN + filename_len] = '\0';
+
+#else
+ *urifilename = mmfile_malloc(MMFILE_FILE_URI_LEN + filename_len + 1);
+ if (!*urifilename) {
+ debug_error("error: mmfile_malloc uriname\n");
+ goto FILE_FORMAT_FAIL;
+ }
+ memset(*urifilename, 0x00, MMFILE_FILE_URI_LEN + filename_len + 1);
+ strncpy(*urifilename, MMFILE_FILE_URI, MMFILE_FILE_URI_LEN + 1);
+ strncat(*urifilename, fileName, filename_len);
+ (*urifilename)[MMFILE_FILE_URI_LEN + filename_len] = '\0';
+#endif
/**
* Get file extension from file's name
*/
@@ -146,253 +217,289 @@ _PreprocessFile (MMFileSourceType *fileSrc, char **urifilename, int *formatEnum,
pos--;
if (fileName[pos] == '.')
break;
+ file_extansion |= (fileName[pos] >= 'A' && fileName[pos] <= 'Z' ? fileName[pos] + 0x20 : fileName[pos]) << (filename_len - pos - 1) * 8;
}
- memset (extansion_name, 0x00, _MMF_FILE_FILEEXT_MAX);
+ ret = mmfile_open(&fp, *urifilename, MMFILE_RDONLY);
- /*extract metadata for all file. ex)a , a. , a.mp3*/
- if (pos == 0) {
- /*even though there is no file extension, extracto metadata*/
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("no file extension");
- #endif
- }
- else if (_MMF_FILE_FILEEXT_MAX > (filename_len - pos - 1)) {
- strncpy (extansion_name, fileName + pos +1 , (filename_len - pos - 1));
- extansion_name[filename_len - pos - 1] = '\0';
- } else {
- debug_error ("invalid filename. destination length: %d, source length: %d.\n", _MMF_FILE_FILEEXT_MAX, (filename_len - pos - 1));
- return MMFILE_FORMAT_FAIL; /*invalid file name*/
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto FILE_FORMAT_FAIL;
}
-
- *isdrm = MM_FILE_DRM_NONE;
-#ifdef __MMFILE_MMAP_MODE__
- *urifilename = mmfile_malloc (MMFILE_MMAP_URI_LEN + filename_len + 1);
- if (!*urifilename) {
- debug_error ("error: mmfile_malloc uriname\n");
- return MMFILE_FORMAT_FAIL;
- }
+ /*///////////////////////////////////////////////////////////////////// */
+ /* Check File format // */
+ /*///////////////////////////////////////////////////////////////////// */
- memset (*urifilename, 0x00, MMFILE_MMAP_URI_LEN + filename_len + 1);
- strncpy (*urifilename, MMFILE_MMAP_URI, MMFILE_MMAP_URI_LEN);
- strncat (*urifilename, fileName, filename_len);
- (*urifilename)[MMFILE_MMAP_URI_LEN + filename_len] = '\0';
+#ifdef __MMFILE_TEST_MODE__
+ /*debug_msg ("Get codec type of [%s].\n", extansion_name); */
+#endif
-#else
- *urifilename = mmfile_malloc (MMFILE_FILE_URI_LEN + filename_len + 1);
- if (!*urifilename) {
- debug_error ("error: mmfile_malloc uriname\n");
- return MMFILE_FORMAT_FAIL;
- }
+ switch (file_extansion) {
+ case MMFILE_EXT_MP4:
+ case MMFILE_EXT_MPEG4:
+ case MMFILE_EXT_M4A:
+ case MMFILE_EXT_MPG:
+ case MMFILE_EXT_MPG4:
+ case MMFILE_EXT_M4V:
+ if (MMFileFormatIsValidMP4(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_MP4;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_MP4;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
- memset (*urifilename, 0x00, MMFILE_FILE_URI_LEN + filename_len + 1);
- strncpy (*urifilename, MMFILE_FILE_URI, MMFILE_FILE_URI_LEN+1);
- strncat (*urifilename, fileName, filename_len);
- (*urifilename)[MMFILE_FILE_URI_LEN + filename_len] = '\0';
-#endif
+ case MMFILE_EXT_3GP:
+ if (MMFileFormatIsValidMP4(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_3GP;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_3GP;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
+
+ case MMFILE_EXT_AMR:
+ case MMFILE_EXT_AWB:
+ if (MMFileFormatIsValidAMR(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_AMR;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_AMR;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
+
+ case MMFILE_EXT_WAV:
+ if (MMFileFormatIsValidWAV(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_WAV;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_WAV;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
+
+ case MMFILE_EXT_MID:
+ case MMFILE_EXT_MIDI:
+ case MMFILE_EXT_SPM:
+ if (MMFileFormatIsValidMID(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_MID;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_MID;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
+
+ case MMFILE_EXT_MP3:
+ if (MMFileFormatIsValidMP3(fp, NULL, 5)) {
+ *formatEnum = MM_FILE_FORMAT_MP3;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_MP3;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
+
+ case MMFILE_EXT_AAC:
+ if (MMFileFormatIsValidAAC(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_AAC;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_AAC;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
+
+ case MMFILE_EXT_XMF:
+ case MMFILE_EXT_MXMF:
+ if (MMFileFormatIsValidMID(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_MID;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_MID;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
+
+ case MMFILE_EXT_MMF:
+ case MMFILE_EXT_MA2:
+ if (MMFileFormatIsValidMMF(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_MMF;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_MMF;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
+
+ case MMFILE_EXT_IMY:
+ if (MMFileFormatIsValidIMY(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_IMELODY;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_IMELODY;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
+
+ case MMFILE_EXT_AVI:
+ if (MMFileFormatIsValidAVI(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_AVI;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_AVI;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
+
+ case MMFILE_EXT_DIVX:
+ if (MMFileFormatIsValidAVI(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_DIVX;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_DIVX;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
+
+ case MMFILE_EXT_ASF:
+ case MMFILE_EXT_ASX:
+ if (MMFileFormatIsValidASF(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_ASF;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_ASF;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
+
+ case MMFILE_EXT_WMA:
+ if (MMFileFormatIsValidWMA(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_WMA;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_WMA;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
+
+ case MMFILE_EXT_WMV:
+ if (MMFileFormatIsValidWMV(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_WMV;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_WMV;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
+
+ case MMFILE_EXT_OGG:
+ if (MMFileFormatIsValidOGG(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_OGG;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_OGG;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
+
+ case MMFILE_EXT_MKV:
+ case MMFILE_EXT_MKA:
+ if (MMFileFormatIsValidMatroska(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_MATROSKA;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_MATROSKA;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
+
+ case MMFILE_EXT_MOV:
+ if (MMFileFormatIsValidMP4(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_QT;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_QT;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
- ///////////////////////////////////////////////////////////////////////
- // Check File format //
- ///////////////////////////////////////////////////////////////////////
+ case MMFILE_EXT_FLAC:
+ if (MMFileFormatIsValidFLAC(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_FLAC;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_FLAC;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
+
+ case MMFILE_EXT_FLV:
+ if (MMFileFormatIsValidFLV(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_FLV;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_FLV;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("Get codec type of [%s].\n", extansion_name);
- #endif
+ case MMFILE_EXT_RM:
+ case MMFILE_EXT_RMVB:
+ if (MMFileFormatIsValidREAL(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_REAL;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_REAL;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
- if (strcasecmp (extansion_name, "mp4") == 0 ||
- strcasecmp (extansion_name, "mpeg4") == 0 ||
- strcasecmp (extansion_name, "m4a") == 0 ||
- strcasecmp (extansion_name, "mpg") == 0 ||
- strcasecmp (extansion_name, "mpg4") == 0 ||
- strcasecmp (extansion_name, "m4v") == 0 ) {
-
- if (MMFileFormatIsValidMP4 (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_MP4;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_MP4;
- goto PROBE_PROPER_FILE_TYPE;
+ case MMFILE_EXT_M2TS:
+ case MMFILE_EXT_MTS:
+ case MMFILE_EXT_TP:
+ case MMFILE_EXT_TS:
+ if (MMFileFormatIsValidMPEGTS(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_M2TS;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_M2TS;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
- } else if (strcasecmp (extansion_name, "3gp") == 0) {
- if (MMFileFormatIsValidMP4 (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_3GP;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_3GP;
- goto PROBE_PROPER_FILE_TYPE;
+ case MMFILE_EXT_MPEG:
+ if (MMFileFormatIsValidMPEGPS(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_M2PS;
+ goto FILE_FORMAT_SUCCESS;
+ } else if (MMFileFormatIsValidMPEGVIDEO(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_M1VIDEO;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_M2PS;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
- } else if (strcasecmp (extansion_name, "amr") == 0 ||
- strcasecmp (extansion_name, "awb") == 0) {
+ case MMFILE_EXT_AIF:
+ case MMFILE_EXT_AIFF:
+ *formatEnum = MM_FILE_FORMAT_AIFF;
+ goto FILE_FORMAT_SUCCESS;
+ break;
- if (MMFileFormatIsValidAMR (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_AMR;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_AMR;
- goto PROBE_PROPER_FILE_TYPE;
-
- } else if (strcasecmp (extansion_name, "wav") == 0) {
- if (MMFileFormatIsValidWAV (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_WAV;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_WAV;
- goto PROBE_PROPER_FILE_TYPE;
-
- } else if (strcasecmp (extansion_name, "mid") == 0 ||
- strcasecmp (extansion_name, "midi") == 0 ||
- strcasecmp (extansion_name, "spm") == 0 ) {
-
- if (MMFileFormatIsValidMID (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_MID;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_MID;
- goto PROBE_PROPER_FILE_TYPE;
-
- } else if (strcasecmp (extansion_name, "mp3") == 0) {
- if (MMFileFormatIsValidMP3 (*urifilename,5)) {
- *formatEnum = MM_FILE_FORMAT_MP3;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_MP3;
- goto PROBE_PROPER_FILE_TYPE;
-
- } else if (strcasecmp (extansion_name, "aac") == 0) {
- if (MMFileFormatIsValidAAC (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_AAC;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_AAC;
- goto PROBE_PROPER_FILE_TYPE;
-
- } else if (strcasecmp (extansion_name, "xmf") == 0 ||
- strcasecmp (extansion_name, "mxmf") == 0) {
- if (MMFileFormatIsValidMID (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_MID;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_MID;
- goto PROBE_PROPER_FILE_TYPE;
-
- } else if (!strcasecmp (extansion_name, "mmf") ||
- !strcasecmp (extansion_name, "ma2")) {
- if (MMFileFormatIsValidMMF (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_MMF;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_MMF;
- goto PROBE_PROPER_FILE_TYPE;
-
- } else if (strcasecmp (extansion_name, "imy") == 0) {
- if (MMFileFormatIsValidIMY (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_IMELODY;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_IMELODY;
- goto PROBE_PROPER_FILE_TYPE;
-
- } else if (strcasecmp (extansion_name, "avi") == 0) {
- if (MMFileFormatIsValidAVI (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_AVI;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_AVI;
- goto PROBE_PROPER_FILE_TYPE;
- } else if (strcasecmp (extansion_name, "divx") == 0) {
- if (MMFileFormatIsValidAVI (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_DIVX;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_DIVX;
- goto PROBE_PROPER_FILE_TYPE;
-
- } else if (strcasecmp (extansion_name, "asf") == 0 ||
- strcasecmp (extansion_name, "asx") == 0 ) {
- if (MMFileFormatIsValidASF (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_ASF;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_ASF;
- goto PROBE_PROPER_FILE_TYPE;
-
- } else if (strcasecmp (extansion_name, "wma") == 0) {
- if (MMFileFormatIsValidWMA (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_WMA;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_WMA;
- goto PROBE_PROPER_FILE_TYPE;
-
- } else if (strcasecmp (extansion_name, "wmv") == 0) {
- if (MMFileFormatIsValidWMV (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_WMV;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_WMV;
- goto PROBE_PROPER_FILE_TYPE;
-
- } else if (strcasecmp (extansion_name, "ogg") == 0) {
- if (MMFileFormatIsValidOGG (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_OGG;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_OGG;
- goto PROBE_PROPER_FILE_TYPE;
- } else if (strcasecmp (extansion_name, "mkv") == 0 ||
- strcasecmp (extansion_name, "mka") == 0) {
- if (MMFileFormatIsValidMatroska (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_MATROSKA;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_MATROSKA;
- goto PROBE_PROPER_FILE_TYPE;
- } else if (strcasecmp (extansion_name, "mov") == 0) {
- if (MMFileFormatIsValidMP4 (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_QT;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_QT;
- goto PROBE_PROPER_FILE_TYPE;
- } else if (strcasecmp (extansion_name, "flac") == 0) {
- if (MMFileFormatIsValidFLAC (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_FLAC;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_FLAC;
- goto PROBE_PROPER_FILE_TYPE;
- } else if (strcasecmp (extansion_name, "flv") == 0) {
- if (MMFileFormatIsValidFLV (*urifilename)) {
- *formatEnum = MM_FILE_FORMAT_FLV;
- return MMFILE_FORMAT_SUCCESS;
- }
- skip_index = MM_FILE_FORMAT_FLV;
- goto PROBE_PROPER_FILE_TYPE;
- } else {
- debug_warning ("probe file type=%s\n", fileName);
- skip_index = -1;
- goto PROBE_PROPER_FILE_TYPE;
+ default:
+ debug_warning("probe file type=%s\n", fileName);
+ skip_index = -1;
+ goto PROBE_PROPER_FILE_TYPE;
+ break;
}
} else if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) {
- char tempURIBuffer[MMFILE_URI_MAX_LEN] = {0,};
+ char tempURIBuffer[MMFILE_URI_MAX_LEN] = {0, };
- sprintf (tempURIBuffer, "%s%u:%u", MMFILE_MEM_URI, (unsigned int)fileSrc->memory.ptr, fileSrc->memory.size);
- *urifilename = mmfile_strdup (tempURIBuffer);
+ snprintf(tempURIBuffer, MMFILE_URI_MAX_LEN, "%s%u:%u", MMFILE_MEM_URI, (unsigned int)fileSrc->memory.ptr, fileSrc->memory.size);
+ *urifilename = mmfile_strdup(tempURIBuffer);
if (!*urifilename) {
- debug_error ("error: uri is NULL\n");
- return MMFILE_FORMAT_FAIL;
+ debug_error("error: uri is NULL\n");
+ goto FILE_FORMAT_FAIL;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("uri: %s\n", *urifilename);
- #endif
+ ret = mmfile_open(&fp, *urifilename, MMFILE_RDONLY);
+
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto FILE_FORMAT_FAIL;
+ }
+
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("uri: %s\n", *urifilename);
+#endif
switch (fileSrc->memory.format) {
case MM_FILE_FORMAT_3GP: {
- if (MMFileFormatIsValidMP4 (*urifilename)) {
+ if (MMFileFormatIsValidMP4(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_3GP;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_3GP;
goto PROBE_PROPER_FILE_TYPE;
@@ -400,9 +507,9 @@ _PreprocessFile (MMFileSourceType *fileSrc, char **urifilename, int *formatEnum,
}
case MM_FILE_FORMAT_MP4: {
- if (MMFileFormatIsValidMP4 (*urifilename)) {
+ if (MMFileFormatIsValidMP4(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_MP4;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_MP4;
goto PROBE_PROPER_FILE_TYPE;
@@ -410,9 +517,9 @@ _PreprocessFile (MMFileSourceType *fileSrc, char **urifilename, int *formatEnum,
}
case MM_FILE_FORMAT_AMR: {
- if (MMFileFormatIsValidAMR (*urifilename)) {
+ if (MMFileFormatIsValidAMR(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_AMR;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_AMR;
goto PROBE_PROPER_FILE_TYPE;
@@ -420,9 +527,9 @@ _PreprocessFile (MMFileSourceType *fileSrc, char **urifilename, int *formatEnum,
}
case MM_FILE_FORMAT_WAV: {
- if (MMFileFormatIsValidWAV (*urifilename)) {
+ if (MMFileFormatIsValidWAV(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_WAV;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_WAV;
goto PROBE_PROPER_FILE_TYPE;
@@ -430,9 +537,9 @@ _PreprocessFile (MMFileSourceType *fileSrc, char **urifilename, int *formatEnum,
}
case MM_FILE_FORMAT_MID: {
- if (MMFileFormatIsValidMID (*urifilename)) {
+ if (MMFileFormatIsValidMID(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_MID;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_MID;
goto PROBE_PROPER_FILE_TYPE;
@@ -440,9 +547,9 @@ _PreprocessFile (MMFileSourceType *fileSrc, char **urifilename, int *formatEnum,
}
case MM_FILE_FORMAT_MP3: {
- if (MMFileFormatIsValidMP3 (*urifilename,5)) {
+ if (MMFileFormatIsValidMP3(fp, NULL, 5)) {
*formatEnum = MM_FILE_FORMAT_MP3;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_MP3;
goto PROBE_PROPER_FILE_TYPE;
@@ -450,9 +557,9 @@ _PreprocessFile (MMFileSourceType *fileSrc, char **urifilename, int *formatEnum,
}
case MM_FILE_FORMAT_AAC: {
- if (MMFileFormatIsValidAAC (*urifilename)) {
+ if (MMFileFormatIsValidAAC(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_AAC;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_AAC;
goto PROBE_PROPER_FILE_TYPE;
@@ -460,9 +567,9 @@ _PreprocessFile (MMFileSourceType *fileSrc, char **urifilename, int *formatEnum,
}
case MM_FILE_FORMAT_MMF: {
- if (MMFileFormatIsValidMMF (*urifilename)) {
+ if (MMFileFormatIsValidMMF(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_MMF;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_MMF;
goto PROBE_PROPER_FILE_TYPE;
@@ -470,9 +577,9 @@ _PreprocessFile (MMFileSourceType *fileSrc, char **urifilename, int *formatEnum,
}
case MM_FILE_FORMAT_IMELODY: {
- if (MMFileFormatIsValidIMY (*urifilename)) {
+ if (MMFileFormatIsValidIMY(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_IMELODY;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_IMELODY;
goto PROBE_PROPER_FILE_TYPE;
@@ -480,9 +587,9 @@ _PreprocessFile (MMFileSourceType *fileSrc, char **urifilename, int *formatEnum,
}
case MM_FILE_FORMAT_AVI: {
- if (MMFileFormatIsValidAVI (*urifilename)) {
+ if (MMFileFormatIsValidAVI(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_AVI;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_AVI;
goto PROBE_PROPER_FILE_TYPE;
@@ -490,9 +597,9 @@ _PreprocessFile (MMFileSourceType *fileSrc, char **urifilename, int *formatEnum,
}
case MM_FILE_FORMAT_DIVX: {
- if (MMFileFormatIsValidAVI (*urifilename)) {
+ if (MMFileFormatIsValidAVI(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_DIVX;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_DIVX;
goto PROBE_PROPER_FILE_TYPE;
@@ -500,9 +607,9 @@ _PreprocessFile (MMFileSourceType *fileSrc, char **urifilename, int *formatEnum,
}
case MM_FILE_FORMAT_ASF: {
- if (MMFileFormatIsValidASF (*urifilename)) {
+ if (MMFileFormatIsValidASF(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_ASF;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_ASF;
goto PROBE_PROPER_FILE_TYPE;
@@ -510,9 +617,9 @@ _PreprocessFile (MMFileSourceType *fileSrc, char **urifilename, int *formatEnum,
}
case MM_FILE_FORMAT_WMA: {
- if (MMFileFormatIsValidWMA (*urifilename)) {
+ if (MMFileFormatIsValidWMA(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_WMA;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_WMA;
goto PROBE_PROPER_FILE_TYPE;
@@ -520,9 +627,9 @@ _PreprocessFile (MMFileSourceType *fileSrc, char **urifilename, int *formatEnum,
}
case MM_FILE_FORMAT_WMV: {
- if (MMFileFormatIsValidWMV (*urifilename)) {
+ if (MMFileFormatIsValidWMV(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_WMV;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_WMV;
goto PROBE_PROPER_FILE_TYPE;
@@ -530,60 +637,105 @@ _PreprocessFile (MMFileSourceType *fileSrc, char **urifilename, int *formatEnum,
}
case MM_FILE_FORMAT_OGG: {
- if (MMFileFormatIsValidOGG (*urifilename)) {
+ if (MMFileFormatIsValidOGG(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_OGG;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_OGG;
goto PROBE_PROPER_FILE_TYPE;
}
case MM_FILE_FORMAT_MATROSKA: {
- if (MMFileFormatIsValidMatroska (*urifilename)) {
+ if (MMFileFormatIsValidMatroska(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_MATROSKA;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_MATROSKA;
goto PROBE_PROPER_FILE_TYPE;
}
case MM_FILE_FORMAT_QT: {
- if (MMFileFormatIsValidMP4 (*urifilename)) {
+ if (MMFileFormatIsValidMP4(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_QT;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_QT;
goto PROBE_PROPER_FILE_TYPE;
}
case MM_FILE_FORMAT_FLAC: {
- if (MMFileFormatIsValidFLAC (*urifilename)) {
+ if (MMFileFormatIsValidFLAC(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_FLAC;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_FLAC;
goto PROBE_PROPER_FILE_TYPE;
}
case MM_FILE_FORMAT_FLV: {
- if (MMFileFormatIsValidFLV (*urifilename)) {
+ if (MMFileFormatIsValidFLV(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_FLV;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
skip_index = MM_FILE_FORMAT_FLV;
goto PROBE_PROPER_FILE_TYPE;
}
+ case MM_FILE_FORMAT_REAL: {
+ if (MMFileFormatIsValidREAL(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_REAL;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_REAL;
+ goto PROBE_PROPER_FILE_TYPE;
+ }
+
+ case MM_FILE_FORMAT_M2TS: {
+ if (MMFileFormatIsValidMPEGTS(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_M2TS;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_M2TS;
+ goto PROBE_PROPER_FILE_TYPE;
+ }
+
+ case MM_FILE_FORMAT_M2PS: {
+ if (MMFileFormatIsValidMPEGPS(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_M2PS;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_M2PS;
+ goto PROBE_PROPER_FILE_TYPE;
+ }
+
+ case MM_FILE_FORMAT_M1AUDIO: {
+ if (MMFileFormatIsValidMPEGAUDIO(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_M1AUDIO;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_M1AUDIO;
+ goto PROBE_PROPER_FILE_TYPE;
+ }
+
+ case MM_FILE_FORMAT_M1VIDEO: {
+ if (MMFileFormatIsValidMPEGVIDEO(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_M1VIDEO;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ skip_index = MM_FILE_FORMAT_M1VIDEO;
+ goto PROBE_PROPER_FILE_TYPE;
+ }
+
default: {
- debug_warning ("probe fileformat type=%d (%d: autoscan)\n", fileSrc->memory.format, MM_FILE_FORMAT_INVALID);
+ debug_warning("probe fileformat type=%d (%d: autoscan)\n", fileSrc->memory.format, MM_FILE_FORMAT_INVALID);
skip_index = -1;
goto PROBE_PROPER_FILE_TYPE;
break;
}
}
} else {
- debug_error ("error: invaild input type[memory|file]\n");
- return MMFILE_FORMAT_FAIL;
+ debug_error("error: invaild input type[memory|file]\n");
+ goto FILE_FORMAT_FAIL;
}
PROBE_PROPER_FILE_TYPE:
@@ -591,9 +743,9 @@ PROBE_PROPER_FILE_TYPE:
if (index == skip_index)
continue;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("search index = [%d]\n", index);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("search index = [%d]\n", index);
+#endif
switch (index) {
case MM_FILE_FORMAT_QT:
@@ -602,10 +754,10 @@ PROBE_PROPER_FILE_TYPE:
if (skip_index == MM_FILE_FORMAT_QT || skip_index == MM_FILE_FORMAT_3GP || skip_index == MM_FILE_FORMAT_MP4)
break;
- if (MMFileFormatIsValidMP4 (*urifilename)) {
+ if (MMFileFormatIsValidMP4(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_3GP;
if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_3GP;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
@@ -616,10 +768,10 @@ PROBE_PROPER_FILE_TYPE:
if (skip_index == MM_FILE_FORMAT_ASF || skip_index == MM_FILE_FORMAT_WMA || skip_index == MM_FILE_FORMAT_WMV)
break;
- if (MMFileFormatIsValidASF (*urifilename)) {
+ if (MMFileFormatIsValidASF(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_ASF;
if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_ASF;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
@@ -629,140 +781,194 @@ PROBE_PROPER_FILE_TYPE:
if (skip_index == MM_FILE_FORMAT_DIVX || skip_index == MM_FILE_FORMAT_AVI)
break;
- if (MMFileFormatIsValidAVI(*urifilename)) {
+ if (MMFileFormatIsValidAVI(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_AVI;
if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_AVI;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
case MM_FILE_FORMAT_OGG: {
- if (MMFileFormatIsValidOGG (*urifilename)) {
+ if (MMFileFormatIsValidOGG(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_OGG;
if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_OGG;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
case MM_FILE_FORMAT_AMR: {
- if (MMFileFormatIsValidAMR (*urifilename)) {
+ if (MMFileFormatIsValidAMR(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_AMR;
if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_AMR;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
case MM_FILE_FORMAT_AAC: {
- if (MMFileFormatIsValidAAC (*urifilename)) {
+ if (MMFileFormatIsValidAAC(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_AAC;
if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_AAC;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
case MM_FILE_FORMAT_MP3: {
- if (MMFileFormatIsValidMP3 (*urifilename,50)) {
+ if (MMFileFormatIsValidMP3(fp, NULL, 50)) {
*formatEnum = MM_FILE_FORMAT_MP3;
if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_MP3;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
case MM_FILE_FORMAT_WAV: {
- if (MMFileFormatIsValidWAV (*urifilename)) {
+ if (MMFileFormatIsValidWAV(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_WAV;
if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_WAV;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
case MM_FILE_FORMAT_MID: {
- if (MMFileFormatIsValidMID (*urifilename)) {
+ if (MMFileFormatIsValidMID(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_MID;
if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_MID;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
case MM_FILE_FORMAT_MMF: {
- if (MMFileFormatIsValidMMF (*urifilename)) {
+ if (MMFileFormatIsValidMMF(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_MMF;
if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_MMF;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
case MM_FILE_FORMAT_IMELODY: {
- if (MMFileFormatIsValidIMY (*urifilename)) {
+ if (MMFileFormatIsValidIMY(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_IMELODY;
if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_IMELODY;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
case MM_FILE_FORMAT_MATROSKA: {
- if (MMFileFormatIsValidMatroska (*urifilename)) {
+ if (MMFileFormatIsValidMatroska(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_MATROSKA;
if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_MATROSKA;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
case MM_FILE_FORMAT_FLAC: {
- if (MMFileFormatIsValidFLAC (*urifilename)) {
+ if (MMFileFormatIsValidFLAC(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_FLAC;
if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_FLAC;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
case MM_FILE_FORMAT_FLV: {
- if (MMFileFormatIsValidFLV (*urifilename)) {
+ if (MMFileFormatIsValidFLV(fp, NULL)) {
*formatEnum = MM_FILE_FORMAT_FLV;
if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_FLV;
- return MMFILE_FORMAT_SUCCESS;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ break;
+ }
+
+ case MM_FILE_FORMAT_REAL: {
+ if (MMFileFormatIsValidREAL(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_REAL;
+ if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_REAL;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ break;
+ }
+
+ case MM_FILE_FORMAT_M2TS: {
+ if (MMFileFormatIsValidMPEGTS(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_M2TS;
+ if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_M2TS;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ break;
+ }
+
+ case MM_FILE_FORMAT_M2PS: {
+ if (MMFileFormatIsValidMPEGPS(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_M2PS;
+ if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_M2PS;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ break;
+ }
+
+ case MM_FILE_FORMAT_M1AUDIO: {
+ if (MMFileFormatIsValidMPEGAUDIO(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_M1AUDIO;
+ if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_M1AUDIO;
+ goto FILE_FORMAT_SUCCESS;
+ }
+ break;
+ }
+
+ case MM_FILE_FORMAT_M1VIDEO: {
+ if (MMFileFormatIsValidMPEGVIDEO(fp, NULL)) {
+ *formatEnum = MM_FILE_FORMAT_M1VIDEO;
+ if (fileSrc->type == MM_FILE_SRC_TYPE_MEMORY) fileSrc->memory.format = MM_FILE_FORMAT_M1VIDEO;
+ goto FILE_FORMAT_SUCCESS;
}
break;
}
/* not supported file */
case MM_FILE_FORMAT_NUT:
- case MM_FILE_FORMAT_REAL:
case MM_FILE_FORMAT_AIFF:
case MM_FILE_FORMAT_AU:
case MM_FILE_FORMAT_VOB:
case MM_FILE_FORMAT_JPG:
- break;
default: {
- debug_error ("error: invaild format enum[%d]\n", index);
+ debug_error("error: invaild format enum[%d]\n", index);
break;
}
}
}
+FILE_FORMAT_FAIL:
if (index == MM_FILE_FORMAT_NUM)
debug_error("Can't probe file type\n");
*formatEnum = -1;
+
+ if (fp)
+ mmfile_close(fp);
+
return MMFILE_FORMAT_FAIL;
+
+FILE_FORMAT_SUCCESS:
+ if (fp)
+ mmfile_close(fp);
+
+ return MMFILE_FORMAT_SUCCESS;
}
-static int _mmfile_format_close (MMFileFormatContext *formatContext, bool clean_all)
+static int _mmfile_format_close(MMFileFormatContext *formatContext, bool clean_all)
{
if (NULL == formatContext) {
- debug_error ("error: invalid params\n");
+ debug_error("error: invalid params\n");
return MMFILE_FORMAT_FAIL;
}
@@ -774,33 +980,33 @@ static int _mmfile_format_close (MMFileFormatContext *formatContext, bool clean_
_CleanupFrameContext(formatContext, clean_all);
if (formatContext)
- mmfile_free (formatContext);
+ mmfile_free(formatContext);
return MMFILE_FORMAT_SUCCESS;
}
EXPORT_API
-int mmfile_format_open (MMFileFormatContext **formatContext, MMFileSourceType *fileSrc)
+int mmfile_format_open(MMFileFormatContext **formatContext, MMFileSourceType *fileSrc)
{
int index = 0;
int ret = 0;
MMFileFormatContext *formatObject = NULL;
if (NULL == fileSrc) {
- debug_error ("error: invalid params\n");
+ debug_error("error: invalid params\n");
return MMFILE_FORMAT_FAIL;
}
/* create formatContext object */
- formatObject = mmfile_malloc (sizeof (MMFileFormatContext));
+ formatObject = mmfile_malloc(sizeof(MMFileFormatContext));
if (NULL == formatObject) {
- debug_error ("error: mmfile_malloc fail for formatObject\n");
+ debug_error("error: mmfile_malloc fail for formatObject\n");
*formatContext = NULL;
return MMFILE_FORMAT_FAIL;
}
- memset (formatObject, 0x00, sizeof (MMFileFormatContext));
+ memset(formatObject, 0x00, sizeof(MMFileFormatContext));
mmfile_register_io_all();
@@ -812,9 +1018,9 @@ int mmfile_format_open (MMFileFormatContext **formatContext, MMFileSourceType *f
/**
* Format detect and validation check.
*/
- ret = _PreprocessFile (fileSrc, &formatObject->uriFileName, &formatObject->formatType, &formatObject->isdrm);
+ ret = _PreprocessFile(fileSrc, &formatObject->uriFileName, &formatObject->formatType);
if (MMFILE_FORMAT_SUCCESS != ret) {
- debug_error ("error: _PreprocessFile fail\n");
+ debug_error("error: _PreprocessFile fail\n");
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
@@ -825,16 +1031,16 @@ int mmfile_format_open (MMFileFormatContext **formatContext, MMFileSourceType *f
* Open format function.
*/
if (NULL == MMFileOpenFunc[formatObject->formatType]) {
- debug_error ("error: Not implemented \n");
+ debug_error("error: Not implemented \n");
ret = MMFILE_FORMAT_FAIL;
goto find_valid_handler;
}
- ret = MMFileOpenFunc[formatObject->formatType] (formatObject);
+ ret = MMFileOpenFunc[formatObject->formatType](formatObject);
if (MMFILE_FORMAT_FAIL == ret) {
- debug_error ("error: Try other formats\n");
+ debug_error("error: Try other formats\n");
ret = MMFILE_FORMAT_FAIL;
-// goto find_valid_handler;
+/* goto find_valid_handler; */
goto exception;
}
@@ -844,9 +1050,9 @@ int mmfile_format_open (MMFileFormatContext **formatContext, MMFileSourceType *f
find_valid_handler:
formatObject->pre_checked = 0; /*do check file format*/
- for (index = 0; index < MM_FILE_FORMAT_NUM+1; index++) {
+ for (index = 0; index < MM_FILE_FORMAT_NUM + 1; index++) {
if (NULL == MMFileOpenFunc[index]) {
- debug_error ("error: Not implemented \n");
+ debug_error("error: Not implemented \n");
ret = MMFILE_FORMAT_FAIL;
continue;
}
@@ -854,9 +1060,9 @@ find_valid_handler:
if (formatObject->formatType == index)
continue;
- ret = MMFileOpenFunc[index] (formatObject);
+ ret = MMFileOpenFunc[index](formatObject);
if (MMFILE_FORMAT_FAIL == ret) {
-// _CleanupFrameContext (formatObject, true);
+/* _CleanupFrameContext(formatObject, true); */
continue;
}
@@ -866,8 +1072,8 @@ find_valid_handler:
formatObject->formatType = index;
if (index == MM_FILE_FORMAT_NUM + 1 && MMFILE_FORMAT_FAIL == ret) {
- debug_error ("can't find file format handler\n");
- _CleanupFrameContext (formatObject, true);
+ debug_error("can't find file format handler\n");
+ _CleanupFrameContext(formatObject, true);
ret = MMFILE_FORMAT_FAIL;
goto exception;
}
@@ -878,48 +1084,48 @@ find_valid_handler:
return MMFILE_FORMAT_SUCCESS;
exception:
- _mmfile_format_close (formatObject, true);
+ _mmfile_format_close(formatObject, true);
*formatContext = NULL;
return ret;
}
EXPORT_API
-int mmfile_format_read_stream (MMFileFormatContext *formatContext)
+int mmfile_format_read_stream(MMFileFormatContext *formatContext)
{
if (NULL == formatContext || NULL == formatContext->ReadStream) {
- debug_error ("error: invalid params\n");
+ debug_error("error: invalid params\n");
return MMFILE_FORMAT_FAIL;
}
- return formatContext->ReadStream (formatContext);
+ return formatContext->ReadStream(formatContext);
}
EXPORT_API
-int mmfile_format_read_frame (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame)
+int mmfile_format_read_frame(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame)
{
- if (NULL == formatContext || NULL == frame || NULL == formatContext->ReadFrame ) {
- debug_error ("error: invalid params\n");
+ if (NULL == formatContext || NULL == frame || NULL == formatContext->ReadFrame) {
+ debug_error("error: invalid params\n");
return MMFILE_FORMAT_FAIL;
}
- return formatContext->ReadFrame (formatContext, timestamp, frame);
+ return formatContext->ReadFrame(formatContext, timestamp, frame);
}
EXPORT_API
-int mmfile_format_read_tag (MMFileFormatContext *formatContext)
+int mmfile_format_read_tag(MMFileFormatContext *formatContext)
{
if (NULL == formatContext || NULL == formatContext->ReadTag) {
- debug_error ("error: invalid params\n");
+ debug_error("error: invalid params\n");
return MMFILE_FORMAT_FAIL;
}
- return formatContext->ReadTag (formatContext);
+ return formatContext->ReadTag(formatContext);
}
EXPORT_API
-int mmfile_format_close (MMFileFormatContext *formatContext)
+int mmfile_format_close(MMFileFormatContext *formatContext)
{
return _mmfile_format_close(formatContext, false);
}
diff --git a/include/mm_file.h b/include/mm_file.h
index f752690..c7f8771 100755
--- a/include/mm_file.h
+++ b/include/mm_file.h
@@ -127,7 +127,7 @@ MMHandleType tag_attrs = NULL;
mm_file_create_tag_attrs(&tag_attrs, filename);
// get attributes of tag
-ret = mm_file_get_attrs( tag_attrs,
+ret = mm_file_get_attrs(tag_attrs,
&err_attr_name,
MM_FILE_TAG_ARTIST, &ctag.artist.value.s_val, &ctag.artist.len,
MM_FILE_TAG_ALBUM, &ctag.album.value.s_val, &ctag.album.len,
@@ -148,7 +148,7 @@ mm_file_destroy_tag_attrs(tag_attrs);
* @endcode
*/
-int mm_file_create_tag_attrs(MMHandleType * tag_attrs, const char * filename);
+int mm_file_create_tag_attrs(MMHandleType *tag_attrs, const char *filename);
/**
* This function is to destory the tag attribute handle which is created by mm_file_create_tag_attrs().<BR>
@@ -171,7 +171,7 @@ MMHandleType tag_attrs = NULL;
mm_file_create_tag_attrs(&tag_attrs, filename);
// get attributes of tag
-ret = mm_file_get_attrs( tag_attrs,
+ret = mm_file_get_attrs(tag_attrs,
&err_attr_name,
MM_FILE_TAG_ARTIST, &ctag.artist.value.s_val, &ctag.artist.len,
MM_FILE_TAG_ALBUM, &ctag.album.value.s_val, &ctag.album.len,
@@ -194,23 +194,23 @@ mm_file_destroy_tag_attrs(tag_attrs);
*/
int mm_file_destroy_tag_attrs(MMHandleType tag_attrs);
- /**
- * This function is to create content attribute from media file.<BR>
- * Handle can be used to get actual content information by mm_file_get_attrs() after this function.<BR>
- * Handle should be destroyed using mm_file_destroy_content_attrs() after use.<BR>
- *
- * @param content_attrs [out] content attribute handle.
- * @param filename [in] file path.
- *
- * @return This function returns MM_ERROR_NONE on success, or negative value with error code.
- *
- * @remark Filename must be UTF-8 format.
- *
- * @pre File should be exists.
- * @post Handle is ready to use.
- * @see mm_file_destroy_content_attrs, mm_file_get_attrs
- * @par Example:
- * @code
+/**
+ * This function is to create content attribute from media file.<BR>
+ * Handle can be used to get actual content information by mm_file_get_attrs() after this function.<BR>
+ * Handle should be destroyed using mm_file_destroy_content_attrs() after use.<BR>
+ *
+ * @param content_attrs [out] content attribute handle.
+ * @param filename [in] file path.
+ *
+ * @return This function returns MM_ERROR_NONE on success, or negative value with error code.
+ *
+ * @remark Filename must be UTF-8 format.
+ *
+ * @pre File should be exists.
+ * @post Handle is ready to use.
+ * @see mm_file_destroy_content_attrs, mm_file_get_attrs
+ * @par Example:
+ * @code
#include <mm_file.h>
// get track info
@@ -267,8 +267,8 @@ if (video_track_num)
// Destory content handle
mm_file_destroy_content_attrs(content_attrs);
- * @endcode
- */
+ * @endcode
+ */
int mm_file_create_content_attrs(MMHandleType *content_attrs, const char *filename);
/**
@@ -447,7 +447,7 @@ int mm_file_get_attrs(MMHandleType attrs, char **err_attr_name, const char *firs
#include <mm_file.h>
// create tag handle from memory
-mm_file_create_tag_attrs_from_memory (&tag_attrs, data, size, MM_FILE_FORMAT_MP3);
+mm_file_create_tag_attrs_from_memory(&tag_attrs, data, size, MM_FILE_FORMAT_MP3);
// get audio artist & album tag
mm_file_get_attrs(tag_attrs,
@@ -484,7 +484,7 @@ int mm_file_create_tag_attrs_from_memory(MMHandleType *tag_attrs, const void *da
#include <mm_file.h>
// create content handle from memory
-mm_file_create_content_attrs_from_memory (&content_attrs, data, size, MM_FILE_FORMAT_MP3);
+mm_file_create_content_attrs_from_memory(&content_attrs, data, size, MM_FILE_FORMAT_MP3);
// get audio bit rate and sample rate
mm_file_get_attrs(content_attrs,
@@ -523,31 +523,31 @@ printf ("Testing mm_file_get_stream_info()....audio=%d, video=%d\n", audio_track
* @endcode
*/
-int mm_file_get_stream_info(const char* filename, int *audio_stream_num, int *video_stream_num);
-
- /**
- * This function is to get the content attributes without thumbnail from media file.<BR>
- * This function is almost same as mm_file_create_content_attrs() except extracting thumbnail feature.<BR>
- * As this function is not extracting thumbnail, this is faster than mm_file_create_content_attrs().
- *
- * @param content_attrs [out] content attribute handle.
- * @param filename [in] file path.
- *
- * @return This function returns MM_ERROR_NONE on success, or negative value with error code.
- *
- * @remark Filename must be UTF-8 format.
- *
- * @pre File should be exists.
- * @post Handle is ready to use.
- * @see mm_file_destroy_content_attrs, mm_file_get_attrs
- * @par Example::
- * @code
+int mm_file_get_stream_info(const char *filename, int *audio_stream_num, int *video_stream_num);
+
+/**
+ * This function is to get the content attributes without thumbnail from media file.<BR>
+ * This function is almost same as mm_file_create_content_attrs() except extracting thumbnail feature.<BR>
+ * As this function is not extracting thumbnail, this is faster than mm_file_create_content_attrs().
+ *
+ * @param content_attrs [out] content attribute handle.
+ * @param filename [in] file path.
+ *
+ * @return This function returns MM_ERROR_NONE on success, or negative value with error code.
+ *
+ * @remark Filename must be UTF-8 format.
+ *
+ * @pre File should be exists.
+ * @post Handle is ready to use.
+ * @see mm_file_destroy_content_attrs, mm_file_get_attrs
+ * @par Example::
+ * @code
#include <mm_file.h>
// create content handle
mm_file_create_content_attrs_simple(&content_attrs, filename);
-// get width,height information
+// get width, height information
mm_file_get_attrs(content_attrs,
NULL,
MM_FILE_CONTENT_VIDEO_WIDTH, &ccontent.video_w,
@@ -556,8 +556,8 @@ mm_file_get_attrs(content_attrs,
// Destory content handle
mm_file_destroy_content_attrs(content_attrs);
- * @endcode
- */
+ * @endcode
+ */
int mm_file_create_content_attrs_simple(MMHandleType *content_attrs, const char *filename);
int mm_file_create_content_attrs_safe(MMHandleType *content_attrs, const char *filename);
@@ -586,11 +586,11 @@ int mm_file_get_synclyrics_info(MMHandleType tag_attrs, int index, unsigned long
* @see metadata_extractor_create(), metadata_extractor_destroy()
*/
-int mm_file_get_video_frame(const char* path, double timestamp, bool is_accurate, unsigned char **frame, int *size, int *width, int *height);
+int mm_file_get_video_frame(const char *path, double timestamp, bool is_accurate, unsigned char **frame, int *size, int *width, int *height);
int mm_file_get_video_frame_from_memory(const void *data, unsigned int datasize, double timestamp, bool is_accurate, unsigned char **frame, int *size, int *width, int *height);
-int mm_file_check_uhqa(const char* filename, bool *is_uhqa);
+int mm_file_check_uhqa(const char *filename, bool *is_uhqa);
/**
@}
diff --git a/include/mm_file_codecs.h b/include/mm_file_codecs.h
index 5233336..f229900 100755
--- a/include/mm_file_codecs.h
+++ b/include/mm_file_codecs.h
@@ -34,40 +34,38 @@ extern "C" {
#define MMFILE_AUDIO_DECODE 1
-typedef struct _mmfileframe
-{
- unsigned int width;
- unsigned int height;
- unsigned int version;
- unsigned int configLen;
- unsigned int frameDataSize;
- unsigned char *frameData;
- void *configData;
+typedef struct _mmfileframe {
+ unsigned int width;
+ unsigned int height;
+ unsigned int version;
+ unsigned int configLen;
+ unsigned int frameDataSize;
+ unsigned char *frameData;
+ void *configData;
} MMFileCodecFrame;
typedef struct _mmfilecodecctx MMFileCodecContext;
-struct _mmfilecodecctx
-{
- /* MMFILE_AUDIO_DECODE or MMFILE_VIDEO_DECODE */
- int codecType;
- int codecId;
- int version;
+struct _mmfilecodecctx {
+ /* MMFILE_AUDIO_DECODE or MMFILE_VIDEO_DECODE */
+ int codecType;
+ int codecId;
+ int version;
- /* private data */
- void *privateData;
+ /* private data */
+ void *privateData;
- /* resource free */
- int (*Decode) (MMFileCodecContext*,MMFileCodecFrame*);
- int (*Close) (MMFileCodecContext*);
+ /* resource free */
+ int (*Decode)(MMFileCodecContext *, MMFileCodecFrame *);
+ int (*Close)(MMFileCodecContext *);
};
#ifndef __MMFILE_DYN_LOADING__
-int mmfile_codec_open (MMFileCodecContext **codecContext, int codecType, int codecId, MMFileCodecFrame *input);
-int mmfile_codec_decode (MMFileCodecContext *codecContext, MMFileCodecFrame *output);
-int mmfile_codec_close (MMFileCodecContext *codecContext);
-#endif
+int mmfile_codec_open(MMFileCodecContext **codecContext, int codecType, int codecId, MMFileCodecFrame *input);
+int mmfile_codec_decode(MMFileCodecContext *codecContext, MMFileCodecFrame *output);
+int mmfile_codec_close(MMFileCodecContext *codecContext);
+#endif
#ifdef __cplusplus
}
diff --git a/include/mm_file_debug.h b/include/mm_file_debug.h
new file mode 100755
index 0000000..bc5dc2b
--- /dev/null
+++ b/include/mm_file_debug.h
@@ -0,0 +1,106 @@
+/*
+ * libmm-fileinfo
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Haejeong Kim <backto.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef _MMFILE_DEBUG_H_
+#define _MMFILE_DEBUG_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <dlog.h>
+
+#ifdef LOG_TAG
+#undef LOG_TAG
+#endif
+
+#define LOG_TAG "MM_FILEINFO"
+
+/*#define LOG_COLOR */
+
+#ifdef LOG_COLOR
+#define FONT_COLOR_RESET "\033[0m"
+#define FONT_COLOR_RED "\033[31m"
+#define FONT_COLOR_GREEN "\033[32m"
+#define FONT_COLOR_YELLOW "\033[33m"
+#define FONT_COLOR_BLUE "\033[34m"
+#define FONT_COLOR_PURPLE "\033[35m"
+#define FONT_COLOR_CYAN "\033[36m"
+#define FONT_COLOR_GRAY "\033[37m"
+
+#define debug_log(fmt, arg...) do { \
+ LOGD(FONT_COLOR_RESET fmt, ##arg); \
+ } while (0)
+
+#define debug_msg(fmt, arg...) do { \
+ LOGD(FONT_COLOR_RESET fmt, ##arg); \
+ } while (0)
+
+#define debug_warning(fmt, arg...) do { \
+ LOGW(FONT_COLOR_GREEN fmt, ##arg); \
+ } while (0)
+
+#define debug_error(fmt, arg...) do { \
+ LOGE(FONT_COLOR_RED fmt, ##arg); \
+ } while (0)
+
+#define debug_fenter() do { \
+ LOGE(FONT_COLOR_RESET "<ENTER> \n"); \
+ } while (0)
+
+#define debug_fleave() do { \
+ LOGE(FONT_COLOR_RESET "<LEAVE> \n"); \
+ } while (0)
+
+#else
+
+#define debug_log(fmt, arg...) do { \
+ LOGD(" "fmt"", ##arg); \
+ } while (0)
+
+#define debug_msg(fmt, arg...) do { \
+ LOGD(" "fmt"", ##arg); \
+ } while (0)
+
+#define debug_warning(fmt, arg...) do { \
+ LOGW(" "fmt"", ##arg); \
+ } while (0)
+
+#define debug_error(fmt, arg...) do { \
+ LOGE(" "fmt"", ##arg); \
+ } while (0)
+
+#define debug_fenter() do { \
+ LOGE("<ENTER> \n"); \
+ } while (0)
+
+#define debug_fleave() do { \
+ LOGE("<LEAVE> \n"); \
+ } while (0)
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MMFILE_DEBUG_H_ */
+
diff --git a/include/mm_file_format_frame.h b/include/mm_file_format_frame.h
index 53a7af4..62c6b33 100755
--- a/include/mm_file_format_frame.h
+++ b/include/mm_file_format_frame.h
@@ -20,7 +20,7 @@
*/
#ifndef __MMFILE_DYN_LOADING__
-int mmfile_format_get_frame(const char* path, double timestamp, bool is_accurate, unsigned char **frame, int *size, int *width, int *height);
+int mmfile_format_get_frame(const char *path, double timestamp, bool is_accurate, unsigned char **frame, int *size, int *width, int *height);
int mmfile_format_get_frame_from_memory(const void *data, unsigned int datasize, double timestamp, bool is_accurate, unsigned char **frame, int *size, int *width, int *height);
#endif
diff --git a/include/mm_file_formats.h b/include/mm_file_formats.h
index fbf9028..273b023 100755
--- a/include/mm_file_formats.h
+++ b/include/mm_file_formats.h
@@ -35,17 +35,17 @@ extern "C" {
#define MMFILE_FORMAT_FAIL 0
-#define MM_FILE_SET_MEDIA_FILE_SRC(Media,Filename) do { \
- (Media).type = MM_FILE_SRC_TYPE_FILE; \
- (Media).file.path = ((strstr(Filename,"file://")!=NULL)? Filename+7:Filename); \
-} while (0);
+#define MM_FILE_SET_MEDIA_FILE_SRC(Media, Filename) do { \
+ (Media).type = MM_FILE_SRC_TYPE_FILE; \
+ (Media).file.path = ((strstr(Filename, "file://")!=NULL) ? Filename+7:Filename); \
+ } while (0);
-#define MM_FILE_SET_MEDIA_MEM_SRC(Media,Memory,Size,Format) do { \
- (Media).type = MM_FILE_SRC_TYPE_MEMORY; \
- (Media).memory.ptr = (Memory); \
- (Media).memory.size = (Size); \
- (Media).memory.format = (Format); \
-} while (0);
+#define MM_FILE_SET_MEDIA_MEM_SRC(Media, Memory, Size, Format) do { \
+ (Media).type = MM_FILE_SRC_TYPE_MEMORY; \
+ (Media).memory.ptr = (Memory); \
+ (Media).memory.size = (Size); \
+ (Media).memory.format = (Format); \
+ } while (0);
@@ -54,14 +54,6 @@ enum {
MM_FILE_SRC_TYPE_MEMORY,
};
-enum {
- MM_FILE_DRM_NONE = 0, /*not drm file*/
- MM_FILE_DRM_OMA, /*oma drm*/
- MM_FILE_DRM_DIVX, /*divx drm*/
- MM_FILE_DRM_PROTECTED, /*This is drm file but not oma or divx*/
-};
-
-
typedef struct _mm_file_source {
int type;
union {
@@ -118,7 +110,6 @@ struct _MMFileFormatContext {
/* contents information */
int duration; /* milliseconds */
int isseekable;
- int isdrm; /*drm type. see MM_FILE_DRM_XXX*/
int videoTotalTrackNum;
int audioTotalTrackNum;
int nbStreams;
@@ -165,18 +156,18 @@ struct _MMFileFormatContext {
void *privateCodecData;
/* function pointer */
- int (*ReadStream) (MMFileFormatContext*);
- int (*ReadFrame) (MMFileFormatContext*,unsigned int,MMFileFormatFrame*);
- int (*ReadTag) (MMFileFormatContext*);
- int (*Close) (MMFileFormatContext*);
+ int (*ReadStream)(MMFileFormatContext *);
+ int (*ReadFrame)(MMFileFormatContext *, unsigned int, MMFileFormatFrame *);
+ int (*ReadTag)(MMFileFormatContext *);
+ int (*Close)(MMFileFormatContext *);
};
#ifndef __MMFILE_DYN_LOADING__
-int mmfile_format_open (MMFileFormatContext **formatContext, MMFileSourceType *fileSrc);
-int mmfile_format_read_stream (MMFileFormatContext *formatContext);
-int mmfile_format_read_frame (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
-int mmfile_format_read_tag (MMFileFormatContext *formatContext);
-int mmfile_format_close (MMFileFormatContext *formatContext);
+int mmfile_format_open(MMFileFormatContext **formatContext, MMFileSourceType *fileSrc);
+int mmfile_format_read_stream(MMFileFormatContext *formatContext);
+int mmfile_format_read_frame(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
+int mmfile_format_read_tag(MMFileFormatContext *formatContext);
+int mmfile_format_close(MMFileFormatContext *formatContext);
#endif
#ifdef __cplusplus
diff --git a/mm-fileinfo.pc.in b/mm-fileinfo.pc.in
index d39e454..05dafd4 100644..100755
--- a/mm-fileinfo.pc.in
+++ b/mm-fileinfo.pc.in
@@ -5,7 +5,7 @@ includedir = @includedir@
Name : mm-fileinfo
Description : Multimedia Framework FileInfo Library
-Requires : mm-log mm-common glib-2.0
+Requires : dlog mm-common glib-2.0
Version : @VERSION@
Libs : -L${libdir} -lmmffile -lmmfile_utils
Cflags : -I${includedir}/mmf -D__MMFILE_DYN_LOADING__
diff --git a/mm_file.c b/mm_file.c
index 41d923b..59ea6c2 100755
--- a/mm_file.c
+++ b/mm_file.c
@@ -32,9 +32,9 @@
/* internal MM header files */
#include <mm_attrs_private.h>
-#include <mm_debug.h>
/* internal MM File headers */
+#include "mm_file_debug.h"
#include "mm_file_formats.h"
#include "mm_file_format_frame.h"
#include "mm_file_codecs.h"
@@ -43,13 +43,13 @@
#include <sys/time.h>
-//#define CHECK_TIME
+/*#define CHECK_TIME */
#ifdef CHECK_TIME
int64_t gettime(void)
{
struct timeval tv;
- gettimeofday(&tv,NULL);
+ gettimeofday(&tv, NULL);
return (int64_t)tv.tv_sec * 1000000 + tv.tv_usec;
}
#endif
@@ -99,80 +99,80 @@ typedef struct {
* global values.
*/
static mmf_attrs_construct_info_t g_tag_attrs[] = {
- {"tag-artist", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-title", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-album", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-album-artist", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-genre", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-author", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-copyright", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-date", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-description", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-comment", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-artwork", MMF_VALUE_TYPE_DATA, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-artwork-size", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
- {"tag-artwork-mime", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-track-num", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-classification", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-rating", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-longitude", MM_ATTRS_TYPE_DOUBLE, MM_ATTRS_FLAG_RW, (void *)0},
- {"tag-latitude", MM_ATTRS_TYPE_DOUBLE, MM_ATTRS_FLAG_RW, (void *)0},
- {"tag-altitude", MM_ATTRS_TYPE_DOUBLE, MM_ATTRS_FLAG_RW, (void *)0},
- {"tag-conductor", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-unsynclyrics", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-synclyrics-num", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
- {"tag-synclyrics", MMF_VALUE_TYPE_DATA, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-recdate", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-rotate", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"tag-cdis", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
- {"tag-smta", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"tag-artist", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-title", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-album", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-album-artist", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-genre", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-author", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-copyright", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-date", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-description", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-comment", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-artwork", MMF_VALUE_TYPE_DATA, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-artwork-size", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"tag-artwork-mime", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-track-num", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-classification", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-rating", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-longitude", MM_ATTRS_TYPE_DOUBLE, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"tag-latitude", MM_ATTRS_TYPE_DOUBLE, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"tag-altitude", MM_ATTRS_TYPE_DOUBLE, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"tag-conductor", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-unsynclyrics", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-synclyrics-num", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"tag-synclyrics", MMF_VALUE_TYPE_DATA, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-recdate", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-rotate", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"tag-cdis", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"tag-smta", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
};
static mmf_attrs_construct_info_t g_content_attrs[] = {
- {"content-duration", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
- {"content-video-codec", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
- {"content-video-bitrate", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
- {"content-video-fps", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
- {"content-video-width", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
- {"content-video-height", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
- {"content-video-thumbnail", MMF_VALUE_TYPE_DATA, MM_ATTRS_FLAG_RW, (void *)NULL},
- {"content-video-track-index", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
- {"content-video-track-count", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
- {"content-audio-codec", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
- {"content-audio-bitrate", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
- {"content-audio-channels", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
- {"content-audio-samplerate", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
- {"content-audio-track-index", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
- {"content-audio-track-count", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
- {"content-audio-bitpersample", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"content-duration", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"content-video-codec", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"content-video-bitrate", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"content-video-fps", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"content-video-width", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"content-video-height", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"content-video-thumbnail", MMF_VALUE_TYPE_DATA, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {(char *)"content-video-track-index", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"content-video-track-count", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"content-audio-codec", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"content-audio-bitrate", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"content-audio-channels", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"content-audio-samplerate", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"content-audio-track-index", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"content-audio-track-count", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
+ {(char *)"content-audio-bitpersample", MMF_VALUE_TYPE_INT, MM_ATTRS_FLAG_RW, (void *)0},
};
#ifdef __MMFILE_DYN_LOADING__
#define MMFILE_FORMAT_SO_FILE_NAME "libmmfile_formats.so"
#define MMFILE_CODEC_SO_FILE_NAME "libmmfile_codecs.so"
-int (*mmfile_format_open) (MMFileFormatContext **formatContext, MMFileSourceType *fileSrc);
-int (*mmfile_format_read_stream) (MMFileFormatContext *formatContext);
-int (*mmfile_format_read_frame) (MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
-int (*mmfile_format_read_tag) (MMFileFormatContext *formatContext);
-int (*mmfile_format_close) (MMFileFormatContext *formatContext);
-int (*mmfile_codec_open) (MMFileCodecContext **codecContext, int codecType, int codecId, MMFileCodecFrame *input);
-int (*mmfile_codec_decode) (MMFileCodecContext *codecContext, MMFileCodecFrame *output);
-int (*mmfile_codec_close) (MMFileCodecContext *codecContext);
-int (*mmfile_format_get_frame) (const char* path, double timestamp, bool is_accurate, unsigned char **frame, int *size, int *width, int *height);
-int (*mmfile_format_get_frame_from_memory) (const void *data, unsigned int datasize, double timestamp, bool is_accurate, unsigned char **frame, int *size, int *width, int *height);
+int (*mmfile_format_open)(MMFileFormatContext **formatContext, MMFileSourceType *fileSrc);
+int (*mmfile_format_read_stream)(MMFileFormatContext *formatContext);
+int (*mmfile_format_read_frame)(MMFileFormatContext *formatContext, unsigned int timestamp, MMFileFormatFrame *frame);
+int (*mmfile_format_read_tag)(MMFileFormatContext *formatContext);
+int (*mmfile_format_close)(MMFileFormatContext *formatContext);
+int (*mmfile_codec_open)(MMFileCodecContext **codecContext, int codecType, int codecId, MMFileCodecFrame *input);
+int (*mmfile_codec_decode)(MMFileCodecContext *codecContext, MMFileCodecFrame *output);
+int (*mmfile_codec_close)(MMFileCodecContext *codecContext);
+int (*mmfile_format_get_frame)(const char *path, double timestamp, bool is_accurate, unsigned char **frame, int *size, int *width, int *height);
+int (*mmfile_format_get_frame_from_memory)(const void *data, unsigned int datasize, double timestamp, bool is_accurate, unsigned char **frame, int *size, int *width, int *height);
#endif
#ifdef __MMFILE_DYN_LOADING__
-static int _load_dynamic_functions (MMFILE_FUNC_HANDLE* pHandle)
+static int _load_dynamic_functions(MMFILE_FUNC_HANDLE *pHandle)
{
-// static int dll_func_initialized = 0; //disabled
+/* static int dll_func_initialized = 0; //disabled */
int ret = 0;
/* Get from function argument */
void *formatFuncHandle = NULL;
- void *codecFuncHandle = NULL;
+ void *codecFuncHandle = NULL;
/* disabled
if (dll_func_initialized) {
@@ -180,54 +180,54 @@ static int _load_dynamic_functions (MMFILE_FUNC_HANDLE* pHandle)
}
*/
- formatFuncHandle = dlopen (MMFILE_FORMAT_SO_FILE_NAME, RTLD_LAZY);
+ formatFuncHandle = dlopen(MMFILE_FORMAT_SO_FILE_NAME, RTLD_LAZY);
if (!formatFuncHandle) {
- debug_error ("error: %s\n", dlerror());
+ debug_error("error: %s\n", "libmmfile_formats.so open error");
ret = 0;
goto exception;
}
- mmfile_format_open = dlsym (formatFuncHandle, "mmfile_format_open");
- mmfile_format_read_stream = dlsym (formatFuncHandle, "mmfile_format_read_stream");
- mmfile_format_read_frame = dlsym (formatFuncHandle, "mmfile_format_read_frame");
- mmfile_format_read_tag = dlsym (formatFuncHandle, "mmfile_format_read_tag");
- mmfile_format_close = dlsym (formatFuncHandle, "mmfile_format_close");
+ mmfile_format_open = dlsym(formatFuncHandle, "mmfile_format_open");
+ mmfile_format_read_stream = dlsym(formatFuncHandle, "mmfile_format_read_stream");
+ mmfile_format_read_frame = dlsym(formatFuncHandle, "mmfile_format_read_frame");
+ mmfile_format_read_tag = dlsym(formatFuncHandle, "mmfile_format_read_tag");
+ mmfile_format_close = dlsym(formatFuncHandle, "mmfile_format_close");
- if ( !mmfile_format_open ||
- !mmfile_format_read_stream ||
- !mmfile_format_read_frame ||
- !mmfile_format_read_tag ||
- !mmfile_format_close) {
+ if (!mmfile_format_open ||
+ !mmfile_format_read_stream ||
+ !mmfile_format_read_frame ||
+ !mmfile_format_read_tag ||
+ !mmfile_format_close) {
- debug_error ("error: %s\n", dlerror());
+ debug_error("error: %s\n", "format function load error");
ret = 0;
goto exception;
}
/*closed at app termination.*/
- //dlclose (formatFuncHandle);
+ /*dlclose (formatFuncHandle); */
- codecFuncHandle = dlopen (MMFILE_CODEC_SO_FILE_NAME, RTLD_LAZY | RTLD_GLOBAL);
+ codecFuncHandle = dlopen(MMFILE_CODEC_SO_FILE_NAME, RTLD_LAZY | RTLD_GLOBAL);
if (!codecFuncHandle) {
- debug_error ("error: %s\n", dlerror());
+ debug_error("error: %s\n", "libmmfile_codecs.so open error");
ret = 0;
goto exception;
}
- mmfile_codec_open = dlsym (codecFuncHandle, "mmfile_codec_open");
- mmfile_codec_decode = dlsym (codecFuncHandle, "mmfile_codec_decode");
- mmfile_codec_close = dlsym (codecFuncHandle, "mmfile_codec_close");
+ mmfile_codec_open = dlsym(codecFuncHandle, "mmfile_codec_open");
+ mmfile_codec_decode = dlsym(codecFuncHandle, "mmfile_codec_decode");
+ mmfile_codec_close = dlsym(codecFuncHandle, "mmfile_codec_close");
- if ( !mmfile_codec_open || !mmfile_codec_decode || !mmfile_codec_close) {
- debug_error ("error: %s\n", dlerror());
+ if (!mmfile_codec_open || !mmfile_codec_decode || !mmfile_codec_close) {
+ debug_error("error: %s\n", "codec function load error");
ret = 0;
goto exception;
}
/*closed at app termination.*/
- //dlclose (codecFuncHandle);
+ /*dlclose (codecFuncHandle); */
-// dll_func_initialized = 1; // disabled
+/* dll_func_initialized = 1; // disabled */
pHandle->codecFuncHandle = codecFuncHandle;
pHandle->formatFuncHandle = formatFuncHandle;
@@ -235,27 +235,25 @@ static int _load_dynamic_functions (MMFILE_FUNC_HANDLE* pHandle)
return 1;
exception:
- if (formatFuncHandle) dlclose (formatFuncHandle);
- if (codecFuncHandle) dlclose (codecFuncHandle);
+ if (formatFuncHandle) dlclose(formatFuncHandle);
+ if (codecFuncHandle) dlclose(codecFuncHandle);
return ret;
}
-static void _unload_dynamic_functions (MMFILE_FUNC_HANDLE* pHandle)
+static void _unload_dynamic_functions(MMFILE_FUNC_HANDLE *pHandle)
{
#ifdef __MMFILE_TEST_MODE__
debug_fenter();
#endif
- if (pHandle->formatFuncHandle)
- {
- dlclose (pHandle->formatFuncHandle);
+ if (pHandle->formatFuncHandle) {
+ dlclose(pHandle->formatFuncHandle);
}
- if (pHandle->codecFuncHandle)
- {
- dlclose (pHandle->codecFuncHandle);
+ if (pHandle->codecFuncHandle) {
+ dlclose(pHandle->codecFuncHandle);
}
-
+
#ifdef __MMFILE_TEST_MODE__
debug_fleave();
#endif
@@ -268,32 +266,31 @@ static void _unload_dynamic_functions (MMFILE_FUNC_HANDLE* pHandle)
* local functions.
*/
static int
-_is_file_exist (const char *filename)
+_is_file_exist(const char *filename)
{
int ret = 1;
if (filename) {
- const char* to_access = (strstr(filename,"file://")!=NULL)? filename+7:filename;
- ret = access (to_access, R_OK );
+ const char *to_access = (strstr(filename, "file://") != NULL) ? filename + 7 : filename;
+ ret = access(to_access, R_OK);
if (ret != 0) {
- debug_error ("file [%s] not found.\n", to_access);
+ debug_error("file [%s] not found.\n", to_access);
}
}
return !ret;
}
static int
-_info_set_attr_media (mmf_attrs_t *attrs, MMFileFormatContext *formatContext)
+_info_set_attr_media(mmf_attrs_t *attrs, MMFileFormatContext *formatContext)
{
int ret = 0;
MMHandleType hattrs = CAST_MM_HANDLE(attrs);
- if (formatContext->commandType == MM_FILE_TAG)
- {
+ if (formatContext->commandType == MM_FILE_TAG) {
if (formatContext->title) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_TITLE, formatContext->title);
if (formatContext->artist) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_ARTIST, formatContext->artist);
if (formatContext->author) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_AUTHOR, formatContext->author);
- if (formatContext->composer && formatContext->author == NULL)
- mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_AUTHOR, formatContext->composer);
+ if (formatContext->composer && formatContext->author == NULL)
+ mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_AUTHOR, formatContext->composer);
if (formatContext->album) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_ALBUM, formatContext->album);
if (formatContext->album_artist) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_ALBUM_ARTIST, formatContext->album_artist);
if (formatContext->copyright) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_COPYRIGHT, formatContext->copyright);
@@ -301,146 +298,142 @@ _info_set_attr_media (mmf_attrs_t *attrs, MMFileFormatContext *formatContext)
if (formatContext->comment) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_COMMENT, formatContext->comment);
if (formatContext->genre) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_GENRE, formatContext->genre);
if (formatContext->classification) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_CLASSIFICATION, formatContext->classification);
- if (formatContext->year) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_DATE, formatContext->year);
- if (formatContext->tagTrackNum) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_TRACK_NUM, formatContext->tagTrackNum);
+ if (formatContext->year) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_DATE, formatContext->year);
+ if (formatContext->tagTrackNum) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_TRACK_NUM, formatContext->tagTrackNum);
if (formatContext->rating) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_RATING, formatContext->rating);
if (formatContext->conductor) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_CONDUCTOR, formatContext->conductor);
if (formatContext->recDate) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_RECDATE, formatContext->recDate);
if (formatContext->rotate) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_ROTATE, formatContext->rotate);
- mm_attrs_set_double_by_name(hattrs, MM_FILE_TAG_LONGITUDE, formatContext->longitude);
- mm_attrs_set_double_by_name(hattrs, MM_FILE_TAG_LATIDUE, formatContext->latitude);
- mm_attrs_set_double_by_name(hattrs, MM_FILE_TAG_ALTIDUE, formatContext->altitude);
- mm_attrs_set_int_by_name(hattrs, MM_FILE_TAG_SYNCLYRICS_NUM, formatContext->syncLyricsNum);
- mm_attrs_set_int_by_name(hattrs, MM_FILE_TAG_CDIS, formatContext->cdis);
- mm_attrs_set_int_by_name(hattrs, MM_FILE_TAG_SMTA, formatContext->smta);
+ mm_attrs_set_double_by_name(hattrs, MM_FILE_TAG_LONGITUDE, formatContext->longitude);
+ mm_attrs_set_double_by_name(hattrs, MM_FILE_TAG_LATIDUE, formatContext->latitude);
+ mm_attrs_set_double_by_name(hattrs, MM_FILE_TAG_ALTIDUE, formatContext->altitude);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_TAG_SYNCLYRICS_NUM, formatContext->syncLyricsNum);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_TAG_CDIS, formatContext->cdis);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_TAG_SMTA, formatContext->smta);
if ((formatContext->syncLyricsNum > 0) && (formatContext->syncLyrics))
- mm_attrs_set_data_by_name (hattrs, MM_FILE_TAG_SYNCLYRICS, formatContext->syncLyrics, formatContext->syncLyricsNum);
+ mm_attrs_set_data_by_name(hattrs, MM_FILE_TAG_SYNCLYRICS, formatContext->syncLyrics, formatContext->syncLyricsNum);
if (formatContext->unsyncLyrics) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_UNSYNCLYRICS, formatContext->unsyncLyrics);
-
+
if (formatContext->artwork && formatContext->artworkSize > 0) {
void *artworkCopy = NULL;
- artworkCopy = mmfile_malloc ((formatContext->artworkSize));
- if ( NULL != artworkCopy ) {
- memcpy (artworkCopy, formatContext->artwork, formatContext->artworkSize);
- mm_attrs_set_data_by_name (hattrs, MM_FILE_TAG_ARTWORK,artworkCopy, formatContext->artworkSize);
- mm_attrs_set_int_by_name (hattrs, MM_FILE_TAG_ARTWORK_SIZE, formatContext->artworkSize);
+ artworkCopy = mmfile_malloc((formatContext->artworkSize));
+ if (NULL != artworkCopy) {
+ memcpy(artworkCopy, formatContext->artwork, formatContext->artworkSize);
+ mm_attrs_set_data_by_name(hattrs, MM_FILE_TAG_ARTWORK, artworkCopy, formatContext->artworkSize);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_TAG_ARTWORK_SIZE, formatContext->artworkSize);
if (formatContext->artworkMime) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_ARTWORK_MIME, formatContext->artworkMime);
}
}
- }
- else if (formatContext->commandType == MM_FILE_CONTENTS)
- {
+ } else if (formatContext->commandType == MM_FILE_CONTENTS) {
/*get duration*/
- mm_attrs_set_int_by_name (hattrs, MM_FILE_CONTENT_DURATION, formatContext->duration);
- mm_attrs_set_int_by_name (hattrs, MM_FILE_CONTENT_AUDIO_TRACK_COUNT, formatContext->audioTotalTrackNum);
- mm_attrs_set_int_by_name (hattrs, MM_FILE_CONTENT_VIDEO_TRACK_COUNT, formatContext->videoTotalTrackNum);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_CONTENT_DURATION, formatContext->duration);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_CONTENT_AUDIO_TRACK_COUNT, formatContext->audioTotalTrackNum);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_CONTENT_VIDEO_TRACK_COUNT, formatContext->videoTotalTrackNum);
if (formatContext->videoTotalTrackNum > 0 &&
- formatContext->nbStreams > 0 &&
- formatContext->streams[MMFILE_VIDEO_STREAM]) {
+ formatContext->nbStreams > 0 &&
+ formatContext->streams[MMFILE_VIDEO_STREAM]) {
MMFileFormatStream *videoStream = formatContext->streams[MMFILE_VIDEO_STREAM];
- mm_attrs_set_int_by_name (hattrs, MM_FILE_CONTENT_VIDEO_CODEC, videoStream->codecId);
- mm_attrs_set_int_by_name (hattrs, MM_FILE_CONTENT_VIDEO_BITRATE, videoStream->bitRate);
- mm_attrs_set_int_by_name (hattrs, MM_FILE_CONTENT_VIDEO_FPS, videoStream->framePerSec);
- mm_attrs_set_int_by_name (hattrs, MM_FILE_CONTENT_VIDEO_WIDTH, videoStream->width);
- mm_attrs_set_int_by_name (hattrs, MM_FILE_CONTENT_VIDEO_HEIGHT, videoStream->height);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_CONTENT_VIDEO_CODEC, videoStream->codecId);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_CONTENT_VIDEO_BITRATE, videoStream->bitRate);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_CONTENT_VIDEO_FPS, videoStream->framePerSec);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_CONTENT_VIDEO_WIDTH, videoStream->width);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_CONTENT_VIDEO_HEIGHT, videoStream->height);
if (formatContext->thumbNail && formatContext->thumbNail->frameData) {
void *thumbNailCopy = NULL;
- thumbNailCopy = mmfile_malloc (formatContext->thumbNail->frameSize);
+ thumbNailCopy = mmfile_malloc(formatContext->thumbNail->frameSize);
if (NULL != thumbNailCopy) {
- memcpy (thumbNailCopy, formatContext->thumbNail->frameData, formatContext->thumbNail->frameSize);
- mm_attrs_set_data_by_name (hattrs, MM_FILE_CONTENT_VIDEO_THUMBNAIL, thumbNailCopy, formatContext->thumbNail->frameSize);
- mm_attrs_set_int_by_name (hattrs, MM_FILE_CONTENT_VIDEO_WIDTH, formatContext->thumbNail->frameWidth);
- mm_attrs_set_int_by_name (hattrs, MM_FILE_CONTENT_VIDEO_HEIGHT, formatContext->thumbNail->frameHeight);
+ memcpy(thumbNailCopy, formatContext->thumbNail->frameData, formatContext->thumbNail->frameSize);
+ mm_attrs_set_data_by_name(hattrs, MM_FILE_CONTENT_VIDEO_THUMBNAIL, thumbNailCopy, formatContext->thumbNail->frameSize);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_CONTENT_VIDEO_WIDTH, formatContext->thumbNail->frameWidth);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_CONTENT_VIDEO_HEIGHT, formatContext->thumbNail->frameHeight);
}
}
}
if (formatContext->audioTotalTrackNum > 0 &&
- formatContext->nbStreams > 0 &&
- formatContext->streams[MMFILE_AUDIO_STREAM]) {
+ formatContext->nbStreams > 0 &&
+ formatContext->streams[MMFILE_AUDIO_STREAM]) {
MMFileFormatStream *audioStream = formatContext->streams[MMFILE_AUDIO_STREAM];
- mm_attrs_set_int_by_name (hattrs, MM_FILE_CONTENT_AUDIO_CODEC, audioStream->codecId);
- mm_attrs_set_int_by_name (hattrs, MM_FILE_CONTENT_AUDIO_CHANNELS, audioStream->nbChannel);
- mm_attrs_set_int_by_name (hattrs, MM_FILE_CONTENT_AUDIO_BITRATE, audioStream->bitRate);
- mm_attrs_set_int_by_name (hattrs, MM_FILE_CONTENT_AUDIO_SAMPLERATE, audioStream->samplePerSec);
- mm_attrs_set_int_by_name (hattrs, MM_FILE_CONTENT_AUDIO_BITPERSAMPLE, audioStream->bitPerSample);
- }
- }
- else
- {
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_CONTENT_AUDIO_CODEC, audioStream->codecId);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_CONTENT_AUDIO_CHANNELS, audioStream->nbChannel);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_CONTENT_AUDIO_BITRATE, audioStream->bitRate);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_CONTENT_AUDIO_SAMPLERATE, audioStream->samplePerSec);
+ mm_attrs_set_int_by_name(hattrs, MM_FILE_CONTENT_AUDIO_BITPERSAMPLE, audioStream->bitPerSample);
+ }
+ } else {
ret = -1;
}
/*commit attrs*/
- ret = mmf_attrs_commit ((MMHandleType)hattrs);
+ ret = mmf_attrs_commit((MMHandleType)hattrs);
return ret;
}
static int
-_get_contents_info (mmf_attrs_t *attrs, MMFileSourceType *src, MMFILE_PARSE_INFO *parse)
+_get_contents_info(mmf_attrs_t *attrs, MMFileSourceType *src, MMFILE_PARSE_INFO *parse)
{
MMFileFormatContext *formatContext = NULL;
MMFileCodecContext *codecContext = NULL;
- MMFileFormatFrame frameContext = {0,};
- MMFileCodecFrame codecFrame = {0,};
- MMFileCodecFrame decodedFrame = {0,};
+ MMFileFormatFrame frameContext = {0, };
+ MMFileCodecFrame codecFrame = {0, };
+ MMFileCodecFrame decodedFrame = {0, };
int ret = 0;
-
+
if (!src || !parse)
return MM_ERROR_FILE_INTERNAL;
- ret = mmfile_format_open (&formatContext, src);
+ ret = mmfile_format_open(&formatContext, src);
if (MMFILE_FORMAT_FAIL == ret || formatContext == NULL) {
- debug_error ("error: mmfile_format_open\n");
+ debug_error("error: mmfile_format_open\n");
ret = MM_ERROR_FILE_INTERNAL;
goto exception;
}
- /**
- * if MM_FILE_PARSE_TYPE_SIMPLE, just get number of each stream.
- */
- parse->audio_track_num = formatContext->audioTotalTrackNum;
- parse->video_track_num = formatContext->videoTotalTrackNum;
-
if (parse->type >= MM_FILE_PARSE_TYPE_NORMAL) {
if (parse->type == MM_FILE_PARSE_TYPE_SAFE)
formatContext->cdis = 1;
- ret = mmfile_format_read_stream (formatContext);
+ ret = mmfile_format_read_stream(formatContext);
if (MMFILE_FORMAT_FAIL == ret) {
- debug_error ("error: mmfile_format_read_stream\n");
+ debug_error("error: mmfile_format_read_stream\n");
ret = MM_ERROR_FILE_INTERNAL;
goto exception;
}
+ parse->audio_track_num = formatContext->audioTotalTrackNum;
+ parse->video_track_num = formatContext->videoTotalTrackNum;
+
/* check uhqa content*/
- if (parse->is_uhqa = formatContext->streams[MMFILE_AUDIO_STREAM] != NULL)
+ if (formatContext->streams[MMFILE_AUDIO_STREAM] != NULL) {
parse->is_uhqa = formatContext->streams[MMFILE_AUDIO_STREAM]->is_uhqa;
-
- if (parse->type >= MM_FILE_PARSE_TYPE_ALL) {
+ } else {
+ parse->is_uhqa = FALSE;
+ }
+
+ if (parse->type >= MM_FILE_PARSE_TYPE_ALL) {
if (formatContext->videoTotalTrackNum > 0) {
if (parse->type != MM_FILE_PARSE_TYPE_SAFE) {
- if (formatContext->formatType == MM_FILE_FORMAT_3GP ||formatContext->formatType == MM_FILE_FORMAT_MP4) {
- MMFileUtilGetMetaDataFromMP4 (formatContext);
+ if (formatContext->formatType == MM_FILE_FORMAT_3GP || formatContext->formatType == MM_FILE_FORMAT_MP4) {
+ MMFileUtilGetMetaDataFromMP4(formatContext);
}
}
MMFileFormatStream *videoStream = formatContext->streams[MMFILE_VIDEO_STREAM];
unsigned int timestamp = _SEEK_POINT_;
- ret = mmfile_format_read_frame (formatContext, timestamp, &frameContext);
+ ret = mmfile_format_read_frame(formatContext, timestamp, &frameContext);
if (MMFILE_FORMAT_FAIL == ret) {
- debug_error ("error: mmfile_format_read_frame\n");
+ debug_error("error: mmfile_format_read_frame\n");
ret = MM_ERROR_FILE_INTERNAL;
goto warning;
}
@@ -454,24 +447,24 @@ _get_contents_info (mmf_attrs_t *attrs, MMFileSourceType *src, MMFILE_PARSE_INFO
codecFrame.configData = frameContext.configData;
codecFrame.version = videoStream->version;
- ret = mmfile_codec_open (&codecContext, MMFILE_VIDEO_DECODE, videoStream->codecId, &codecFrame);
+ ret = mmfile_codec_open(&codecContext, MMFILE_VIDEO_DECODE, videoStream->codecId, &codecFrame);
if (MMFILE_FORMAT_FAIL == ret) {
- debug_error ("error: mmfile_codec_open\n");
+ debug_error("error: mmfile_codec_open\n");
ret = MM_ERROR_FILE_INTERNAL;
goto warning;
}
- ret = mmfile_codec_decode (codecContext, &decodedFrame);
+ ret = mmfile_codec_decode(codecContext, &decodedFrame);
if (MMFILE_FORMAT_FAIL == ret) {
- debug_error ("error: mmfile_codec_decode\n");
+ debug_error("error: mmfile_codec_decode\n");
ret = MM_ERROR_FILE_INTERNAL;
goto warning;
}
-
+
/* set video thumbnail */
- formatContext->thumbNail = mmfile_malloc (sizeof(MMFileFormatFrame));
+ formatContext->thumbNail = mmfile_malloc(sizeof(MMFileFormatFrame));
if (NULL == formatContext->thumbNail) {
- debug_error ("error: mmfile_malloc\n");
+ debug_error("error: mmfile_malloc\n");
ret = MM_ERROR_FILE_INTERNAL;
goto warning;
}
@@ -483,9 +476,9 @@ _get_contents_info (mmf_attrs_t *attrs, MMFileSourceType *src, MMFILE_PARSE_INFO
formatContext->thumbNail->configLenth = 0;
formatContext->thumbNail->configData = NULL;
} else {
- formatContext->thumbNail = mmfile_malloc (sizeof(MMFileFormatFrame));
+ formatContext->thumbNail = mmfile_malloc(sizeof(MMFileFormatFrame));
if (NULL == formatContext->thumbNail) {
- debug_error ("error: mmfile_format_read_frame\n");
+ debug_error("error: mmfile_format_read_frame\n");
ret = MM_ERROR_FILE_INTERNAL;
goto warning;
}
@@ -499,42 +492,52 @@ _get_contents_info (mmf_attrs_t *attrs, MMFileSourceType *src, MMFILE_PARSE_INFO
}
}
}
+ } else {
+ /**
+ * if MM_FILE_PARSE_TYPE_SIMPLE, just get number of each stream.
+ */
+ parse->audio_track_num = formatContext->audioTotalTrackNum;
+ parse->video_track_num = formatContext->videoTotalTrackNum;
}
#ifdef __MMFILE_TEST_MODE__
- mmfile_format_print_frame (&frameContext);
+ mmfile_format_print_frame(&frameContext);
#endif
formatContext->commandType = MM_FILE_CONTENTS;
if (parse->type >= MM_FILE_PARSE_TYPE_NORMAL)
- _info_set_attr_media (attrs, formatContext);
+ _info_set_attr_media(attrs, formatContext);
if (frameContext.bCompressed) {
- if (frameContext.frameData) mmfile_free (frameContext.frameData);
- if (frameContext.configData) mmfile_free (frameContext.configData);
+ if (frameContext.frameData) mmfile_free(frameContext.frameData);
+ if (frameContext.configData) mmfile_free(frameContext.configData);
if (decodedFrame.frameData) {
- mmfile_free (decodedFrame.frameData);
+ mmfile_free(decodedFrame.frameData);
formatContext->thumbNail->frameData = NULL;
}
if (decodedFrame.configData) {
- mmfile_free (decodedFrame.configData);
+ mmfile_free(decodedFrame.configData);
formatContext->thumbNail->configData = NULL;
}
} else {
if (frameContext.frameData) {
- mmfile_free (frameContext.frameData);
+ mmfile_free(frameContext.frameData);
formatContext->thumbNail->frameData = NULL;
}
if (frameContext.configData) {
- mmfile_free (frameContext.configData);
+ mmfile_free(frameContext.configData);
formatContext->thumbNail->configData = NULL;
}
}
- if (formatContext) { mmfile_format_close (formatContext); }
- if (codecContext) { mmfile_codec_close (codecContext); }
+ if (formatContext) {
+ mmfile_format_close(formatContext);
+ }
+ if (codecContext) {
+ mmfile_codec_close(codecContext);
+ }
return MM_ERROR_NONE;
@@ -543,107 +546,117 @@ warning:
if (frameContext.bCompressed) {
if (frameContext.frameData)
- mmfile_free (frameContext.frameData);
+ mmfile_free(frameContext.frameData);
- if (frameContext.configData)
- mmfile_free (frameContext.configData);
+ if (frameContext.configData)
+ mmfile_free(frameContext.configData);
if (decodedFrame.frameData) {
- mmfile_free (decodedFrame.frameData);
+ mmfile_free(decodedFrame.frameData);
formatContext->thumbNail->frameData = NULL;
}
if (decodedFrame.configData) {
- mmfile_free (decodedFrame.configData);
+ mmfile_free(decodedFrame.configData);
formatContext->thumbNail->configData = NULL;
}
} else {
if (frameContext.frameData) {
- mmfile_free (frameContext.frameData);
+ mmfile_free(frameContext.frameData);
formatContext->thumbNail->frameData = NULL;
}
-
+
if (frameContext.configData) {
- mmfile_free (frameContext.configData);
+ mmfile_free(frameContext.configData);
formatContext->thumbNail->configData = NULL;
}
}
if (parse->type >= MM_FILE_PARSE_TYPE_NORMAL)
- _info_set_attr_media (attrs, formatContext);
+ _info_set_attr_media(attrs, formatContext);
- if (formatContext) { mmfile_format_close (formatContext); }
- if (codecContext) { mmfile_codec_close (codecContext); }
+ if (formatContext) {
+ mmfile_format_close(formatContext);
+ }
+ if (codecContext) {
+ mmfile_codec_close(codecContext);
+ }
return MM_ERROR_NONE;
exception:
if (frameContext.bCompressed) {
if (frameContext.frameData)
- mmfile_free (frameContext.frameData);
+ mmfile_free(frameContext.frameData);
- if (frameContext.configData)
- mmfile_free (frameContext.configData);
+ if (frameContext.configData)
+ mmfile_free(frameContext.configData);
if (decodedFrame.frameData) {
- mmfile_free (decodedFrame.frameData);
+ mmfile_free(decodedFrame.frameData);
formatContext->thumbNail->frameData = NULL;
}
if (decodedFrame.configData) {
- mmfile_free (decodedFrame.configData);
+ mmfile_free(decodedFrame.configData);
formatContext->thumbNail->configData = NULL;
}
} else {
if (frameContext.frameData) {
- mmfile_free (frameContext.frameData);
+ mmfile_free(frameContext.frameData);
formatContext->thumbNail->frameData = NULL;
}
-
+
if (frameContext.configData) {
- mmfile_free (frameContext.configData);
+ mmfile_free(frameContext.configData);
formatContext->thumbNail->configData = NULL;
}
}
- if (formatContext) { mmfile_format_close (formatContext); }
- // if (codecContext) { mmfile_codec_close (codecContext); } /*dead code*/
+ if (formatContext) {
+ mmfile_format_close(formatContext);
+ }
+ /* if (codecContext) { mmfile_codec_close(codecContext); } */ /*dead code*/
return ret;
}
static int
-_get_tag_info (mmf_attrs_t *attrs, MMFileSourceType *src)
+_get_tag_info(mmf_attrs_t *attrs, MMFileSourceType *src)
{
MMFileFormatContext *formatContext = NULL;
int ret = 0;
- ret = mmfile_format_open (&formatContext, src);
+ ret = mmfile_format_open(&formatContext, src);
if (MMFILE_FORMAT_FAIL == ret || formatContext == NULL) {
- debug_error ("error: mmfile_format_open\n");
+ debug_error("error: mmfile_format_open\n");
ret = MM_ERROR_FILE_INTERNAL;
goto exception;
}
- ret = mmfile_format_read_tag (formatContext);
+ ret = mmfile_format_read_tag(formatContext);
if (MMFILE_FORMAT_FAIL == ret) {
- debug_warning ("reading tag is fail\n");
+ debug_warning("reading tag is fail\n");
ret = MM_ERROR_FILE_INTERNAL;
goto exception;
}
formatContext->commandType = MM_FILE_TAG;
- _info_set_attr_media (attrs, formatContext);
+ _info_set_attr_media(attrs, formatContext);
- if (formatContext) { mmfile_format_close (formatContext); }
+ if (formatContext) {
+ mmfile_format_close(formatContext);
+ }
return MM_ERROR_NONE;
exception:
- if (formatContext) { mmfile_format_close (formatContext); }
+ if (formatContext) {
+ mmfile_format_close(formatContext);
+ }
return MM_ERROR_FILE_INTERNAL;
}
@@ -657,28 +670,24 @@ int mm_file_get_attrs(MMHandleType attrs, char **err_attr_name, const char *firs
int ret = MM_ERROR_NONE;
va_list var_args;
- if ( !attrs )
- {
- debug_error ("Invalid arguments [attrs 0]\n");
+ if (!attrs) {
+ debug_error("Invalid arguments [attrs 0]\n");
return MM_ERROR_INVALID_ARGUMENT;
}
-
- if ( first_attribute_name == NULL)
- {
- debug_error ("Invalid arguments [first_attribute_name null]\n");
+
+ if (first_attribute_name == NULL) {
+ debug_error("Invalid arguments [first_attribute_name null]\n");
return MM_ERROR_INVALID_ARGUMENT;
}
/* get requested attributes */
- va_start (var_args, first_attribute_name);
+ va_start(var_args, first_attribute_name);
ret = mm_attrs_get_valist(attrs, err_attr_name, first_attribute_name, var_args);
- va_end (var_args);
+ va_end(var_args);
- if (ret != MM_ERROR_NONE)
- {
- if (err_attr_name)
- {
- debug_error ("failed to get %s\n", *err_attr_name);
+ if (ret != MM_ERROR_NONE) {
+ if (err_attr_name) {
+ debug_error("failed to get %s\n", *err_attr_name);
}
}
@@ -688,34 +697,34 @@ int mm_file_get_attrs(MMHandleType attrs, char **err_attr_name, const char *firs
int mm_file_get_synclyrics_info(MMHandleType tag_attrs, int index, unsigned long *time_info, char **lyrics)
{
int ret = MM_ERROR_NONE;
- AvSynclyricsInfo* sync_lyric_item = NULL;
+ AvSynclyricsInfo *sync_lyric_item = NULL;
GList *synclyrics_list = NULL;
#ifdef __MMFILE_TEST_MODE__
debug_fenter();
#endif
- if ( (mmf_attrs_t*)tag_attrs == NULL) {
- debug_error ("invalid handle");
+ if ((mmf_attrs_t *)tag_attrs == NULL) {
+ debug_error("invalid handle");
return MM_ERROR_INVALID_ARGUMENT;
}
- ret = mm_attrs_get_data_by_name (tag_attrs, MM_FILE_TAG_SYNCLYRICS, (void **)&synclyrics_list);
- if(ret != MM_ERROR_NONE) {
- #ifdef __MMFILE_TEST_MODE__
- debug_warning ( "get data fail");
- #endif
+ ret = mm_attrs_get_data_by_name(tag_attrs, MM_FILE_TAG_SYNCLYRICS, (void **)&synclyrics_list);
+ if (ret != MM_ERROR_NONE) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_warning("get data fail");
+#endif
return ret;
}
-
- if(synclyrics_list != NULL) {
- sync_lyric_item = (AvSynclyricsInfo*)g_list_nth_data(synclyrics_list, index);
+ if (synclyrics_list != NULL) {
+
+ sync_lyric_item = (AvSynclyricsInfo *)g_list_nth_data(synclyrics_list, index);
- if(sync_lyric_item == NULL) {
- #ifdef __MMFILE_TEST_MODE__
- debug_warning ( "synclyric item is NULL");
- #endif
+ if (sync_lyric_item == NULL) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_warning("synclyric item is NULL");
+#endif
return MM_ERROR_COMMON_ATTR_NOT_EXIST;
}
@@ -723,14 +732,14 @@ int mm_file_get_synclyrics_info(MMHandleType tag_attrs, int index, unsigned long
*lyrics = sync_lyric_item->lyric_info;
} else {
- #ifdef __MMFILE_TEST_MODE__
- debug_warning ( "synclyrics_list is NULL");
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_warning("synclyrics_list is NULL");
+#endif
return MM_ERROR_COMMON_ATTR_NOT_EXIST;
}
-
+
return ret;
-
+
}
int mm_file_create_tag_attrs(MMHandleType *tag_attrs, const char *filename)
@@ -745,58 +754,58 @@ int mm_file_create_tag_attrs(MMHandleType *tag_attrs, const char *filename)
/* Check argument here */
if (tag_attrs == NULL) {
- debug_error ("Invalid arguments [tag null]\n");
+ debug_error("Invalid arguments [tag null]\n");
return MM_ERROR_INVALID_ARGUMENT;
}
if (filename == NULL) {
- debug_error ("Invalid arguments [filename null]\n");
+ debug_error("Invalid arguments [filename null]\n");
return MM_ERROR_INVALID_ARGUMENT;
}
- if ( strlen (filename) == 0) {
- debug_error ("Invalid arguments [filename size 0]\n");
+ if (strlen(filename) == 0) {
+ debug_error("Invalid arguments [filename size 0]\n");
return MM_ERROR_INVALID_ARGUMENT;
}
#ifdef __MMFILE_DYN_LOADING__
MMFILE_FUNC_HANDLE func_handle;
-
- ret = _load_dynamic_functions (&func_handle);
+
+ ret = _load_dynamic_functions(&func_handle);
if (ret == 0) {
- debug_error ("load library error\n");
+ debug_error("load library error\n");
return MM_ERROR_FILE_INTERNAL;
}
#endif
/*set source file infomation*/
- MM_FILE_SET_MEDIA_FILE_SRC (src, filename);
+ MM_FILE_SET_MEDIA_FILE_SRC(src, filename);
- ret = _is_file_exist (filename);
+ ret = _is_file_exist(filename);
if (!ret) {
ret = MM_ERROR_FILE_NOT_FOUND;
goto END;
}
/*set attrs*/
- attrs = (mmf_attrs_t *) mmf_attrs_new_from_data ("tag", g_tag_attrs, ARRAY_SIZE (g_tag_attrs), NULL, NULL);
+ attrs = (mmf_attrs_t *) mmf_attrs_new_from_data("tag", g_tag_attrs, ARRAY_SIZE(g_tag_attrs), NULL, NULL);
if (!attrs) {
- debug_error ("attribute internal error.\n");
+ debug_error("attribute internal error.\n");
ret = MM_ERROR_FILE_INTERNAL;
goto END;
}
- ret = _get_tag_info (attrs, &src);
+ ret = _get_tag_info(attrs, &src);
if (ret != MM_ERROR_NONE) {
- mmf_attrs_free ((MMHandleType)attrs);
+ mmf_attrs_free((MMHandleType)attrs);
attrs = NULL;
- debug_error ("failed to get tag: %s\n", filename);
+ debug_error("failed to get tag: %s\n", filename);
}
*tag_attrs = (MMHandleType)attrs;
END:
#ifdef __MMFILE_DYN_LOADING__
- _unload_dynamic_functions (&func_handle);
+ _unload_dynamic_functions(&func_handle);
#endif
#ifdef __MMFILE_TEST_MODE__
@@ -818,24 +827,24 @@ int mm_file_destroy_tag_attrs(MMHandleType tag_attrs)
debug_fenter();
#endif
- if ( (mmf_attrs_t*)tag_attrs == NULL) {
- debug_error ("invalid handle.\n");
+ if ((mmf_attrs_t *)tag_attrs == NULL) {
+ debug_error("invalid handle.\n");
return MM_ERROR_INVALID_ARGUMENT;
}
- ret = mm_attrs_get_data_by_name (tag_attrs, MM_FILE_TAG_ARTWORK, &artwork);
-
+ ret = mm_attrs_get_data_by_name(tag_attrs, MM_FILE_TAG_ARTWORK, &artwork);
+
if (artwork != NULL) {
- mmfile_free (artwork);
+ mmfile_free(artwork);
}
- ret = mm_attrs_get_data_by_name (tag_attrs, MM_FILE_TAG_SYNCLYRICS, (void **)&synclyrics_list);
+ ret = mm_attrs_get_data_by_name(tag_attrs, MM_FILE_TAG_SYNCLYRICS, (void **)&synclyrics_list);
- if(synclyrics_list != NULL) {
+ if (synclyrics_list != NULL) {
mm_file_free_synclyrics_list(synclyrics_list);
}
- mmf_attrs_free (tag_attrs);
+ mmf_attrs_free(tag_attrs);
#ifdef __MMFILE_TEST_MODE__
debug_fleave();
@@ -845,11 +854,11 @@ int mm_file_destroy_tag_attrs(MMHandleType tag_attrs)
}
EXPORT_API
-int mm_file_create_content_attrs (MMHandleType *contents_attrs, const char *filename)
+int mm_file_create_content_attrs(MMHandleType *contents_attrs, const char *filename)
{
mmf_attrs_t *attrs = NULL;
- MMFileSourceType src = {0,};
- MMFILE_PARSE_INFO parse = {0,};
+ MMFileSourceType src = {0, };
+ MMFILE_PARSE_INFO parse = {0, };
int ret = 0;
#ifdef __MMFILE_TEST_MODE__
@@ -858,15 +867,15 @@ int mm_file_create_content_attrs (MMHandleType *contents_attrs, const char *file
/* Check argument here */
if (contents_attrs == NULL) {
- debug_error ("Invalid arguments [contents null]\n");
+ debug_error("Invalid arguments [contents null]\n");
return MM_ERROR_INVALID_ARGUMENT;
}
if (filename == NULL) {
- debug_error ("Invalid arguments [filename null]\n");
+ debug_error("Invalid arguments [filename null]\n");
return MM_ERROR_INVALID_ARGUMENT;
}
- if ( strlen (filename) == 0) {
- debug_error ("Invalid arguments [filename size 0]\n");
+ if (strlen(filename) == 0) {
+ debug_error("Invalid arguments [filename size 0]\n");
return MM_ERROR_INVALID_ARGUMENT;
}
@@ -874,47 +883,47 @@ int mm_file_create_content_attrs (MMHandleType *contents_attrs, const char *file
#ifdef __MMFILE_DYN_LOADING__
MMFILE_FUNC_HANDLE func_handle;
- #ifdef CHECK_TIME
- int64_t ti;
+#ifdef CHECK_TIME
+ int64_t ti;
ti = gettime();
- #endif
-
- ret = _load_dynamic_functions (&func_handle);
+#endif
+
+ ret = _load_dynamic_functions(&func_handle);
if (ret == 0) {
- debug_error ("load library error\n");
+ debug_error("load library error\n");
return MM_ERROR_FILE_INTERNAL;
}
- #ifdef CHECK_TIME
+#ifdef CHECK_TIME
debug_msg("_load_dynamic_functions() = %lld\n", gettime() - ti);
- #endif
-
+#endif
+
#endif
/*set source file infomation*/
- MM_FILE_SET_MEDIA_FILE_SRC (src, filename);
+ MM_FILE_SET_MEDIA_FILE_SRC(src, filename);
- ret = _is_file_exist (filename);
+ ret = _is_file_exist(filename);
if (!ret) {
ret = MM_ERROR_FILE_NOT_FOUND;
goto END;
}
/*set attrs*/
- attrs = (mmf_attrs_t *) mmf_attrs_new_from_data ("content", g_content_attrs, ARRAY_SIZE (g_content_attrs), NULL, NULL);
+ attrs = (mmf_attrs_t *) mmf_attrs_new_from_data("content", g_content_attrs, ARRAY_SIZE(g_content_attrs), NULL, NULL);
if (!attrs) {
- debug_error ("attribute internal error.\n");
+ debug_error("attribute internal error.\n");
ret = MM_ERROR_FILE_INTERNAL;
goto END;
}
-
+
parse.type = MM_FILE_PARSE_TYPE_ALL;
- ret = _get_contents_info (attrs, &src, &parse);
+ ret = _get_contents_info(attrs, &src, &parse);
if (ret != MM_ERROR_NONE) {
- mmf_attrs_free ((MMHandleType)attrs);
+ mmf_attrs_free((MMHandleType)attrs);
attrs = NULL;
- debug_error ("failed to get contents: %s\n", filename);
+ debug_error("failed to get contents: %s\n", filename);
}
*contents_attrs = (MMHandleType) attrs;
@@ -923,15 +932,15 @@ int mm_file_create_content_attrs (MMHandleType *contents_attrs, const char *file
END:
#ifdef __MMFILE_DYN_LOADING__
- #ifdef CHECK_TIME
+#ifdef CHECK_TIME
ti = gettime();
- #endif
+#endif
- _unload_dynamic_functions (&func_handle);
+ _unload_dynamic_functions(&func_handle);
- #ifdef CHECK_TIME
+#ifdef CHECK_TIME
debug_msg("_unload_dynamic_functions() = %lld\n", gettime() - ti);
- #endif
+#endif
#endif
@@ -944,11 +953,11 @@ END:
EXPORT_API
-int mm_file_create_tag_attrs_from_memory (MMHandleType *tag_attrs, const void *data, unsigned int size, int format)
+int mm_file_create_tag_attrs_from_memory(MMHandleType *tag_attrs, const void *data, unsigned int size, int format)
{
mmf_attrs_t *attrs = NULL;
MMFileSourceType src;
- MMFILE_PARSE_INFO parse = {0,};
+ /*MMFILE_PARSE_INFO parse = {0, };*/
int ret = 0;
#ifdef __MMFILE_TEST_MODE__
@@ -957,43 +966,43 @@ int mm_file_create_tag_attrs_from_memory (MMHandleType *tag_attrs, const void *d
/* Check argument here */
if (tag_attrs == NULL || data == NULL) {
- debug_error ("Invalid arguments\n");
+ debug_error("Invalid arguments\n");
return MM_ERROR_INVALID_ARGUMENT;
}
#ifdef __MMFILE_DYN_LOADING__
MMFILE_FUNC_HANDLE func_handle;
- ret = _load_dynamic_functions (&func_handle);
+ ret = _load_dynamic_functions(&func_handle);
if (ret == 0) {
- debug_error ("load library error\n");
+ debug_error("load library error\n");
return MM_ERROR_FILE_INTERNAL;
}
#endif
- MM_FILE_SET_MEDIA_MEM_SRC (src, data, size, format);
+ MM_FILE_SET_MEDIA_MEM_SRC(src, data, size, format);
/*set attrs*/
- attrs = (mmf_attrs_t *) mmf_attrs_new_from_data ("tag", g_tag_attrs, ARRAY_SIZE (g_tag_attrs), NULL, NULL);
+ attrs = (mmf_attrs_t *) mmf_attrs_new_from_data("tag", g_tag_attrs, ARRAY_SIZE(g_tag_attrs), NULL, NULL);
if (!attrs) {
- debug_error ("attribute internal error.\n");
+ debug_error("attribute internal error.\n");
ret = MM_ERROR_FILE_INTERNAL;
goto END;
}
- parse.type = MM_FILE_PARSE_TYPE_ALL;
- ret = _get_tag_info (attrs, &src);
+ /*parse.type = MM_FILE_PARSE_TYPE_ALL;*/
+ ret = _get_tag_info(attrs, &src);
if (ret != MM_ERROR_NONE) {
- mmf_attrs_free ((MMHandleType)attrs);
+ mmf_attrs_free((MMHandleType)attrs);
attrs = NULL;
- debug_error ("failed to get tag");
+ debug_error("failed to get tag");
}
*tag_attrs = (MMHandleType)attrs;
END:
#ifdef __MMFILE_DYN_LOADING__
- _unload_dynamic_functions (&func_handle);
+ _unload_dynamic_functions(&func_handle);
#endif
#ifdef __MMFILE_TEST_MODE__
@@ -1005,11 +1014,11 @@ END:
EXPORT_API
-int mm_file_create_content_attrs_from_memory (MMHandleType *contents_attrs, const void *data, unsigned int size, int format)
+int mm_file_create_content_attrs_from_memory(MMHandleType *contents_attrs, const void *data, unsigned int size, int format)
{
mmf_attrs_t *attrs = NULL;
MMFileSourceType src;
- MMFILE_PARSE_INFO parse = {0,};
+ MMFILE_PARSE_INFO parse = {0, };
int ret = 0;
#ifdef __MMFILE_TEST_MODE__
@@ -1018,43 +1027,43 @@ int mm_file_create_content_attrs_from_memory (MMHandleType *contents_attrs, cons
/* Check argument here */
if (contents_attrs == NULL || data == NULL) {
- debug_error ("Invalid arguments\n");
+ debug_error("Invalid arguments\n");
return MM_ERROR_INVALID_ARGUMENT;
}
#ifdef __MMFILE_DYN_LOADING__
MMFILE_FUNC_HANDLE func_handle;
-
- ret = _load_dynamic_functions (&func_handle);
+
+ ret = _load_dynamic_functions(&func_handle);
if (ret == 0) {
- debug_error ("load library error\n");
+ debug_error("load library error\n");
return MM_ERROR_FILE_INTERNAL;
}
#endif
- MM_FILE_SET_MEDIA_MEM_SRC (src, data, size, format);
+ MM_FILE_SET_MEDIA_MEM_SRC(src, data, size, format);
/*set attrs*/
- attrs = (mmf_attrs_t *) mmf_attrs_new_from_data ("content", g_content_attrs, ARRAY_SIZE (g_content_attrs), NULL, NULL);
+ attrs = (mmf_attrs_t *) mmf_attrs_new_from_data("content", g_content_attrs, ARRAY_SIZE(g_content_attrs), NULL, NULL);
if (!attrs) {
- debug_error ("attribute internal error.\n");
+ debug_error("attribute internal error.\n");
ret = MM_ERROR_FILE_INTERNAL;
goto END;
}
parse.type = MM_FILE_PARSE_TYPE_ALL;
- ret = _get_contents_info (attrs, &src, &parse);
+ ret = _get_contents_info(attrs, &src, &parse);
if (ret != MM_ERROR_NONE) {
- mmf_attrs_free ((MMHandleType)attrs);
+ mmf_attrs_free((MMHandleType)attrs);
attrs = NULL;
- debug_error ("failed to get contents");
+ debug_error("failed to get contents");
}
*contents_attrs = (MMHandleType)attrs;
END:
#ifdef __MMFILE_DYN_LOADING__
- _unload_dynamic_functions (&func_handle);
+ _unload_dynamic_functions(&func_handle);
#endif
#ifdef __MMFILE_TEST_MODE__
@@ -1066,7 +1075,7 @@ END:
EXPORT_API
-int mm_file_destroy_content_attrs (MMHandleType contents_attrs)
+int mm_file_destroy_content_attrs(MMHandleType contents_attrs)
{
void *thumbnail = NULL;
int ret = MM_ERROR_NONE;
@@ -1075,17 +1084,17 @@ int mm_file_destroy_content_attrs (MMHandleType contents_attrs)
debug_fenter();
#endif
- if ((mmf_attrs_t*)contents_attrs == NULL) {
- debug_error ("invalid handle.\n");
+ if ((mmf_attrs_t *)contents_attrs == NULL) {
+ debug_error("invalid handle.\n");
return MM_ERROR_INVALID_ARGUMENT;
}
ret = mm_attrs_get_data_by_name(contents_attrs, MM_FILE_CONTENT_VIDEO_THUMBNAIL, &thumbnail);
if (thumbnail != NULL) {
- mmfile_free (thumbnail);
+ mmfile_free(thumbnail);
}
- mmf_attrs_free (contents_attrs);
+ mmf_attrs_free(contents_attrs);
#ifdef __MMFILE_TEST_MODE__
debug_fleave();
@@ -1096,10 +1105,10 @@ int mm_file_destroy_content_attrs (MMHandleType contents_attrs)
EXPORT_API
-int mm_file_get_stream_info(const char* filename, int *audio_stream_num, int *video_stream_num)
+int mm_file_get_stream_info(const char *filename, int *audio_stream_num, int *video_stream_num)
{
- MMFileSourceType src = {0,};
- MMFILE_PARSE_INFO parse = {0,};
+ MMFileSourceType src = {0, };
+ MMFILE_PARSE_INFO parse = {0, };
int ret = 0;
@@ -1107,34 +1116,40 @@ int mm_file_get_stream_info(const char* filename, int *audio_stream_num, int *vi
debug_fenter();
#endif
- if (filename == NULL || strlen (filename) == 0 || audio_stream_num == NULL || video_stream_num == NULL) {
- debug_error ("Invalid arguments\n");
+ if (filename == NULL || strlen(filename) == 0 || audio_stream_num == NULL || video_stream_num == NULL) {
+ debug_error("Invalid arguments\n");
return MM_ERROR_INVALID_ARGUMENT;
}
#ifdef __MMFILE_DYN_LOADING__
MMFILE_FUNC_HANDLE func_handle;
- ret = _load_dynamic_functions (&func_handle);
+ ret = _load_dynamic_functions(&func_handle);
if (ret == 0) {
- debug_error ("load library error\n");
+ debug_error("load library error\n");
return MM_ERROR_FILE_INTERNAL;
}
#endif
/*set source file infomation*/
- MM_FILE_SET_MEDIA_FILE_SRC (src, filename);
+ MM_FILE_SET_MEDIA_FILE_SRC(src, filename);
- ret = _is_file_exist (filename);
+ ret = _is_file_exist(filename);
if (!ret) {
ret = MM_ERROR_FILE_NOT_FOUND;
goto END;
}
parse.type = MM_FILE_PARSE_TYPE_SIMPLE;
- ret = _get_contents_info (NULL, &src, &parse);
+ ret = _get_contents_info(NULL, &src, &parse);
if (ret != MM_ERROR_NONE) {
- debug_error ("failed to get stream info: %s\n", filename);
+ debug_error("failed to get stream info: %s\n", filename);
+ } else {
+ if (parse.audio_track_num == 0 && parse.video_track_num == 0) {
+ debug_error("empty header. retry to get stream info: %s\n", filename);
+ parse.type = MM_FILE_PARSE_TYPE_NORMAL;
+ ret = _get_contents_info(NULL, &src, &parse);
+ }
}
/*set number of each stream*/
@@ -1143,7 +1158,7 @@ int mm_file_get_stream_info(const char* filename, int *audio_stream_num, int *vi
END:
#ifdef __MMFILE_DYN_LOADING__
- _unload_dynamic_functions (&func_handle);
+ _unload_dynamic_functions(&func_handle);
#endif
#ifdef __MMFILE_TEST_MODE__
@@ -1157,8 +1172,8 @@ EXPORT_API
int mm_file_create_content_attrs_simple(MMHandleType *contents_attrs, const char *filename)
{
mmf_attrs_t *attrs = NULL;
- MMFileSourceType src = {0,};
- MMFILE_PARSE_INFO parse = {0,};
+ MMFileSourceType src = {0, };
+ MMFILE_PARSE_INFO parse = {0, };
int ret = 0;
#ifdef __MMFILE_TEST_MODE__
@@ -1167,53 +1182,53 @@ int mm_file_create_content_attrs_simple(MMHandleType *contents_attrs, const char
#ifdef __MMFILE_DYN_LOADING__
MMFILE_FUNC_HANDLE func_handle;
-
- ret = _load_dynamic_functions (&func_handle);
+
+ ret = _load_dynamic_functions(&func_handle);
if (ret == 0) {
- debug_error ("load library error\n");
+ debug_error("load library error\n");
return MM_ERROR_FILE_INTERNAL;
}
#endif
if (filename == NULL) {
- ret = MM_ERROR_INVALID_ARGUMENT;
+ ret = MM_ERROR_INVALID_ARGUMENT;
goto END;
} else {
- if (strlen (filename) == 0) {
- ret = MM_ERROR_INVALID_ARGUMENT;
+ if (strlen(filename) == 0) {
+ ret = MM_ERROR_INVALID_ARGUMENT;
goto END;
}
}
/*set source file infomation*/
- MM_FILE_SET_MEDIA_FILE_SRC (src, filename);
+ MM_FILE_SET_MEDIA_FILE_SRC(src, filename);
- ret = _is_file_exist (filename);
+ ret = _is_file_exist(filename);
if (!ret) {
ret = MM_ERROR_FILE_NOT_FOUND;
goto END;
}
/*set attrs*/
- attrs = (mmf_attrs_t *) mmf_attrs_new_from_data ("content", g_content_attrs, ARRAY_SIZE (g_content_attrs), NULL, NULL);
+ attrs = (mmf_attrs_t *) mmf_attrs_new_from_data("content", g_content_attrs, ARRAY_SIZE(g_content_attrs), NULL, NULL);
if (!attrs) {
- debug_error ("attribute internal error.\n");
+ debug_error("attribute internal error.\n");
ret = MM_ERROR_FILE_INTERNAL;
goto END;
}
parse.type = MM_FILE_PARSE_TYPE_NORMAL;
- ret = _get_contents_info (attrs, &src, &parse);
+ ret = _get_contents_info(attrs, &src, &parse);
if (ret != MM_ERROR_NONE) {
- mmf_attrs_free ((MMHandleType)attrs);
+ mmf_attrs_free((MMHandleType)attrs);
attrs = NULL;
- debug_error ("failed to get contents: %s\n", filename);
+ debug_error("failed to get contents: %s\n", filename);
}
*contents_attrs = (MMHandleType) attrs;
END:
#ifdef __MMFILE_DYN_LOADING__
- _unload_dynamic_functions (&func_handle);
+ _unload_dynamic_functions(&func_handle);
#endif
#ifdef __MMFILE_TEST_MODE__
@@ -1227,8 +1242,8 @@ EXPORT_API
int mm_file_create_content_attrs_safe(MMHandleType *contents_attrs, const char *filename)
{
mmf_attrs_t *attrs = NULL;
- MMFileSourceType src = {0,};
- MMFILE_PARSE_INFO parse = {0,};
+ MMFileSourceType src = {0, };
+ MMFILE_PARSE_INFO parse = {0, };
int ret = 0;
#ifdef __MMFILE_TEST_MODE__
@@ -1238,9 +1253,9 @@ int mm_file_create_content_attrs_safe(MMHandleType *contents_attrs, const char *
#ifdef __MMFILE_DYN_LOADING__
MMFILE_FUNC_HANDLE func_handle;
- ret = _load_dynamic_functions (&func_handle);
+ ret = _load_dynamic_functions(&func_handle);
if (ret == 0) {
- debug_error ("load library error\n");
+ debug_error("load library error\n");
return MM_ERROR_FILE_INTERNAL;
}
#endif
@@ -1248,42 +1263,42 @@ int mm_file_create_content_attrs_safe(MMHandleType *contents_attrs, const char *
ret = MM_ERROR_INVALID_ARGUMENT;
goto END;
} else {
- if (strlen (filename) == 0) {
+ if (strlen(filename) == 0) {
ret = MM_ERROR_INVALID_ARGUMENT;
goto END;
}
}
/*set source file infomation*/
- MM_FILE_SET_MEDIA_FILE_SRC (src, filename);
+ MM_FILE_SET_MEDIA_FILE_SRC(src, filename);
- ret = _is_file_exist (filename);
+ ret = _is_file_exist(filename);
if (!ret) {
ret = MM_ERROR_FILE_NOT_FOUND;
goto END;
}
/*set attrs*/
- attrs = (mmf_attrs_t *) mmf_attrs_new_from_data ("content", g_content_attrs, ARRAY_SIZE (g_content_attrs), NULL, NULL);
+ attrs = (mmf_attrs_t *) mmf_attrs_new_from_data("content", g_content_attrs, ARRAY_SIZE(g_content_attrs), NULL, NULL);
if (!attrs) {
- debug_error ("attribute internal error.\n");
+ debug_error("attribute internal error.\n");
ret = MM_ERROR_FILE_INTERNAL;
goto END;
}
parse.type = MM_FILE_PARSE_TYPE_SAFE;
- ret = _get_contents_info (attrs, &src, &parse);
+ ret = _get_contents_info(attrs, &src, &parse);
if (ret != MM_ERROR_NONE) {
- mmf_attrs_free ((MMHandleType)attrs);
+ mmf_attrs_free((MMHandleType)attrs);
attrs = NULL;
- debug_error ("failed to get contents: %s\n", filename);
+ debug_error("failed to get contents: %s\n", filename);
}
*contents_attrs = (MMHandleType) attrs;
END:
#ifdef __MMFILE_DYN_LOADING__
- _unload_dynamic_functions (&func_handle);
+ _unload_dynamic_functions(&func_handle);
#endif
#ifdef __MMFILE_TEST_MODE__
@@ -1294,27 +1309,27 @@ END:
}
EXPORT_API
-int mm_file_get_video_frame(const char* path, double timestamp, bool is_accurate, unsigned char **frame, int *size, int *width, int *height)
+int mm_file_get_video_frame(const char *path, double timestamp, bool is_accurate, unsigned char **frame, int *size, int *width, int *height)
{
int ret = 0;
void *formatFuncHandle = NULL;
if (path == NULL) {
- debug_error ("Invalid arguments [Path is Null]\n");
+ debug_error("Invalid arguments [Path is Null]\n");
return MM_ERROR_INVALID_ARGUMENT;
}
#ifdef __MMFILE_DYN_LOADING__
/* Get from function argument */
- formatFuncHandle = dlopen (MMFILE_FORMAT_SO_FILE_NAME, RTLD_LAZY);
+ formatFuncHandle = dlopen(MMFILE_FORMAT_SO_FILE_NAME, RTLD_LAZY);
if (!formatFuncHandle) {
- debug_error ("error : dlopen");
+ debug_error("error : dlopen");
goto exception;
}
- mmfile_format_get_frame = dlsym (formatFuncHandle, "mmfile_format_get_frame");
- if ( !mmfile_format_get_frame ) {
- debug_error ("error : load library");
+ mmfile_format_get_frame = dlsym(formatFuncHandle, "mmfile_format_get_frame");
+ if (!mmfile_format_get_frame) {
+ debug_error("error : load library");
goto exception;
}
#endif
@@ -1325,16 +1340,16 @@ int mm_file_get_video_frame(const char* path, double timestamp, bool is_accurate
ret = mmfile_format_get_frame(path, timestamp, is_accurate, frame, size, width, height);
if (ret == MMFILE_FORMAT_FAIL) {
- debug_error ("error : get frame");
+ debug_error("error : get frame");
goto exception;
}
- if (formatFuncHandle) dlclose (formatFuncHandle);
+ if (formatFuncHandle) dlclose(formatFuncHandle);
return MM_ERROR_NONE;
exception:
- if (formatFuncHandle) dlclose (formatFuncHandle);
+ if (formatFuncHandle) dlclose(formatFuncHandle);
return MM_ERROR_FILE_INTERNAL;
}
@@ -1346,26 +1361,26 @@ int mm_file_get_video_frame_from_memory(const void *data, unsigned int datasize,
void *formatFuncHandle = NULL;
if (data == NULL) {
- debug_error ("Invalid arguments [data is Null]\n");
+ debug_error("Invalid arguments [data is Null]\n");
return MM_ERROR_INVALID_ARGUMENT;
}
if (datasize == 0) {
- debug_error ("Invalid arguments [datasize is zero]\n");
+ debug_error("Invalid arguments [datasize is zero]\n");
return MM_ERROR_INVALID_ARGUMENT;
}
#ifdef __MMFILE_DYN_LOADING__
/* Get from function argument */
- formatFuncHandle = dlopen (MMFILE_FORMAT_SO_FILE_NAME, RTLD_LAZY);
+ formatFuncHandle = dlopen(MMFILE_FORMAT_SO_FILE_NAME, RTLD_LAZY);
if (!formatFuncHandle) {
- debug_error ("error : dlopen");
+ debug_error("error : dlopen");
goto exception;
}
- mmfile_format_get_frame_from_memory = dlsym (formatFuncHandle, "mmfile_format_get_frame_from_memory");
- if ( !mmfile_format_get_frame_from_memory ) {
- debug_error ("error : load library");
+ mmfile_format_get_frame_from_memory = dlsym(formatFuncHandle, "mmfile_format_get_frame_from_memory");
+ if (!mmfile_format_get_frame_from_memory) {
+ debug_error("error : load library");
goto exception;
}
#endif
@@ -1376,34 +1391,34 @@ int mm_file_get_video_frame_from_memory(const void *data, unsigned int datasize,
ret = mmfile_format_get_frame_from_memory(data, datasize, timestamp, is_accurate, frame, size, width, height);
if (ret == MMFILE_FORMAT_FAIL) {
- debug_error ("error : get frame");
+ debug_error("error : get frame");
goto exception;
}
- if (formatFuncHandle) dlclose (formatFuncHandle);
+ if (formatFuncHandle) dlclose(formatFuncHandle);
return MM_ERROR_NONE;
exception:
- if (formatFuncHandle) dlclose (formatFuncHandle);
+ if (formatFuncHandle) dlclose(formatFuncHandle);
return MM_ERROR_FILE_INTERNAL;
}
EXPORT_API
-int mm_file_check_uhqa(const char* filename, bool *is_uhqa)
+int mm_file_check_uhqa(const char *filename, bool *is_uhqa)
{
mmf_attrs_t *attrs = NULL;
- MMFileSourceType src = {0,};
- MMFILE_PARSE_INFO parse = {0,};
+ MMFileSourceType src = {0, };
+ MMFILE_PARSE_INFO parse = {0, };
int ret = 0;
#ifdef __MMFILE_DYN_LOADING__
MMFILE_FUNC_HANDLE func_handle;
- ret = _load_dynamic_functions (&func_handle);
+ ret = _load_dynamic_functions(&func_handle);
if (ret == 0) {
- debug_error ("load library error\n");
+ debug_error("load library error\n");
return MM_ERROR_FILE_INTERNAL;
}
#endif
@@ -1411,44 +1426,44 @@ int mm_file_check_uhqa(const char* filename, bool *is_uhqa)
ret = MM_ERROR_INVALID_ARGUMENT;
goto END;
} else {
- if (strlen (filename) == 0) {
+ if (strlen(filename) == 0) {
ret = MM_ERROR_INVALID_ARGUMENT;
goto END;
}
}
/*set source file infomation*/
- MM_FILE_SET_MEDIA_FILE_SRC (src, filename);
+ MM_FILE_SET_MEDIA_FILE_SRC(src, filename);
- ret = _is_file_exist (filename);
+ ret = _is_file_exist(filename);
if (!ret) {
ret = MM_ERROR_FILE_NOT_FOUND;
goto END;
}
/*set attrs*/
- attrs = (mmf_attrs_t *) mmf_attrs_new_from_data ("content", g_content_attrs, ARRAY_SIZE (g_content_attrs), NULL, NULL);
+ attrs = (mmf_attrs_t *) mmf_attrs_new_from_data("content", g_content_attrs, ARRAY_SIZE(g_content_attrs), NULL, NULL);
if (!attrs) {
- debug_error ("attribute internal error.\n");
+ debug_error("attribute internal error.\n");
ret = MM_ERROR_FILE_INTERNAL;
goto END;
}
parse.type = MM_FILE_PARSE_TYPE_NORMAL;
- ret = _get_contents_info (attrs, &src, &parse);
+ ret = _get_contents_info(attrs, &src, &parse);
if (ret == MM_ERROR_NONE) {
*is_uhqa = parse.is_uhqa;
} else {
- debug_error ("_get_contents_info failed\n");
+ debug_error("_get_contents_info failed\n");
*is_uhqa = FALSE;
}
- mmf_attrs_free ((MMHandleType)attrs);
+ mmf_attrs_free((MMHandleType)attrs);
attrs = NULL;
END:
#ifdef __MMFILE_DYN_LOADING__
- _unload_dynamic_functions (&func_handle);
+ _unload_dynamic_functions(&func_handle);
#endif
#ifdef __MMFILE_TEST_MODE__
diff --git a/packaging/libmm-fileinfo.spec b/packaging/libmm-fileinfo.spec
index 24c8059..168a734 100755
--- a/packaging/libmm-fileinfo.spec
+++ b/packaging/libmm-fileinfo.spec
@@ -1,6 +1,6 @@
Name: libmm-fileinfo
Summary: Media Fileinfo
-Version: 0.6.36
+Version: 0.6.41
Release: 1
Group: System/Libraries
License: Apache-2.0
@@ -9,7 +9,7 @@ Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
BuildRequires: pkgconfig(mm-common)
-BuildRequires: pkgconfig(mm-log)
+BuildRequires: pkgconfig(dlog)
BuildRequires: pkgconfig(libswscale)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(libavcodec)
@@ -34,11 +34,15 @@ Multimedia Framework FileInfo Library (developement files)
%setup -q
%build
+export CFLAGS+=" -Wextra -Wno-array-bounds"
+export CFLAGS+=" -Wno-ignored-qualifiers -Wno-unused-parameter -Wshadow"
+export CFLAGS+=" -Wwrite-strings -Wswitch-default -Werror"
+export CFLAGS+=" -Wno-int-to-pointer-cast -Wno-pointer-to-int-cast"
./autogen.sh
CFLAGS="${CFLAGS} -D_MM_PROJECT_FLOATER -DEXPORT_API=\"__attribute__((visibility(\\\"default\\\")))\" " LDFLAGS="${LDFLAGS}" ./configure --disable-testmode --disable-dump --enable-dyn --disable-iommap --prefix=/usr --disable-gtk
-make %{?jobs:-j%jobs}
+make
%install
%make_install
diff --git a/tests/mm_file_memtrace_reader.c b/tests/mm_file_memtrace_reader.c
index 8354a92..007488a 100755
--- a/tests/mm_file_memtrace_reader.c
+++ b/tests/mm_file_memtrace_reader.c
@@ -32,193 +32,169 @@
-int get_address (char *linebuff, char *ptrbuff)
+int get_address(char *linebuff, char *ptrbuff)
{
- char *head = linebuff;
+ char *head = linebuff;
- if (!linebuff || !ptrbuff)
- return 0;
+ if (!linebuff || !ptrbuff)
+ return 0;
- head = head + PREFIX_STRING_LEN;
+ head = head + PREFIX_STRING_LEN;
- while (*head != ' ')
- {
- *ptrbuff = *head;
- ptrbuff++;
- head++;
- }
+ while (*head != ' ') {
+ *ptrbuff = *head;
+ ptrbuff++;
+ head++;
+ }
- return 1;
+ return 1;
}
-int main (int argc, char *argv[])
+int main(int argc, char *argv[])
{
- char linebuffer[LINE_BUFFER_LEN];
- char ptrbuffer[ADDR_BUFFER_LEN];
-
- int alloccount = 0;
- int freecount = 0;
-
- if (argc != 2)
- {
- printf ("Usage: ./memtrace-read memtrace.mtr\n");
- exit (1);
- }
-
- FILE *fp1 = fopen (argv[1], "r");
- FILE *fp2 = fopen ("memtrace-result.txt", "w");
-
- if (!fp1 || !fp2)
- {
- printf ("fail to open %s\n", argv[1]);
- exit (1);
- }
-
- while (1)
- {
- memset (linebuffer, 0x00, LINE_BUFFER_LEN);
- memset (ptrbuffer, 0x00, ADDR_BUFFER_LEN);
-
- if (fgets (linebuffer, LINE_BUFFER_LEN, fp1) == NULL)
- break;
-
- if (memcmp (MALLOC_STRING, linebuffer, PREFIX_STRING_LEN) == 0)
- {
- get_address (linebuffer, ptrbuffer);
- alloccount++;
- }
-
- if (memcmp (FREE_STRING, linebuffer, PREFIX_STRING_LEN) == 0)
- {
- get_address (linebuffer, ptrbuffer);
- freecount++;
- }
- }
-
- if (alloccount != freecount)
- {
- char alloclist[alloccount][ADDR_BUFFER_LEN];
- int alloccountlist[alloccount];
- char freelist[freecount][ADDR_BUFFER_LEN];
- int freecountlist[freecount];
-
- int i = 0;
- int allocindex = 0;
- int freeindex = 0;
- int totalcount = 0;
-
- memset (alloclist, 0x00, alloccount*ADDR_BUFFER_LEN);
- memset (alloccountlist, 0x00, alloccount*4);
-
- memset (freelist, 0x00, freecount*ADDR_BUFFER_LEN);
- memset (freecountlist, 0x00, freecount*4);
-
- fseek (fp1, 0, SEEK_SET);
-
- while (1)
- {
- memset (linebuffer, 0x00, LINE_BUFFER_LEN);
- memset (ptrbuffer, 0x00, ADDR_BUFFER_LEN);
-
- if (fgets (linebuffer, LINE_BUFFER_LEN, fp1) == NULL)
- break;
-
- totalcount++;
- if (memcmp (MALLOC_STRING, linebuffer, PREFIX_STRING_LEN) == 0)
- {
- int i = 0;
-
- get_address (linebuffer, ptrbuffer);
-
- for (i = 0; i < alloccount; i++)
- {
- if (memcmp (ptrbuffer, alloclist[i], strlen(ptrbuffer)) == 0)
- {
- alloccountlist[i]++;
- break;
- }
- }
-
- if ( i == alloccount)
- {
- memcpy (alloclist[allocindex], ptrbuffer, strlen(ptrbuffer));
- alloccountlist[allocindex]++;
- allocindex++;
- }
- }
-
- if (memcmp (FREE_STRING, linebuffer, PREFIX_STRING_LEN) == 0)
- {
- int i = 0;
-
- get_address (linebuffer, ptrbuffer);
-
- for (i = 0; i < freecount; i++)
- {
- if (memcmp (ptrbuffer, freelist[i], strlen(ptrbuffer)) == 0)
- {
- freecountlist[i]++;
- break;
- }
- }
-
- if ( i == freecount)
- {
- memcpy (freelist[freeindex], ptrbuffer, strlen(ptrbuffer));
- freecountlist[freeindex]++;
- freeindex++;
- }
- }
- }
-
- printf ("Total: %d mem operation\n", totalcount);
-
- int i1 = 0, i2 = 0;
-
-
- fprintf (fp2, "-------------------------------------------------------------\n");
- fprintf (fp2, "ADDRESS (malloc count, free cout, diff)\n");
-
-
- for ( i1 = 0; i1 < allocindex; i1++)
- {
- for (i2 = 0; i2 < freeindex; i2++)
- {
- if (strcmp (alloclist[i1], freelist[i2]) == 0)
- {
- if (strcmp (alloclist[i1], "Checked") != 0)
- break;
- }
- }
-
- if (i2 == freeindex)
- {
- // fprintf (fp2, "%s error\n", alloclist[i1]);
- }
- else
- {
- fprintf (fp2, "%s %12d %8d %8d\n", alloclist[i1], alloccountlist[i1], freecountlist[i2], alloccountlist[i1] - freecountlist[i2]);
- strcpy (alloclist[i1], "Checked");
- strcpy (freelist[i2], "Checked");
- }
- }
-
- for (i = 0; i < allocindex; i++)
- {
- if ( strcmp (alloclist[i], "Checked") != 0 )
- fprintf (fp2, "%s error\n", alloclist[i]);
- }
-
- for (i = 0; i < freeindex; i++)
- {
- if ( strcmp (freelist[i], "Checked") != 0 )
- fprintf (fp2, "%s error\n", freelist[i]);
- }
- }
-
- fclose (fp1);
- fclose (fp2);
-
- exit (0);
+ char linebuffer[LINE_BUFFER_LEN];
+ char ptrbuffer[ADDR_BUFFER_LEN];
+
+ int alloccount = 0;
+ int freecount = 0;
+
+ if (argc != 2) {
+ printf("Usage: ./memtrace-read memtrace.mtr\n");
+ exit(1);
+ }
+
+ FILE *fp1 = fopen(argv[1], "r");
+ FILE *fp2 = fopen("memtrace-result.txt", "w");
+
+ if (!fp1 || !fp2) {
+ printf("fail to open %s\n", argv[1]);
+ exit(1);
+ }
+
+ while (1) {
+ memset(linebuffer, 0x00, LINE_BUFFER_LEN);
+ memset(ptrbuffer, 0x00, ADDR_BUFFER_LEN);
+
+ if (fgets(linebuffer, LINE_BUFFER_LEN, fp1) == NULL)
+ break;
+
+ if (memcmp(MALLOC_STRING, linebuffer, PREFIX_STRING_LEN) == 0) {
+ get_address(linebuffer, ptrbuffer);
+ alloccount++;
+ }
+
+ if (memcmp(FREE_STRING, linebuffer, PREFIX_STRING_LEN) == 0) {
+ get_address(linebuffer, ptrbuffer);
+ freecount++;
+ }
+ }
+
+ if (alloccount != freecount) {
+ char alloclist[alloccount][ADDR_BUFFER_LEN];
+ int alloccountlist[alloccount];
+ char freelist[freecount][ADDR_BUFFER_LEN];
+ int freecountlist[freecount];
+
+ int i = 0;
+ int allocindex = 0;
+ int freeindex = 0;
+ int totalcount = 0;
+
+ memset(alloclist, 0x00, alloccount * ADDR_BUFFER_LEN);
+ memset(alloccountlist, 0x00, alloccount * 4);
+
+ memset(freelist, 0x00, freecount * ADDR_BUFFER_LEN);
+ memset(freecountlist, 0x00, freecount * 4);
+
+ fseek(fp1, 0, SEEK_SET);
+
+ while (1) {
+ memset(linebuffer, 0x00, LINE_BUFFER_LEN);
+ memset(ptrbuffer, 0x00, ADDR_BUFFER_LEN);
+
+ if (fgets(linebuffer, LINE_BUFFER_LEN, fp1) == NULL)
+ break;
+
+ totalcount++;
+ if (memcmp(MALLOC_STRING, linebuffer, PREFIX_STRING_LEN) == 0) {
+ int i = 0;
+
+ get_address(linebuffer, ptrbuffer);
+
+ for (i = 0; i < alloccount; i++) {
+ if (memcmp(ptrbuffer, alloclist[i], strlen(ptrbuffer)) == 0) {
+ alloccountlist[i]++;
+ break;
+ }
+ }
+
+ if (i == alloccount) {
+ memcpy(alloclist[allocindex], ptrbuffer, strlen(ptrbuffer));
+ alloccountlist[allocindex]++;
+ allocindex++;
+ }
+ }
+
+ if (memcmp(FREE_STRING, linebuffer, PREFIX_STRING_LEN) == 0) {
+ int i = 0;
+
+ get_address(linebuffer, ptrbuffer);
+
+ for (i = 0; i < freecount; i++) {
+ if (memcmp(ptrbuffer, freelist[i], strlen(ptrbuffer)) == 0) {
+ freecountlist[i]++;
+ break;
+ }
+ }
+
+ if (i == freecount) {
+ memcpy(freelist[freeindex], ptrbuffer, strlen(ptrbuffer));
+ freecountlist[freeindex]++;
+ freeindex++;
+ }
+ }
+ }
+
+ printf("Total: %d mem operation\n", totalcount);
+
+ int i1 = 0, i2 = 0;
+
+
+ fprintf(fp2, "-------------------------------------------------------------\n");
+ fprintf(fp2, "ADDRESS (malloc count, free cout, diff)\n");
+
+
+ for (i1 = 0; i1 < allocindex; i1++) {
+ for (i2 = 0; i2 < freeindex; i2++) {
+ if (strcmp(alloclist[i1], freelist[i2]) == 0) {
+ if (strcmp(alloclist[i1], "Checked") != 0)
+ break;
+ }
+ }
+
+ if (i2 == freeindex) {
+ /* fprintf (fp2, "%s error\n", alloclist[i1]); */
+ } else {
+ fprintf(fp2, "%s %12d %8d %8d\n", alloclist[i1], alloccountlist[i1], freecountlist[i2], alloccountlist[i1] - freecountlist[i2]);
+ strcpy(alloclist[i1], "Checked");
+ strcpy(freelist[i2], "Checked");
+ }
+ }
+
+ for (i = 0; i < allocindex; i++) {
+ if (strcmp(alloclist[i], "Checked") != 0)
+ fprintf(fp2, "%s error\n", alloclist[i]);
+ }
+
+ for (i = 0; i < freeindex; i++) {
+ if (strcmp(freelist[i], "Checked") != 0)
+ fprintf(fp2, "%s error\n", freelist[i]);
+ }
+ }
+
+ fclose(fp1);
+ fclose(fp2);
+
+ exit(0);
}
diff --git a/tests/mm_file_test.c b/tests/mm_file_test.c
index 621d09b..7cff226 100755
--- a/tests/mm_file_test.c
+++ b/tests/mm_file_test.c
@@ -35,17 +35,17 @@
#include "mm_file_traverse.h"
#define MM_TIME_CHECK_START \
-{ FILE *msg_tmp_fp = fopen("time_check.txt", "a+"); struct timeval start, finish; gettimeofday(&start, NULL);
+ { FILE *msg_tmp_fp = fopen("time_check.txt", "a+"); struct timeval start, finish; gettimeofday(&start, NULL);
#define MM_TIME_CHECK_FINISH(title) \
-gettimeofday(&finish, NULL); \
-double end_time = (finish.tv_sec + 1e-6*finish.tv_usec); \
-double start_time = (start.tv_sec + 1e-6*start.tv_usec); \
-if(msg_tmp_fp != NULL) { \
-fprintf(msg_tmp_fp, "%s\n", title); \
-fprintf(msg_tmp_fp, " - start_time: %3.5lf sec\n", start_time); \
-fprintf(msg_tmp_fp, " - finish_time: %3.5lf sec\n", end_time); \
-fprintf(msg_tmp_fp, " - elapsed time: %3.5lf sec\n", end_time - start_time); \
-fflush(msg_tmp_fp); fclose(msg_tmp_fp); }}
+ gettimeofday(&finish, NULL); \
+ double end_time = (finish.tv_sec + 1e-6*finish.tv_usec); \
+ double start_time = (start.tv_sec + 1e-6*start.tv_usec); \
+ if (msg_tmp_fp != NULL) { \
+ fprintf(msg_tmp_fp, "%s\n", title); \
+ fprintf(msg_tmp_fp, " - start_time: %3.5lf sec\n", start_time); \
+ fprintf(msg_tmp_fp, " - finish_time: %3.5lf sec\n", end_time); \
+ fprintf(msg_tmp_fp, " - elapsed time: %3.5lf sec\n", end_time - start_time); \
+ fflush(msg_tmp_fp); fclose(msg_tmp_fp); }}
typedef struct _mmfile_value {
int len;
@@ -54,8 +54,8 @@ typedef struct _mmfile_value {
double d_val;
char *s_val;
void *p_val;
- }value;
-}mmfile_value_t;
+ } value;
+} mmfile_value_t;
typedef struct _TagContext {
mmfile_value_t artist;
@@ -65,24 +65,24 @@ typedef struct _TagContext {
mmfile_value_t genre;
mmfile_value_t author;
mmfile_value_t copyright;
- mmfile_value_t date; //string
- mmfile_value_t recdate; //string
+ mmfile_value_t date; /*string */
+ mmfile_value_t recdate; /*string */
mmfile_value_t description;
mmfile_value_t comment;
- mmfile_value_t artwork; //data
- mmfile_value_t artwork_size; //int
+ mmfile_value_t artwork; /*data */
+ mmfile_value_t artwork_size; /*int */
mmfile_value_t artwork_mime;
mmfile_value_t track_num;
mmfile_value_t classfication;
mmfile_value_t rating;
mmfile_value_t conductor;
- mmfile_value_t longitude; //-> double
- mmfile_value_t latitude;
- mmfile_value_t altitude; //<-double
+ mmfile_value_t longitude; /*-> double */
+ mmfile_value_t latitude;
+ mmfile_value_t altitude; /*<-double */
mmfile_value_t unsynclyrics;
mmfile_value_t synclyrics_size;
- mmfile_value_t rotate; //string
-}TagContext_t;
+ mmfile_value_t rotate; /*string */
+} TagContext_t;
typedef struct _ContentContext {
int duration;
@@ -101,62 +101,66 @@ typedef struct _ContentContext {
int audio_track_num;
int audio_bitpersample;
mmfile_value_t thumbnail;
-}ContentContext_t;
-
-
-char * AudioCodecTypeString [] = {
- "AMR", "G723.1", "MP3", "OGG", "AAC", "WMA", "MMF", "ADPCM", "WAVE", "WAVE NEW", "MIDI", "IMELODY", "MXMF", "MPEG1-Layer1 codec", "MPEG1-Layer2 codec",
- "G711", "G722", "G722.1", "G722.2 (AMR-WB)", "G723 wideband speech", "G726 (ADPCM)", "G728 speech", "G729", "G729a", "G729.1",
- "Real",
- "AAC-Low complexity", "AAC-Main profile", "AAC-Scalable sample rate", "AAC-Long term prediction", "AAC-High Efficiency v1", "AAC-High efficiency v2",
- "DolbyDigital", "Apple Lossless", "Sony proprietary", "SPEEX", "Vorbis", "AIFF", "AU", "None (will be deprecated)",
- "PCM", "ALAW", "MULAW", "MS ADPCM", "FLAC"
+} ContentContext_t;
+
+
+const char *AudioCodecTypeString[] = {
+ "AMR", "G723.1", "MP3", "OGG", "AAC", "WMA", "MMF", "ADPCM", "WAVE", "WAVE NEW", /* 0~9 */
+ "MIDI", "IMELODY", "MXMF", "MPEG1-Layer1 codec", "MPEG1-Layer2 codec", /* 10~14 */
+ "G711", "G722", "G722.1", "G722.2 (AMR-WB)", "G723 wideband speech", /* 15~19 */
+ "G726 (ADPCM)", "G728 speech", "G729", "G729a", "G729.1", /* 20~24 */
+ "Real", "AAC-Low complexity", "AAC-Main profile", "AAC-Scalable sample rate", "AAC-Long term prediction", /* 25~29 */
+ "AAC-High Efficiency v1", "AAC-High efficiency v2", "DolbyDigital", "Apple Lossless", "Sony proprietary", /* 30~34 */
+ "SPEEX", "Vorbis", "AIFF", "AU", "None (will be deprecated)", /*35~39 */
+ "PCM", "ALAW", "MULAW", "MS ADPCM", "FLAC" /* 40~44 */
};
-char * VideoCodecTypeString [] = {
- "None (will be deprecated)",
- "H263", "H264", "H26L", "MPEG4", "MPEG1", "WMV", "DIVX", "XVID", "H261", "H262/MPEG2-part2", "H263v2", "H263v3",
- "Motion JPEG", "MPEG2", "MPEG4 part-2 Simple profile", "MPEG4 part-2 Advanced Simple profile", "MPEG4 part-2 Main profile",
- "MPEG4 part-2 Core profile", "MPEG4 part-2 Adv Coding Eff profile", "MPEG4 part-2 Adv RealTime Simple profile",
- "MPEG4 part-10 (h.264)", "Real", "VC-1", "AVS", "Cinepak", "Indeo", "Theora", "Flv"
+const char *VideoCodecTypeString[] = {
+ "None (will be deprecated)", /* 0 */
+ "H263", "H264", "H26L", "MPEG4", "MPEG1", /* 1~5 */
+ "WMV", "DIVX", "XVID", "H261", "H262/MPEG2-part2", /* 6~10 */
+ "H263v2", "H263v3", "Motion JPEG", "MPEG2", "MPEG4 part-2 Simple profile", /* 11~15 */
+ "MPEG4 part-2 Advanced Simple profile", "MPEG4 part-2 Main profile", "MPEG4 part-2 Core profile", "MPEG4 part-2 Adv Coding Eff profile", "MPEG4 part-2 Adv RealTime Simple profile", /* 16~20 */
+ "MPEG4 part-10 (h.264)", "Real", "VC-1", "AVS", "Cinepak", /* 21~25 */
+ "Indeo", "Theora", "Flv" /* 26~28 */
};
FILE *fpFailList = NULL;
-static int mmfile_get_file_infomation (void *data, void* user_data, bool file_test);
+static int mmfile_get_file_infomation(void *data, void *user_data, bool file_test);
-inline static int mm_file_is_little_endian (void)
+inline static int mm_file_is_little_endian(void)
{
- int i = 0x00000001;
- return ((char *)&i)[0];
+ int i = 0x00000001;
+ return ((char *)&i)[0];
}
#define READ_FROM_FILE(FILE_PATH, data, size) \
-do{ \
- FILE * fp = fopen (FILE_PATH, "r"); \
- if (fp) { \
- fseek (fp, 0, SEEK_END); \
+ do { \
+ FILE *fp = fopen(FILE_PATH, "r"); \
+ if (fp) { \
+ fseek(fp, 0, SEEK_END); \
size = ftell(fp); \
- fseek (fp, 0, SEEK_SET); \
- if(size > 0) data = malloc (size); \
- if(data != NULL ) { if (fread (data, size, sizeof(char), fp) != size) { printf("fread error\n"); } } \
- fclose (fp); \
- printf("file size = %d\n", size ); \
- } \
-}while(0)
+ fseek(fp, 0, SEEK_SET); \
+ if (size > 0) data = malloc(size); \
+ if (data != NULL) { if (fread(data, size, sizeof(char), fp) != size) { printf("fread error\n"); } } \
+ fclose(fp); \
+ printf("file size = %d\n", size); \
+ } \
+ } while (0)
static int
-_is_file_exist (const char *filename)
+_is_file_exist(const char *filename)
{
int ret = 1;
if (filename) {
- const char* to_access = (strstr(filename,"file://")!=NULL)? filename+7:filename;
- ret = access (to_access, R_OK );
+ const char *to_access = (strstr(filename, "file://") != NULL) ? filename + 7 : filename;
+ ret = access(to_access, R_OK);
if (ret != 0) {
- printf ("file [%s] not found.\n", to_access);
+ printf("file [%s] not found.\n", to_access);
}
}
return !ret;
@@ -165,36 +169,36 @@ _is_file_exist (const char *filename)
int main(int argc, char **argv)
{
- struct stat statbuf;
- bool file_test = true; //if you want to test mm_file_create_content_XXX_from_memory() set file_test to false
-
- if (_is_file_exist (argv[1])) {
- int ret = lstat (argv[1], &statbuf);
- if ( ret < 0 ) {
- printf ("lstat error[%d]\n", ret);
- return MMFILE_FAIL;
- }
+ struct stat statbuf;
+ bool file_test = true; /*if you want to test mm_file_create_content_XXX_from_memory() set file_test to false */
+
+ if (_is_file_exist(argv[1])) {
+ int ret = lstat(argv[1], &statbuf);
+ if (ret < 0) {
+ printf("lstat error[%d]\n", ret);
+ return MMFILE_FAIL;
+ }
if (fpFailList == NULL) {
- fpFailList = fopen ("/opt/var/log/mmfile_fails.txt", "w");
+ fpFailList = fopen("/opt/var/log/mmfile_fails.txt", "w");
}
- if ( S_ISDIR (statbuf.st_mode) ) {
- mmfile_get_file_names (argv[1], mmfile_get_file_infomation, NULL);
+ if (S_ISDIR(statbuf.st_mode)) {
+ mmfile_get_file_names(argv[1], mmfile_get_file_infomation, NULL);
} else {
- mmfile_get_file_infomation (argv[1], NULL, file_test);
+ mmfile_get_file_infomation(argv[1], NULL, file_test);
}
if (fpFailList != NULL) {
- fflush (fpFailList);
- fclose (fpFailList);
+ fflush(fpFailList);
+ fclose(fpFailList);
}
- }
+ }
- return 0;//exit(0);
+ return 0;/*exit(0); */
}
-static int mmfile_get_file_infomation (void *data, void* user_data, bool file_test)
+static int mmfile_get_file_infomation(void *data, void *user_data, bool file_test)
{
MMHandleType content_attrs = 0;
MMHandleType tag_attrs = 0;
@@ -204,65 +208,63 @@ static int mmfile_get_file_infomation (void *data, void* user_data, bool file_te
int ret = 0;
char filename[512];
- memset (filename, 0x00, 512);
- memcpy (filename, (char*)data, strlen ((char*)data));
+ memset(filename, 0x00, 512);
+ memcpy(filename, (char *)data, strlen((char *)data));
MM_TIME_CHECK_START
- printf ("Extracting information for [%s] \n", filename);
+ printf("Extracting information for [%s] \n", filename);
/* get track info */
ret = mm_file_get_stream_info(filename, &audio_track_num, &video_track_num);
if (ret == MM_ERROR_NONE) {
- printf ("# audio=%d, video=%d\n", audio_track_num, video_track_num);
+ printf("# audio=%d, video=%d\n", audio_track_num, video_track_num);
} else {
- printf ("Failed to mm_file_get_stream_info() error=[%x]\n", ret);
+ printf("Failed to mm_file_get_stream_info() error=[%x]\n", ret);
}
- if(file_test) {
+ if (file_test) {
/* get content handle */
ret = mm_file_create_content_attrs(&content_attrs, filename);
} else {
- int file_size = 0;
- unsigned char * buffer = NULL;
+ unsigned int file_size = 0;
+ unsigned char *buffer = NULL;
/* Read file */
READ_FROM_FILE(filename, buffer, file_size);
- ret =mm_file_create_content_attrs_from_memory(&content_attrs, buffer, file_size, MM_FILE_FORMAT_3GP);
+ ret = mm_file_create_content_attrs_from_memory(&content_attrs, buffer, file_size, MM_FILE_FORMAT_3GP);
}
if (ret == MM_ERROR_NONE && content_attrs) {
ContentContext_t ccontent;
- memset (&ccontent, 0, sizeof (ContentContext_t));
+ memset(&ccontent, 0, sizeof(ContentContext_t));
ret = mm_file_get_attrs(content_attrs, &err_attr_name, MM_FILE_CONTENT_DURATION, &ccontent.duration, NULL);
printf("# duration: %d\n", ccontent.duration);
- if (ret != MM_ERROR_NONE && err_attr_name)
- {
+ if (ret != MM_ERROR_NONE && err_attr_name) {
printf("failed to get %s\n", err_attr_name);
free(err_attr_name);
err_attr_name = NULL;
}
- if (audio_track_num)
- {
+ if (audio_track_num) {
ret = mm_file_get_attrs(content_attrs,
- NULL,
- MM_FILE_CONTENT_AUDIO_CODEC, &ccontent.audio_codec,
- MM_FILE_CONTENT_AUDIO_SAMPLERATE, &ccontent.audio_samplerate,
- MM_FILE_CONTENT_AUDIO_BITRATE, &ccontent.audio_bitrate,
- MM_FILE_CONTENT_AUDIO_CHANNELS, &ccontent.audio_channel,
- MM_FILE_CONTENT_AUDIO_TRACK_INDEX, &ccontent.audio_track_id,
- MM_FILE_CONTENT_AUDIO_TRACK_COUNT, &ccontent.audio_track_num,
- MM_FILE_CONTENT_AUDIO_BITPERSAMPLE, &ccontent.audio_bitpersample,
- NULL);
-
- if(ret != MM_ERROR_NONE) {
+ NULL,
+ MM_FILE_CONTENT_AUDIO_CODEC, &ccontent.audio_codec,
+ MM_FILE_CONTENT_AUDIO_SAMPLERATE, &ccontent.audio_samplerate,
+ MM_FILE_CONTENT_AUDIO_BITRATE, &ccontent.audio_bitrate,
+ MM_FILE_CONTENT_AUDIO_CHANNELS, &ccontent.audio_channel,
+ MM_FILE_CONTENT_AUDIO_TRACK_INDEX, &ccontent.audio_track_id,
+ MM_FILE_CONTENT_AUDIO_TRACK_COUNT, &ccontent.audio_track_num,
+ MM_FILE_CONTENT_AUDIO_BITPERSAMPLE, &ccontent.audio_bitpersample,
+ NULL);
+
+ if (ret != MM_ERROR_NONE) {
printf("failed to get audio attrs\n");
} else {
- printf ("[Audio] ----------------------------------------- \n");
+ printf("[Audio] ----------------------------------------- \n");
printf("# audio codec: %d ", ccontent.audio_codec);
- printf ("[%s]\n", (ccontent.audio_codec >= 0 && ccontent.audio_codec < MM_AUDIO_CODEC_NUM)? AudioCodecTypeString[ccontent.audio_codec] : "Invalid");
+ printf("[%s]\n", (ccontent.audio_codec >= 0 && ccontent.audio_codec < MM_AUDIO_CODEC_NUM) ? AudioCodecTypeString[ccontent.audio_codec] : "Invalid");
printf("# audio samplerate: %d Hz\n", ccontent.audio_samplerate);
printf("# audio bitrate: %d bps\n", ccontent.audio_bitrate);
printf("# audio channel: %d\n", ccontent.audio_channel);
@@ -271,26 +273,25 @@ static int mmfile_get_file_infomation (void *data, void* user_data, bool file_te
printf("# audio bit per sample: %d\n", ccontent.audio_bitpersample);
}
}
-
- if (video_track_num)
- {
+
+ if (video_track_num) {
ret = mm_file_get_attrs(content_attrs,
- NULL,
- MM_FILE_CONTENT_VIDEO_CODEC, &ccontent.video_codec,
- MM_FILE_CONTENT_VIDEO_BITRATE, &ccontent.video_bitrate,
- MM_FILE_CONTENT_VIDEO_FPS, &ccontent.video_fps,
- MM_FILE_CONTENT_VIDEO_TRACK_INDEX, &ccontent.video_track_id,
- MM_FILE_CONTENT_VIDEO_WIDTH, &ccontent.video_w,
- MM_FILE_CONTENT_VIDEO_HEIGHT, &ccontent.video_h,
- MM_FILE_CONTENT_VIDEO_THUMBNAIL, &ccontent.thumbnail.value.p_val, &ccontent.thumbnail.len,
- NULL);
-
- if(ret != MM_ERROR_NONE) {
+ NULL,
+ MM_FILE_CONTENT_VIDEO_CODEC, &ccontent.video_codec,
+ MM_FILE_CONTENT_VIDEO_BITRATE, &ccontent.video_bitrate,
+ MM_FILE_CONTENT_VIDEO_FPS, &ccontent.video_fps,
+ MM_FILE_CONTENT_VIDEO_TRACK_INDEX, &ccontent.video_track_id,
+ MM_FILE_CONTENT_VIDEO_WIDTH, &ccontent.video_w,
+ MM_FILE_CONTENT_VIDEO_HEIGHT, &ccontent.video_h,
+ MM_FILE_CONTENT_VIDEO_THUMBNAIL, &ccontent.thumbnail.value.p_val, &ccontent.thumbnail.len,
+ NULL);
+
+ if (ret != MM_ERROR_NONE) {
printf("failed to get video attrs\n");
} else {
- printf ("[Video] ----------------------------------------- \n");
+ printf("[Video] ----------------------------------------- \n");
printf("# video codec: %d ", ccontent.video_codec);
- printf ("[%s]\n", (ccontent.video_codec >= 0 && ccontent.video_codec < MM_VIDEO_CODEC_NUM)? VideoCodecTypeString[ccontent.video_codec] : "Invalid");
+ printf("[%s]\n", (ccontent.video_codec >= 0 && ccontent.video_codec < MM_VIDEO_CODEC_NUM) ? VideoCodecTypeString[ccontent.video_codec] : "Invalid");
printf("# video bitrate: %d bps\n", ccontent.video_bitrate);
printf("# video fps: %d\n", ccontent.video_fps);
printf("# video track id: %d\n", ccontent.video_track_id);
@@ -301,61 +302,59 @@ static int mmfile_get_file_infomation (void *data, void* user_data, bool file_te
mm_file_destroy_content_attrs(content_attrs);
} else {
- printf ("Failed to mm_file_create_content_attrs() error=[%x]\n", ret);
+ printf("Failed to mm_file_create_content_attrs() error=[%x]\n", ret);
}
- if(file_test) {
+ if (file_test) {
/* get tag handle */
ret = mm_file_create_tag_attrs(&tag_attrs, filename);
} else {
- int file_size = 0;
- unsigned char * buffer = NULL;
+ unsigned int file_size = 0;
+ unsigned char *buffer = NULL;
/* Read file */
READ_FROM_FILE(filename, buffer, file_size);
- ret =mm_file_create_tag_attrs_from_memory(&tag_attrs, buffer, file_size, MM_FILE_FORMAT_3GP);
+ ret = mm_file_create_tag_attrs_from_memory(&tag_attrs, buffer, file_size, MM_FILE_FORMAT_3GP);
}
if (ret == MM_ERROR_NONE && tag_attrs) {
TagContext_t ctag;
- memset (&ctag, 0, sizeof (TagContext_t));
+ memset(&ctag, 0, sizeof(TagContext_t));
/* get attributes of tag */
- ret = mm_file_get_attrs( tag_attrs,
- &err_attr_name,
- MM_FILE_TAG_ARTIST, &ctag.artist.value.s_val, &ctag.artist.len,
- MM_FILE_TAG_ALBUM, &ctag.album.value.s_val, &ctag.album.len,
- MM_FILE_TAG_ALBUM_ARTIST, &ctag.album_artist.value.s_val, &ctag.album_artist.len,
- MM_FILE_TAG_TITLE, &ctag.title.value.s_val, &ctag.title.len,
- MM_FILE_TAG_GENRE, &ctag.genre.value.s_val, &ctag.genre.len,
- MM_FILE_TAG_AUTHOR, &ctag.author.value.s_val, &ctag.author.len,
- MM_FILE_TAG_COPYRIGHT, &ctag.copyright.value.s_val, &ctag.copyright.len,
- MM_FILE_TAG_DATE, &ctag.date.value.s_val, &ctag.date.len,
- MM_FILE_TAG_RECDATE, &ctag.recdate.value.s_val, &ctag.recdate.len,
- MM_FILE_TAG_DESCRIPTION, &ctag.description.value.s_val, &ctag.description.len,
- MM_FILE_TAG_COMMENT, &ctag.comment.value.s_val, &ctag.comment.len,
- MM_FILE_TAG_ARTWORK, &ctag.artwork.value.p_val, &ctag.artwork.len,
- MM_FILE_TAG_ARTWORK_SIZE, &ctag.artwork_size.value.i_val,
- MM_FILE_TAG_ARTWORK_MIME, &ctag.artwork_mime.value.s_val, &ctag.artwork_mime.len,
- MM_FILE_TAG_TRACK_NUM, &ctag.track_num.value.s_val, &ctag.track_num.len,
- MM_FILE_TAG_CLASSIFICATION, &ctag.classfication.value.s_val, &ctag.classfication.len,
- MM_FILE_TAG_RATING, &ctag.rating.value.s_val, &ctag.rating.len,
- MM_FILE_TAG_LONGITUDE, &ctag.longitude.value.d_val,
- MM_FILE_TAG_LATIDUE, &ctag.latitude.value.d_val,
- MM_FILE_TAG_ALTIDUE, &ctag.altitude.value.d_val,
- MM_FILE_TAG_CONDUCTOR, &ctag.conductor.value.s_val, &ctag.conductor.len,
- MM_FILE_TAG_UNSYNCLYRICS, &ctag.unsynclyrics.value.s_val, &ctag.unsynclyrics.len,
- MM_FILE_TAG_SYNCLYRICS_NUM, &ctag.synclyrics_size.value.i_val,
- MM_FILE_TAG_ROTATE, &ctag.rotate.value.s_val, &ctag.rotate.len,
- NULL);
- if (ret != MM_ERROR_NONE && err_attr_name)
- {
+ ret = mm_file_get_attrs(tag_attrs,
+ &err_attr_name,
+ MM_FILE_TAG_ARTIST, &ctag.artist.value.s_val, &ctag.artist.len,
+ MM_FILE_TAG_ALBUM, &ctag.album.value.s_val, &ctag.album.len,
+ MM_FILE_TAG_ALBUM_ARTIST, &ctag.album_artist.value.s_val, &ctag.album_artist.len,
+ MM_FILE_TAG_TITLE, &ctag.title.value.s_val, &ctag.title.len,
+ MM_FILE_TAG_GENRE, &ctag.genre.value.s_val, &ctag.genre.len,
+ MM_FILE_TAG_AUTHOR, &ctag.author.value.s_val, &ctag.author.len,
+ MM_FILE_TAG_COPYRIGHT, &ctag.copyright.value.s_val, &ctag.copyright.len,
+ MM_FILE_TAG_DATE, &ctag.date.value.s_val, &ctag.date.len,
+ MM_FILE_TAG_RECDATE, &ctag.recdate.value.s_val, &ctag.recdate.len,
+ MM_FILE_TAG_DESCRIPTION, &ctag.description.value.s_val, &ctag.description.len,
+ MM_FILE_TAG_COMMENT, &ctag.comment.value.s_val, &ctag.comment.len,
+ MM_FILE_TAG_ARTWORK, &ctag.artwork.value.p_val, &ctag.artwork.len,
+ MM_FILE_TAG_ARTWORK_SIZE, &ctag.artwork_size.value.i_val,
+ MM_FILE_TAG_ARTWORK_MIME, &ctag.artwork_mime.value.s_val, &ctag.artwork_mime.len,
+ MM_FILE_TAG_TRACK_NUM, &ctag.track_num.value.s_val, &ctag.track_num.len,
+ MM_FILE_TAG_CLASSIFICATION, &ctag.classfication.value.s_val, &ctag.classfication.len,
+ MM_FILE_TAG_RATING, &ctag.rating.value.s_val, &ctag.rating.len,
+ MM_FILE_TAG_LONGITUDE, &ctag.longitude.value.d_val,
+ MM_FILE_TAG_LATIDUE, &ctag.latitude.value.d_val,
+ MM_FILE_TAG_ALTIDUE, &ctag.altitude.value.d_val,
+ MM_FILE_TAG_CONDUCTOR, &ctag.conductor.value.s_val, &ctag.conductor.len,
+ MM_FILE_TAG_UNSYNCLYRICS, &ctag.unsynclyrics.value.s_val, &ctag.unsynclyrics.len,
+ MM_FILE_TAG_SYNCLYRICS_NUM, &ctag.synclyrics_size.value.i_val,
+ MM_FILE_TAG_ROTATE, &ctag.rotate.value.s_val, &ctag.rotate.len,
+ NULL);
+ if (ret != MM_ERROR_NONE && err_attr_name) {
printf("failed to get %s attrs\n", err_attr_name);
free(err_attr_name);
err_attr_name = NULL;
- if (msg_tmp_fp) /* opened by MM_TIME_CHECK_START */
- {
- fclose (msg_tmp_fp);
+ if (msg_tmp_fp) { /* opened by MM_TIME_CHECK_START */
+ fclose(msg_tmp_fp);
msg_tmp_fp = NULL;
}
mm_file_destroy_tag_attrs(tag_attrs);
@@ -363,7 +362,7 @@ static int mmfile_get_file_infomation (void *data, void* user_data, bool file_te
}
/* print tag information */
- printf ("[Tag] =================================== \n");
+ printf("[Tag] =================================== \n");
printf("# artist: [%s]\n", ctag.artist.value.s_val);
printf("# title: [%s]\n", ctag.title.value.s_val);
printf("# album: [%s]\n", ctag.album.value.s_val);
@@ -390,16 +389,16 @@ static int mmfile_get_file_infomation (void *data, void* user_data, bool file_te
printf("# synclyrics size: [%d]\n", ctag.synclyrics_size.value.i_val);
printf("# rotate: [%s]\n", ctag.rotate.value.s_val);
- if(ctag.synclyrics_size.value.i_val > 0) {
+ if (ctag.synclyrics_size.value.i_val > 0) {
int idx = 0;
unsigned long time_info = 0;
- char * lyrics_info = NULL;
+ char *lyrics_info = NULL;
printf("# synclyrics: \n");
-
- for(idx = 0; idx < ctag.synclyrics_size.value.i_val; idx++) {
+
+ for (idx = 0; idx < ctag.synclyrics_size.value.i_val; idx++) {
ret = mm_file_get_synclyrics_info(tag_attrs, idx, &time_info, &lyrics_info);
- if(ret == MM_ERROR_NONE) {
+ if (ret == MM_ERROR_NONE) {
printf("[%2d][%6ld][%s]\n", idx, time_info, lyrics_info);
} else {
printf("Error when get lyrics\n");
@@ -407,17 +406,25 @@ static int mmfile_get_file_infomation (void *data, void* user_data, bool file_te
}
}
}
-
+
/* release tag */
- mm_file_destroy_tag_attrs(tag_attrs);
+ ret = mm_file_destroy_tag_attrs(tag_attrs);
+ if (ret != MM_ERROR_NONE) {
+ printf("Error mm_file_destroy_tag_attrs: %d", ret);
+ if (msg_tmp_fp) {
+ fclose(msg_tmp_fp);
+ msg_tmp_fp = NULL;
+ }
+ return -1;
+ }
} else {
- printf ("Failed to mm_file_create_tag_attrs() error=[%x]\n", ret);
+ printf("Failed to mm_file_create_tag_attrs() error=[%x]\n", ret);
}
- printf ("=================================================\n\n");
+ printf("=================================================\n\n");
- MM_TIME_CHECK_FINISH (filename);
+ MM_TIME_CHECK_FINISH(filename);
- return 0;
+ return 0;
}
diff --git a/tests/mm_file_traverse.h b/tests/mm_file_traverse.h
index fc05bee..6d051b1 100755
--- a/tests/mm_file_traverse.h
+++ b/tests/mm_file_traverse.h
@@ -24,14 +24,13 @@
#define MMFILE_PATH_MAX 256
-typedef enum
-{
+typedef enum {
MMFILE_FAIL = 0,
- MMFILE_SUCCESS
+ MMFILE_SUCCESS
} MMFILE_RETURN;
-typedef int (*MMFunc) (void *data, void* user_data, bool file_test);
+typedef int (*MMFunc)(void *data, void *user_data, bool file_test);
-int mmfile_get_file_names (char *root_dir, MMFunc cbfunc, void* user_data);
+int mmfile_get_file_names(char *root_dir, MMFunc cbfunc, void *user_data);
#endif /* _MM_FILE_TRAVERSE_H_ */
diff --git a/tests/mm_file_traverser.c b/tests/mm_file_traverser.c
index 000ee9c..ec69a1f 100755
--- a/tests/mm_file_traverser.c
+++ b/tests/mm_file_traverser.c
@@ -33,91 +33,79 @@
static GList *g_directories = NULL;
-int mmfile_get_file_names (char *root_dir, MMFunc cbfunc, void* user_data)
+int mmfile_get_file_names(char *root_dir, MMFunc cbfunc, void *user_data)
{
struct stat statbuf;
struct dirent dirp;
struct dirent *result = NULL;
DIR *dp;
- char pdirname[MMFILE_PATH_MAX+1];
+ char pdirname[MMFILE_PATH_MAX + 1];
- memset (pdirname, 0x00, MMFILE_PATH_MAX+1);
-
- if ( lstat (root_dir, &statbuf) < 0 )
- {
- printf ("lstat error\n");
+ memset(pdirname, 0x00, MMFILE_PATH_MAX + 1);
+
+ if (lstat(root_dir, &statbuf) < 0) {
+ printf("lstat error\n");
return MMFILE_FAIL;
}
- if ( S_ISDIR (statbuf.st_mode) == 0 )
- {
- printf ("it is not directory\n");
+ if (S_ISDIR(statbuf.st_mode) == 0) {
+ printf("it is not directory\n");
return MMFILE_FAIL;
}
- g_directories = g_list_append(g_directories, strdup (root_dir));
+ g_directories = g_list_append(g_directories, strdup(root_dir));
int i = 0;
gpointer element_data = NULL;
- while ( (element_data = g_list_nth_data (g_directories, i)) != NULL )
- {
- if (strlen ((char*) element_data) > 0 && strlen ((char*) element_data) <= MMFILE_PATH_MAX)
- {
- strncpy (pdirname, (char*) element_data, strlen((char*) element_data));
-
- if ( (dp = opendir (pdirname)) != NULL )
- {
- while (!readdir_r(dp, &dirp, &result))
- {
- char cdirname[MMFILE_PATH_MAX+1];
-
- if ( strcmp (dirp.d_name, ".") == 0 ||
- strcmp (dirp.d_name, "..") == 0 )
- {
+ while ((element_data = g_list_nth_data(g_directories, i)) != NULL) {
+ if (strlen((char *) element_data) > 0 && strlen((char *) element_data) <= MMFILE_PATH_MAX) {
+ strncpy(pdirname, (char *) element_data, strlen((char *) element_data));
+
+ if ((dp = opendir(pdirname)) != NULL) {
+ while (!readdir_r(dp, &dirp, &result)) {
+ char cdirname[MMFILE_PATH_MAX + 1];
+
+ if (strcmp(dirp.d_name, ".") == 0 ||
+ strcmp(dirp.d_name, "..") == 0) {
continue;
}
- memset (cdirname, 0x00, MMFILE_PATH_MAX+1);
- strncpy (cdirname, pdirname, strlen(pdirname));
- strncat (cdirname, "/", 1);
- strncat (cdirname, dirp.d_name, strlen(dirp.d_name));
-
- if ( lstat (cdirname, &statbuf) < 0 )
- {
- printf ("lstat error\n");
- closedir (dp);
+ memset(cdirname, 0x00, MMFILE_PATH_MAX + 1);
+ strncpy(cdirname, pdirname, strlen(pdirname));
+ strncat(cdirname, "/", 1);
+ strncat(cdirname, dirp.d_name, strlen(dirp.d_name));
+
+ if (lstat(cdirname, &statbuf) < 0) {
+ printf("lstat error\n");
+ closedir(dp);
return MMFILE_FAIL;
}
- if ( S_ISDIR (statbuf.st_mode) )
- {
- printf ("directory: %s\n", cdirname);
- g_directories = g_list_append(g_directories, strdup (cdirname));
- }
- else
- {
- printf ("file: %s\n", cdirname);
- if ( cbfunc != NULL )
- {
- cbfunc (cdirname, user_data, true);
+ if (S_ISDIR(statbuf.st_mode)) {
+ printf("directory: %s\n", cdirname);
+ g_directories = g_list_append(g_directories, strdup(cdirname));
+ } else {
+ printf("file: %s\n", cdirname);
+ if (cbfunc != NULL) {
+ cbfunc(cdirname, user_data, true);
}
}
-
+
}
- closedir (dp);
+ closedir(dp);
}
}
i++;
}
- g_list_free (g_directories);
-
+ g_list_free(g_directories);
+
return MMFILE_SUCCESS;
-
-
+
+
}
diff --git a/utils/Makefile.am b/utils/Makefile.am
index 1ac70fd..1ff58e0 100755
--- a/utils/Makefile.am
+++ b/utils/Makefile.am
@@ -30,5 +30,5 @@ libmmfile_utils_la_LIBADD = $(MMCOMMON_LIBS) \
$(ICU_LIBS) \
$(VCONF_LIBS)
-libmmfile_utils_la_CFLAGS += $(MMLOG_CFLAGS) -DMMF_LOG_OWNER=0x040 -DMMF_DEBUG_PREFIX=\"MMF-FILE-UTILS\"
-libmmfile_utils_la_LIBADD += $(MMLOG_LIBS)
+libmmfile_utils_la_CFLAGS += $(DLOG_CFLAGS)
+libmmfile_utils_la_LIBADD += $(DLOG_LIBS)
diff --git a/utils/include/mm_file_utils.h b/utils/include/mm_file_utils.h
index 44a37df..561ccfe 100755
--- a/utils/include/mm_file_utils.h
+++ b/utils/include/mm_file_utils.h
@@ -54,49 +54,58 @@ extern "C" {
#endif
-////////////////////////////////////////////////////////////////////////
-// ENDIAN UTIL API //
-////////////////////////////////////////////////////////////////////////
-inline unsigned int mmfile_io_be_uint32 (unsigned int value);
-inline unsigned int mmfile_io_le_uint32 (unsigned int value);
-inline int mmfile_io_be_int32 (unsigned int value);
-inline int mmfile_io_le_int32 (unsigned int value);
-inline unsigned short mmfile_io_be_uint16 (unsigned short value);
-inline unsigned short mmfile_io_le_uint16 (unsigned short value);
-inline short mmfile_io_be_int16 (unsigned short value);
-inline short mmfile_io_le_int16 (unsigned short value);
-
-
-////////////////////////////////////////////////////////////////////////
-// FILE HEADER CHECK API //
-////////////////////////////////////////////////////////////////////////
-int MMFileFormatIsValidMP3 (const char *mmfileuri, int frameCnt);
-int MMFileFormatIsValidAAC (const char *mmfileuri);
-int MMFileFormatIsValidASF (const char *mmfileuri);
-int MMFileFormatIsValidMP4 (const char *mmfileuri);
-int MMFileFormatIsValidAVI (const char *mmfileuri);
-int MMFileFormatIsValidAMR (const char *mmfileuri);
-int MMFileFormatIsValidWAV (const char *mmfileuri);
-int MMFileFormatIsValidMMF (const char *mmfileuri);
-int MMFileFormatIsValidMID (const char *mmfileuri);
-int MMFileFormatIsValidIMY (const char *mmfileuri);
-int MMFileFormatIsValidWMA (const char *mmfileuri);
-int MMFileFormatIsValidWMV (const char *mmfileuri);
-int MMFileFormatIsValidOGG (const char *mmfileuri);
-int MMFileFormatIsValidMatroska (const char *mmfileuri);
-int MMFileFormatIsValidQT (const char *mmfileuri);
-int MMFileFormatIsValidFLAC (const char *mmfileuri);
-int MMFileFormatIsValidFLV (const char *mmfileuri);
-
-
-////////////////////////////////////////////////////////////////////////
-// IO HANDLER API //
-////////////////////////////////////////////////////////////////////////
+/*////////////////////////////////////////////////////////////////////// */
+/* ENDIAN UTIL API // */
+/*////////////////////////////////////////////////////////////////////// */
+inline unsigned int mmfile_io_be_uint32(unsigned int value);
+inline unsigned int mmfile_io_le_uint32(unsigned int value);
+inline int mmfile_io_be_int32(unsigned int value);
+inline int mmfile_io_le_int32(unsigned int value);
+inline unsigned short mmfile_io_be_uint16(unsigned short value);
+inline unsigned short mmfile_io_le_uint16(unsigned short value);
+inline short mmfile_io_be_int16(unsigned short value);
+inline short mmfile_io_le_int16(unsigned short value);
+
+typedef struct MMFileIOHandle {
+ struct MMFileIOFunc *iofunc;
+ int flags; /* file flags */
+ void *privateData;
+ char *fileName;
+} MMFileIOHandle;
+
+/*////////////////////////////////////////////////////////////////////// */
+/* FILE HEADER CHECK API // */
+/*////////////////////////////////////////////////////////////////////// */
+int MMFileFormatIsValidMP3(MMFileIOHandle *pFileIO, const char *mmfileuri, int frameCnt);
+int MMFileFormatIsValidAAC(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidASF(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidMP4(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidAVI(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidAMR(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidWAV(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidMMF(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidMID(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidIMY(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidWMA(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidWMV(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidOGG(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidREAL(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidMatroska(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidQT(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidFLAC(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidFLV(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidMPEGTS(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidMPEGPS(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidMPEGVIDEO(MMFileIOHandle *pFileIO, const char *mmfileuri);
+int MMFileFormatIsValidMPEGAUDIO(MMFileIOHandle *pFileIO, const char *mmfileuri);
+
+
+/*////////////////////////////////////////////////////////////////////// */
+/* IO HANDLER API // */
+/*////////////////////////////////////////////////////////////////////// */
#define MMFILE_URI_MAX_LEN 512
#define MMFILE_FILE_URI "file://"
#define MMFILE_FILE_URI_LEN 7
-#define MMFILE_DRM_URI "drm://"
-#define MMFILE_DRM_URI_LEN 6
#define MMFILE_MEM_URI "mem://"
#define MMFILE_MEM_URI_LEN 6
#define MMFILE_MMAP_URI "mmap://"
@@ -110,152 +119,142 @@ int MMFileFormatIsValidFLV (const char *mmfileuri);
#define MMFILE_SEEK_CUR SEEK_CUR
#define MMFILE_SEEK_END SEEK_END
-typedef struct MMFileIOHandle
-{
- struct MMFileIOFunc *iofunc;
- int flags; /* file flags */
- void *privateData;
- char *fileName;
-} MMFileIOHandle;
-
-typedef struct MMFileIOFunc
-{
+typedef struct MMFileIOFunc {
const char *handleName;
- int (*mmfile_open) (MMFileIOHandle *h, const char *filename, int flags);
- int (*mmfile_read) (MMFileIOHandle *h, unsigned char *buf, int size);
- int (*mmfile_write)(MMFileIOHandle *h, unsigned char *buf, int size);
- long long (*mmfile_seek) (MMFileIOHandle *h, long long pos, int whence);
- long long (*mmfile_tell) (MMFileIOHandle *h);
- int (*mmfile_close)(MMFileIOHandle *h);
+ int (*mmfile_open)(MMFileIOHandle *h, const char *filename, int flags);
+ int (*mmfile_read)(MMFileIOHandle *h, unsigned char *buf, int size);
+ int (*mmfile_write)(MMFileIOHandle *h, unsigned char *buf, int size);
+ int64_t(*mmfile_seek)(MMFileIOHandle *h, int64_t pos, int whence);
+ long long(*mmfile_tell)(MMFileIOHandle *h);
+ int (*mmfile_close)(MMFileIOHandle *h);
struct MMFileIOFunc *next;
} MMFileIOFunc;
-int mmfile_register_io_func (MMFileIOFunc *iofunc);
-int mmfile_register_io_all ();
+int mmfile_register_io_func(MMFileIOFunc *iofunc);
+int mmfile_register_io_all();
-int mmfile_open (MMFileIOHandle **h, const char *filename, int flags);
-int mmfile_read (MMFileIOHandle *h, unsigned char *buf, int size);
+int mmfile_open(MMFileIOHandle **h, const char *filename, int flags);
+int mmfile_read(MMFileIOHandle *h, unsigned char *buf, int size);
int mmfile_write(MMFileIOHandle *h, unsigned char *buf, int size);
-long long mmfile_seek (MMFileIOHandle *h, long long pos, int whence);
-long long mmfile_tell (MMFileIOHandle *h);
+int64_t mmfile_seek(MMFileIOHandle *h, int64_t pos, int whence);
+long long mmfile_tell(MMFileIOHandle *h);
int mmfile_close(MMFileIOHandle *h);
-////////////////////////////////////////////////////////////////////////
-// MIME API //
-////////////////////////////////////////////////////////////////////////
+/*////////////////////////////////////////////////////////////////////// */
+/* MIME API // */
+/*////////////////////////////////////////////////////////////////////// */
#define MMFILE_FILE_FMT_MAX_LEN 25
#define MMFILE_MIMETYPE_MAX_LEN 40
#define MMFILE_FILE_EXT_MAX_LEN 7
-int mmfile_util_get_ffmpeg_format (const char *mime, char *ffmpegFormat);
-int mmfile_util_get_file_ext (const char *mime, char *ext);
+int mmfile_util_get_ffmpeg_format(const char *mime, char *ffmpegFormat);
+int mmfile_util_get_file_ext(const char *mime, char *ext);
-////////////////////////////////////////////////////////////////////////
-// PRINT API //
-////////////////////////////////////////////////////////////////////////
-void mmfile_format_print_contents (MMFileFormatContext*in);
-void mmfile_format_print_tags (MMFileFormatContext*in);
-void mmfile_codec_print (MMFileCodecContext *in);
-void mmfile_format_print_frame (MMFileFormatFrame *in);
+/*////////////////////////////////////////////////////////////////////// */
+/* PRINT API // */
+/*////////////////////////////////////////////////////////////////////// */
+void mmfile_format_print_contents(MMFileFormatContext *in);
+void mmfile_format_print_tags(MMFileFormatContext *in);
+void mmfile_codec_print(MMFileCodecContext *in);
+void mmfile_format_print_frame(MMFileFormatFrame *in);
-////////////////////////////////////////////////////////////////////////
-// STRING API //
-////////////////////////////////////////////////////////////////////////
-char **mmfile_strsplit (const char *string, const char *delimiter);
-void mmfile_strfreev (char **str_array);
-int mmfile_util_wstrlen (unsigned short *wText);
-short* mmfile_swap_2byte_string (short* mszOutput, short* mszInput, int length);
+/*////////////////////////////////////////////////////////////////////// */
+/* STRING API // */
+/*////////////////////////////////////////////////////////////////////// */
+char **mmfile_strsplit(const char *string, const char *delimiter);
+void mmfile_strfreev(char **str_array);
+int mmfile_util_wstrlen(unsigned short *wText);
+short *mmfile_swap_2byte_string(short *mszOutput, short *mszInput, int length);
char *mmfile_get_charset(const char *str);
-char *mmfile_string_convert (const char *str, unsigned int len,
- const char *to_codeset, const char *from_codeset,
- unsigned int *bytes_read,
- unsigned int *bytes_written);
-char *mmfile_strdup (const char *str);
+char *mmfile_string_convert(const char *str, unsigned int len,
+ const char *to_codeset, const char *from_codeset,
+ gsize *bytes_read,
+ unsigned int *bytes_written);
+char *mmfile_strdup(const char *str);
-////////////////////////////////////////////////////////////////////////
-// LOCALE API //
-////////////////////////////////////////////////////////////////////////
-char *MMFileUtilGetLocale (int *error);
+/*////////////////////////////////////////////////////////////////////// */
+/* LOCALE API // */
+/*////////////////////////////////////////////////////////////////////// */
+char *MMFileUtilGetLocale(int *error);
-////////////////////////////////////////////////////////////////////////
-// IMAGE API //
-////////////////////////////////////////////////////////////////////////
-typedef enum
-{
- MMFILE_PIXEL_FORMAT_YUV420 = 0,
- MMFILE_PIXEL_FORMAT_YUV422 = 1,
- MMFILE_PIXEL_FORMAT_RGB565 = 2,
- MMFILE_PIXEL_FORMAT_RGB888 = 3,
- MMFILE_PIXEL_FORMAT_MAX,
+/*////////////////////////////////////////////////////////////////////// */
+/* IMAGE API // */
+/*////////////////////////////////////////////////////////////////////// */
+typedef enum {
+ MMFILE_PIXEL_FORMAT_YUV420 = 0,
+ MMFILE_PIXEL_FORMAT_YUV422 = 1,
+ MMFILE_PIXEL_FORMAT_RGB565 = 2,
+ MMFILE_PIXEL_FORMAT_RGB888 = 3,
+ MMFILE_PIXEL_FORMAT_MAX,
} eMMFilePixelFormat;
-int mmfile_util_image_convert (unsigned char *src, eMMFilePixelFormat src_fmt, int src_width, int src_height,
- unsigned char *dst, eMMFilePixelFormat dst_fmt, int dst_width, int dst_height);
+int mmfile_util_image_convert(unsigned char *src, eMMFilePixelFormat src_fmt, int src_width, int src_height,
+ unsigned char *dst, eMMFilePixelFormat dst_fmt, int dst_width, int dst_height);
-////////////////////////////////////////////////////////////////////////
-// MEMORY API //
-////////////////////////////////////////////////////////////////////////
-void *mmfile_malloc (unsigned int size);
+/*////////////////////////////////////////////////////////////////////// */
+/* MEMORY API // */
+/*////////////////////////////////////////////////////////////////////// */
+void *mmfile_malloc(unsigned int size);
#define mmfile_free(ptr) do { if((ptr)) { mmfile_free_r((ptr)); (ptr) = NULL;} } while (0)
-void mmfile_free_r (void *ptr);
+void mmfile_free_r(void *ptr);
void *mmfile_realloc(void *ptr, unsigned int size);
-void *mmfile_memset (void *s, int c, unsigned int n);
-void *mmfile_memcpy (void *dest, const void *src, unsigned int n);
-
-////////////////////////////////////////////////////////////////////////
-// DATA STRUCTURE API //
-////////////////////////////////////////////////////////////////////////
-typedef void* MMFileList;
-MMFileList mmfile_list_alloc ();
-MMFileList mmfile_list_append (MMFileList list, void* data);
-MMFileList mmfile_list_prepend (MMFileList list, void* data);
-MMFileList mmfile_list_find (MMFileList list, void* data);
-MMFileList mmfile_list_first (MMFileList list);
-MMFileList mmfile_list_last (MMFileList list);
-MMFileList mmfile_list_nth (MMFileList list, unsigned int n);
-MMFileList mmfile_list_next (MMFileList list);
-MMFileList mmfile_list_previous (MMFileList list);
-unsigned int mmfile_list_length (MMFileList list);
-MMFileList mmfile_list_remove (MMFileList list, void *data);
-MMFileList mmfile_list_remove_all (MMFileList list, void *data);
-MMFileList mmfile_list_reverse (MMFileList list);
-void mmfile_list_free (MMFileList list);
-
-
-
-////////////////////////////////////////////////////////////////////////
-// MEMORY DEBUG API //
-////////////////////////////////////////////////////////////////////////
+void *mmfile_memset(void *s, int c, unsigned int n);
+void *mmfile_memcpy(void *dest, const void *src, unsigned int n);
+
+/*////////////////////////////////////////////////////////////////////// */
+/* DATA STRUCTURE API // */
+/*////////////////////////////////////////////////////////////////////// */
+typedef void *MMFileList;
+MMFileList mmfile_list_alloc();
+MMFileList mmfile_list_append(MMFileList list, void *data);
+MMFileList mmfile_list_prepend(MMFileList list, void *data);
+MMFileList mmfile_list_find(MMFileList list, void *data);
+MMFileList mmfile_list_first(MMFileList list);
+MMFileList mmfile_list_last(MMFileList list);
+MMFileList mmfile_list_nth(MMFileList list, unsigned int n);
+MMFileList mmfile_list_next(MMFileList list);
+MMFileList mmfile_list_previous(MMFileList list);
+unsigned int mmfile_list_length(MMFileList list);
+MMFileList mmfile_list_remove(MMFileList list, void *data);
+MMFileList mmfile_list_remove_all(MMFileList list, void *data);
+MMFileList mmfile_list_reverse(MMFileList list);
+void mmfile_list_free(MMFileList list);
+
+
+
+/*////////////////////////////////////////////////////////////////////// */
+/* MEMORY DEBUG API // */
+/*////////////////////////////////////////////////////////////////////// */
#ifdef __MMFILE_MEM_TRACE__
-void *mmfile_malloc_debug (unsigned int size, const char *func, unsigned int line);
-void *mmfile_calloc_debug (unsigned int nmemb, unsigned int size, const char *func, unsigned int line);
-void mmfile_free_debug (void *ptr, const char *func, unsigned int line);
-void *mmfile_realloc_debug (void *ptr, unsigned int size, const char *func, unsigned int line);
-void *mmfile_memset_debug (void *s, int c, unsigned int n, const char *func, unsigned int line);
-void *mmfile_memcpy_debug (void *dest, const void *src, unsigned int n, const char *func, unsigned int line);
-
-char *mmfile_string_convert_debug (const char *str, unsigned int len,
- const char *to_codeset, const char *from_codeset,
- int *bytes_read,
- int *bytes_written,
- const char *func,
- unsigned int line);
-char *mmfile_strdup_debug (const char *str, const char *func, unsigned int line);
+void *mmfile_malloc_debug(unsigned int size, const char *func, unsigned int line);
+void *mmfile_calloc_debug(unsigned int nmemb, unsigned int size, const char *func, unsigned int line);
+void mmfile_free_debug(void *ptr, const char *func, unsigned int line);
+void *mmfile_realloc_debug(void *ptr, unsigned int size, const char *func, unsigned int line);
+void *mmfile_memset_debug(void *s, int c, unsigned int n, const char *func, unsigned int line);
+void *mmfile_memcpy_debug(void *dest, const void *src, unsigned int n, const char *func, unsigned int line);
+
+char *mmfile_string_convert_debug(const char *str, unsigned int len,
+ const char *to_codeset, const char *from_codeset,
+ int *bytes_read,
+ int *bytes_written,
+ const char *func,
+ unsigned int line);
+char *mmfile_strdup_debug(const char *str, const char *func, unsigned int line);
#define mmfile_malloc(size) mmfile_malloc_debug((size), __func__, __LINE__)
#define mmfile_calloc(size) mmfile_calloc_debug((size), __func__, __LINE__)
@@ -264,16 +263,16 @@ char *mmfile_strdup_debug (const char *str, const char *func, unsigned int line)
#define mmfile_memset(ptr, c, n) mmfile_memset_debug((ptr), (c), (n), __func__, __LINE__)
#define mmfile_memcpy(dest, src, n) mmfile_memcpy_debug((ptr), (src), (n), __func__, __LINE__)
-#define mmfile_string_convert(str,len,to_codeset,from_codeset,bytes_read,bytes_written) mmfile_string_convert_debug((str),(len),(to_codeset),(from_codeset),(bytes_read),(bytes_written), __func__,__LINE__)
-#define mmfile_strdup(x) mmfile_strdup_debug((x),__func__,__LINE__)
-
+#define mmfile_string_convert(str, len, to_codeset, from_codeset, bytes_read, bytes_written) mmfile_string_convert_debug((str), (len), (to_codeset), (from_codeset), (bytes_read), (bytes_written), __func__, __LINE__)
+#define mmfile_strdup(x) mmfile_strdup_debug((x), __func__, __LINE__)
+
#endif
-////////////////////////////////////////////////////////////////////////
-// TAG API //
-////////////////////////////////////////////////////////////////////////
+/*////////////////////////////////////////////////////////////////////// */
+/* TAG API // */
+/*////////////////////////////////////////////////////////////////////// */
#define MM_FILE_REVERSE_BYTE_ORDER_INT(i) ((int)((((i)&0xFF000000)>>24) | (((i)&0x00FF0000)>>8) | (((i)&0x0000FF00)<<8) | (((i)&0x000000FF)<<24)))
#define MM_FILE_REVERSE_BYTE_ORDER_SHORT(s) ((short)((((s)&0xFF00)>>8) | (((s)&0x00FF)<<8)))
@@ -281,13 +280,12 @@ char *mmfile_strdup_debug (const char *str, const char *func, unsigned int line)
#define _FREE_EX(ptr) { if ((ptr)) {mmfile_free ((ptr)); (ptr) = NULL;} }
#define _STRNCPY_EX(dst,src,size) { if ((size>0)) {strncpy((char*)(dst), (char*)(src),(size)); *((dst) + (size)) = '\0';}}
-inline static int __AvMemstr (unsigned char* mem, unsigned char* str, int str_len, int search_range)
+inline static int __AvMemstr(unsigned char *mem, unsigned char *str, int str_len, int search_range)
{
int offset = 0;
unsigned char *pSrc = mem;
- for (offset = 0; offset < search_range; offset++ )
- {
+ for (offset = 0; offset < search_range; offset++) {
pSrc = mem + offset;
if (memcmp(pSrc, str, str_len) == 0)
return offset;
@@ -343,7 +341,7 @@ typedef enum {
} AvID3v2PictureType;
-#define MP3TAGINFO_SIZE 128 // file end 128 byte
+#define MP3TAGINFO_SIZE 128 /* file end 128 byte */
#define MP3_ID3_TITLE_LENGTH 30
#define MP3_ID3_ARTIST_LENGTH 30
#define MP3_ID3_ALBUM_LENGTH 30
@@ -370,11 +368,11 @@ typedef enum {
AV_ID3V2_UTF16_BE,
AV_ID3V2_UTF8,
AV_ID3V2_MAX
-
+
} AvID3v2EncodingType;
-typedef struct{
+typedef struct {
char *pImageBuf;
char *imageDescription;
char imageMIMEType[MP3_ID3_IMAGE_MIME_TYPE_MAX_LENGTH];
@@ -384,10 +382,10 @@ typedef struct{
int imgDesLen;
int imgMimetypeLen;
bool bURLInfo;
-
+
} AvTagVer2ImageInfo;
- typedef struct{
+typedef struct {
int tagLen;
char tagVersion;
@@ -419,9 +417,8 @@ typedef struct{
} AvTagVer2AdditionalData;
-
-typedef struct
-{
+
+typedef struct {
int titleLen;
int artistLen;
int authorLen;
@@ -436,11 +433,11 @@ typedef struct
int recdateLen;
int conductorLen;
int album_artistLen;
-
-// for PC Studio Podcast
+
+/* for PC Studio Podcast */
int contentGroupLen;
-
-// for ID3V2 Tag
+
+/* for ID3V2 Tag */
int encbyLen;
int urlLen;
int originartistLen;
@@ -448,68 +445,65 @@ typedef struct
int unsynclyricsLen;
int syncLyricsNum;
-// To send resolution info to appl from OEM
- int width;
+/* To send resolution info to appl from OEM */
+ int width;
int height;
-
+
unsigned int bitRate;
unsigned int sampleRate;
unsigned int channels;
-// unsigned long creationTime;
+/* unsigned long creationTime; */
long long duration;
-// for mp3 Info
- char *pToc; // VBR�϶� SeekPosition�� ���ϱ� ���� TOC ���̺��� ������ ��\EF\BF?�ִ� char �迭 , 100 ����Ʈ ����
- unsigned int mpegVersion; // 1 : mpeg 1, 2 : mpeg 2, 3 : mpeg2.5
- unsigned int layer; // 1 : layer1, 2 : layer2, 3 : layer3
- unsigned int channelIndex; // 0 : stereo, 1 : joint_stereo, 2 : dual_channel, 3 : mono
+/* for mp3 Info */
+ char *pToc; /* VBR�϶� SeekPosition�� ���ϱ� ���� TOC ���̺��� ������ ��\EF\BF?�ִ� char �迭, 100 ����Ʈ ���� */
+ unsigned int mpegVersion; /* 1 : mpeg 1, 2 : mpeg 2, 3 : mpeg2.5 */
+ unsigned int layer; /* 1 : layer1, 2 : layer2, 3 : layer3 */
+ unsigned int channelIndex; /* 0 : stereo, 1 : joint_stereo, 2 : dual_channel, 3 : mono */
unsigned int objectType;
unsigned int headerType;
- long long fileLen; // mp3 ������ ��ü ����
- long headerPos; // mp3 ����\EF\BF?ó������ ��Ÿ���� ��ġ
- long long datafileLen; // ID3Tag���� �����ϰ� ���� mp3 frame���� ���� , VBR�϶� XHEADDATA �� bytes �� �ش��Ѵ�
- int frameSize; // mp3 frame �� ���� ũ��
- int frameNum; // mp3 ���Ͽ� �������� � ����ִ°\EF\BF?
- bool bVbr; // VBR mp3?
- bool bPadding; // Padding?
+ long long fileLen; /* mp3 ������ ��ü ���� */
+ long headerPos; /* mp3 ����\EF\BF?ó������ ��Ÿ���� ��ġ */
+ long long datafileLen; /* ID3Tag���� �����ϰ� ���� mp3 frame���� ����, VBR�϶� XHEADDATA �� bytes �� �ش��Ѵ� */
+ int frameSize; /* mp3 frame �� ���� ũ�� */
+ int frameNum; /* mp3 ���Ͽ� �������� � ����ִ°\EF\BF? */
+ bool bVbr; /* VBR mp3? */
+ bool bPadding; /* Padding? */
bool bV1tagFound;
- char *pTitle; //Title/songname/
- char *pArtist; //Lead performer(s)/Soloist(s),
- char *pAuthor; //Author
+ char *pTitle; /*Title/songname/ */
+ char *pArtist; /*Lead performer(s)/Soloist(s), */
+ char *pAuthor; /*Author */
char *pCopyright;
char *pDescription;
char *pComment;
char *pRating;
- char *pAlbum; //Album/Movie/
+ char *pAlbum; /*Album/Movie/ */
char *pAlbum_Artist;
char *pYear;
- char *pGenre;
- char *pTrackNum; //Track number/Position in set
- char *pRecDate; //Recording dates
-
+ char *pGenre;
+ char *pTrackNum; /*Track number/Position in set */
+ char *pRecDate; /*Recording dates */
+
char *pConductor; /*[#TPE3 Conductor/performer refinement], ADDED: 2010-01-xx*/
-
-// for PC Studio Podcast
+
+/* for PC Studio Podcast */
char *pContentGroup;
-// for ID3V2 Tag
- char *pEncBy; //Encoded by
- char *pURL; //User defined URL link frame for ID3V2 Tag
- char *pOriginArtist; //Original artist(s)/performer(s)
- char *pComposer; //Composer
- char *pUnsyncLyrics; //Unsychronised lyrics/text transcription
- GList *pSyncLyrics; //Sychronised lyrics/text
-
- AvTagVer2ImageInfo imageInfo; //Album art attached feature
- AvTagVer2AdditionalData tagV2Info; //Needed data for ID3 tag parsing
-
-// for DRM 2.0
- char *pTransactionID;
-
-//for ID3V1 Tag
- unsigned char genre;
-
+/* for ID3V2 Tag */
+ char *pEncBy; /*Encoded by */
+ char *pURL; /*User defined URL link frame for ID3V2 Tag */
+ char *pOriginArtist; /*Original artist(s)/performer(s) */
+ char *pComposer; /*Composer */
+ char *pUnsyncLyrics; /*Unsychronised lyrics/text transcription */
+ GList *pSyncLyrics; /*Sychronised lyrics/text */
+
+ AvTagVer2ImageInfo imageInfo; /*Album art attached feature */
+ AvTagVer2AdditionalData tagV2Info; /*Needed data for ID3 tag parsing */
+
+/*for ID3V1 Tag */
+ unsigned char genre;
+
} AvFileContentInfo;
typedef struct {
@@ -522,49 +516,47 @@ typedef struct {
typedef struct {
unsigned long time_info;
char *lyric_info;
-}AvSynclyricsInfo;
+} AvSynclyricsInfo;
-void mm_file_free_synclyrics_list(GList * synclyrics_list);
+void mm_file_free_synclyrics_list(GList *synclyrics_list);
-inline static void mm_file_free_AvFileContentInfo (AvFileContentInfo *pInfo)
+inline static void mm_file_free_AvFileContentInfo(AvFileContentInfo *pInfo)
{
if (pInfo) {
- if (pInfo->pToc) mmfile_free (pInfo->pToc);
- if (pInfo->pTitle) mmfile_free (pInfo->pTitle);
- if (pInfo->pArtist) mmfile_free (pInfo->pArtist);
- if (pInfo->pAuthor) mmfile_free (pInfo->pAuthor);
- if (pInfo->pCopyright) mmfile_free (pInfo->pCopyright);
- if (pInfo->pDescription) mmfile_free (pInfo->pDescription);
- if (pInfo->pComment) mmfile_free (pInfo->pComment);
- if (pInfo->pRating) mmfile_free (pInfo->pRating);
- if (pInfo->pAlbum) mmfile_free (pInfo->pAlbum);
- if (pInfo->pAlbum_Artist) mmfile_free (pInfo->pAlbum_Artist);
- if (pInfo->pYear) mmfile_free (pInfo->pYear);
- if (pInfo->pGenre) mmfile_free (pInfo->pGenre);
- if (pInfo->pTrackNum) mmfile_free (pInfo->pTrackNum);
- if (pInfo->pRecDate) mmfile_free (pInfo->pRecDate);
- if (pInfo->pConductor) mmfile_free (pInfo->pConductor);
- if (pInfo->pContentGroup) mmfile_free (pInfo->pContentGroup);
- if (pInfo->pEncBy) mmfile_free (pInfo->pEncBy);
- if (pInfo->pURL) mmfile_free (pInfo->pURL);
- if (pInfo->pOriginArtist) mmfile_free (pInfo->pOriginArtist);
- if (pInfo->pComposer) mmfile_free (pInfo->pComposer);
- if (pInfo->pUnsyncLyrics) mmfile_free (pInfo->pUnsyncLyrics);
- if (pInfo->imageInfo.pImageBuf) mmfile_free (pInfo->imageInfo.pImageBuf);
- if (pInfo->imageInfo.imageDescription) mmfile_free (pInfo->imageInfo.imageDescription);
- if (strlen(pInfo->imageInfo.imageMIMEType)>0) memset(pInfo->imageInfo.imageMIMEType, 0, MP3_ID3_IMAGE_MIME_TYPE_MAX_LENGTH);
- if (pInfo->pTransactionID) mmfile_free (pInfo->pTransactionID);
-
+ if (pInfo->pToc) mmfile_free(pInfo->pToc);
+ if (pInfo->pTitle) mmfile_free(pInfo->pTitle);
+ if (pInfo->pArtist) mmfile_free(pInfo->pArtist);
+ if (pInfo->pAuthor) mmfile_free(pInfo->pAuthor);
+ if (pInfo->pCopyright) mmfile_free(pInfo->pCopyright);
+ if (pInfo->pDescription) mmfile_free(pInfo->pDescription);
+ if (pInfo->pComment) mmfile_free(pInfo->pComment);
+ if (pInfo->pRating) mmfile_free(pInfo->pRating);
+ if (pInfo->pAlbum) mmfile_free(pInfo->pAlbum);
+ if (pInfo->pAlbum_Artist) mmfile_free(pInfo->pAlbum_Artist);
+ if (pInfo->pYear) mmfile_free(pInfo->pYear);
+ if (pInfo->pGenre) mmfile_free(pInfo->pGenre);
+ if (pInfo->pTrackNum) mmfile_free(pInfo->pTrackNum);
+ if (pInfo->pRecDate) mmfile_free(pInfo->pRecDate);
+ if (pInfo->pConductor) mmfile_free(pInfo->pConductor);
+ if (pInfo->pContentGroup) mmfile_free(pInfo->pContentGroup);
+ if (pInfo->pEncBy) mmfile_free(pInfo->pEncBy);
+ if (pInfo->pURL) mmfile_free(pInfo->pURL);
+ if (pInfo->pOriginArtist) mmfile_free(pInfo->pOriginArtist);
+ if (pInfo->pComposer) mmfile_free(pInfo->pComposer);
+ if (pInfo->pUnsyncLyrics) mmfile_free(pInfo->pUnsyncLyrics);
+ if (pInfo->imageInfo.pImageBuf) mmfile_free(pInfo->imageInfo.pImageBuf);
+ if (pInfo->imageInfo.imageDescription) mmfile_free(pInfo->imageInfo.imageDescription);
+ if (strlen(pInfo->imageInfo.imageMIMEType) > 0) memset(pInfo->imageInfo.imageMIMEType, 0, MP3_ID3_IMAGE_MIME_TYPE_MAX_LENGTH);
}
}
-bool mm_file_id3tag_parse_v110 (AvFileContentInfo* pInfo, unsigned char *buffer); //20050401 Condol : for MP3 content Info.
-bool mm_file_id3tag_parse_v222 (AvFileContentInfo* pInfo, unsigned char *buffer);
-bool mm_file_id3tag_parse_v223 (AvFileContentInfo* pInfo, unsigned char *buffer);
-bool mm_file_id3tag_parse_v224 (AvFileContentInfo* pInfo, unsigned char *buffer);
-void mm_file_id3tag_restore_content_info (AvFileContentInfo* pInfo);
-int MMFileUtilGetMetaDataFromMP4 (MMFileFormatContext *formatContext);
+bool mm_file_id3tag_parse_v110(AvFileContentInfo *pInfo, unsigned char *buffer); /*20050401 Condol : for MP3 content Info. */
+bool mm_file_id3tag_parse_v222(AvFileContentInfo *pInfo, unsigned char *buffer);
+bool mm_file_id3tag_parse_v223(AvFileContentInfo *pInfo, unsigned char *buffer);
+bool mm_file_id3tag_parse_v224(AvFileContentInfo *pInfo, unsigned char *buffer);
+void mm_file_id3tag_restore_content_info(AvFileContentInfo *pInfo);
+int MMFileUtilGetMetaDataFromMP4(MMFileFormatContext *formatContext);
#ifdef __cplusplus
diff --git a/utils/mm_file_util_io.c b/utils/mm_file_util_io.c
index adc8f0a..60722ae 100755
--- a/utils/mm_file_util_io.c
+++ b/utils/mm_file_util_io.c
@@ -23,63 +23,63 @@
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
static unsigned char is_little_endian = 0;
-inline static int _is_little_endian (void)
+inline static int _is_little_endian(void)
{
int i = 0x00000001;
return ((char *)&i)[0];
}
EXPORT_API
-inline unsigned int mmfile_io_be_uint32 (unsigned int value)
+inline unsigned int mmfile_io_be_uint32(unsigned int value)
{
- return (is_little_endian == 0) ? value : ((unsigned int)((((value)&0xFF000000)>>24) | (((value)&0x00FF0000)>>8) | (((value)&0x0000FF00)<<8) | (((value)&0x000000FF)<<24)));
+ return (is_little_endian == 0) ? value : ((unsigned int)((((value) & 0xFF000000) >> 24) | (((value) & 0x00FF0000) >> 8) | (((value) & 0x0000FF00) << 8) | (((value) & 0x000000FF) << 24)));
}
EXPORT_API
-inline unsigned int mmfile_io_le_uint32 (unsigned int value)
+inline unsigned int mmfile_io_le_uint32(unsigned int value)
{
- return (is_little_endian == 1) ? value : ((unsigned int)((((value)&0xFF000000)>>24) | (((value)&0x00FF0000)>>8) | (((value)&0x0000FF00)<<8) | (((value)&0x000000FF)<<24)));
+ return (is_little_endian == 1) ? value : ((unsigned int)((((value) & 0xFF000000) >> 24) | (((value) & 0x00FF0000) >> 8) | (((value) & 0x0000FF00) << 8) | (((value) & 0x000000FF) << 24)));
}
EXPORT_API
-inline int mmfile_io_be_int32 (unsigned int value)
+inline int mmfile_io_be_int32(unsigned int value)
{
- return (is_little_endian == 0) ? value : ((int)((((value)&0xFF000000)>>24) | (((value)&0x00FF0000)>>8) | (((value)&0x0000FF00)<<8) | (((value)&0x000000FF)<<24)));
+ return (is_little_endian == 0) ? value : ((unsigned int)((((value) & 0xFF000000) >> 24) | (((value) & 0x00FF0000) >> 8) | (((value) & 0x0000FF00) << 8) | (((value) & 0x000000FF) << 24)));
}
EXPORT_API
-inline int mmfile_io_le_int32 (unsigned int value)
+inline int mmfile_io_le_int32(unsigned int value)
{
- return (is_little_endian == 1) ? value : ((int)((((value)&0xFF000000)>>24) | (((value)&0x00FF0000)>>8) | (((value)&0x0000FF00)<<8) | (((value)&0x000000FF)<<24)));
+ return (is_little_endian == 1) ? value : ((unsigned int)((((value) & 0xFF000000) >> 24) | (((value) & 0x00FF0000) >> 8) | (((value) & 0x0000FF00) << 8) | (((value) & 0x000000FF) << 24)));
}
EXPORT_API
-inline unsigned short mmfile_io_be_uint16 (unsigned short value)
+inline unsigned short mmfile_io_be_uint16(unsigned short value)
{
- return (is_little_endian == 0) ? value : ((unsigned short)((((value)&0xFF00)>>8) | (((value)&0x00FF)<<8)));
+ return (is_little_endian == 0) ? value : ((unsigned short)((((value) & 0xFF00) >> 8) | (((value) & 0x00FF) << 8)));
}
EXPORT_API
-inline unsigned short mmfile_io_le_uint16 (unsigned short value)
+inline unsigned short mmfile_io_le_uint16(unsigned short value)
{
- return (is_little_endian == 1) ? value : ((unsigned short)((((value)&0xFF00)>>8) | (((value)&0x00FF)<<8)));
+ return (is_little_endian == 1) ? value : ((unsigned short)((((value) & 0xFF00) >> 8) | (((value) & 0x00FF) << 8)));
}
EXPORT_API
-inline short mmfile_io_be_int16 (unsigned short value)
+inline short mmfile_io_be_int16(unsigned short value)
{
- return (is_little_endian == 0) ? value : ((short)((((value)&0xFF00)>>8) | (((value)&0x00FF)<<8)));
+ return (is_little_endian == 0) ? value : ((short)((((value) & 0xFF00) >> 8) | (((value) & 0x00FF) << 8)));
}
EXPORT_API
-inline short mmfile_io_le_int16 (unsigned short value)
+inline short mmfile_io_le_int16(unsigned short value)
{
- return (is_little_endian == 1) ? value : ((short)((((value)&0xFF00)>>8) | (((value)&0x00FF)<<8)));
+ return (is_little_endian == 1) ? value : ((short)((((value) & 0xFF00) >> 8) | (((value) & 0x00FF) << 8)));
}
@@ -94,14 +94,14 @@ static int _mmfile_open(MMFileIOHandle **handle, struct MMFileIOFunc *Func, cons
int fileNameLen = 0;
if (!handle || !Func || !filename || !Func->mmfile_open) {
- debug_error ("invalid param\n");
+ debug_error("invalid param\n");
err = MMFILE_IO_FAILED;
goto fail;
}
- pHandle = mmfile_malloc (sizeof(MMFileIOHandle));
+ pHandle = mmfile_malloc(sizeof(MMFileIOHandle));
if (!pHandle) {
- debug_error ("mmfile_malloc: pHandle\n");
+ debug_error("mmfile_malloc: pHandle\n");
err = MMFILE_IO_FAILED;
goto fail;
}
@@ -112,34 +112,33 @@ static int _mmfile_open(MMFileIOHandle **handle, struct MMFileIOFunc *Func, cons
pHandle->flags = flags;
pHandle->privateData = NULL;
fileNameLen = strlen(filename);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("[%d, %s]\n", fileNameLen, filename);
- #endif
- pHandle->fileName = mmfile_malloc (fileNameLen + 1);
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("[%d, %s]\n", fileNameLen, filename);
+#endif
+ pHandle->fileName = mmfile_malloc(fileNameLen + 1);
if (!pHandle->fileName) {
- debug_error ("mmfile_malloc: pHandle->fileName\n");
+ debug_error("mmfile_malloc: pHandle->fileName\n");
err = MMFILE_IO_FAILED;
goto fail;
}
memcpy(pHandle->fileName, filename, fileNameLen);
- err = Func->mmfile_open (pHandle, filename, flags);
+ err = Func->mmfile_open(pHandle, filename, flags);
if (err < 0) {
- debug_error ("mmfile_open: pHandle->fileName\n");
+ debug_error("mmfile_open: pHandle->fileName\n");
err = MMFILE_IO_FAILED;
goto fail;
}
-
+
return MMFILE_IO_SUCCESS;
fail:
- if (handle && *handle) // fix for prevent
- {
+ if (handle && *handle) { /* fix for prevent */
mmfile_close(*handle);
*handle = NULL;
}
-
+
return err;
}
@@ -148,15 +147,15 @@ int mmfile_open(MMFileIOHandle **handle, const char *filename, int flags)
{
MMFileIOFunc *pFuc = NULL;
const char *pFile = NULL;
- char handle_str[256] = {0,};
+ char handle_str[256] = {0, };
char *pHandleName = NULL;
if (!handle || !filename) {
- debug_error ("invalid param\n");
+ debug_error("invalid param\n");
return MMFILE_IO_FAILED;
}
- memset (handle_str, 0x00, sizeof(handle_str));
+ memset(handle_str, 0x00, sizeof(handle_str));
pFile = filename;
pHandleName = handle_str;
@@ -167,7 +166,7 @@ int mmfile_open(MMFileIOHandle **handle, const char *filename, int flags)
goto file_handle;
}
- if ((pHandleName - handle_str) < sizeof(handle_str) - 1) {
+ if ((pHandleName - handle_str) < (int)sizeof(handle_str) - 1) {
*pHandleName++ = *pFile;
}
pFile++;
@@ -184,7 +183,7 @@ file_handle:
while (pFuc != NULL) {
if (!strcmp(handle_str, pFuc->handleName)) {
- return _mmfile_open (handle, pFuc, filename, flags);
+ return _mmfile_open(handle, pFuc, filename, flags);
}
pFuc = pFuc->next;
}
@@ -206,7 +205,7 @@ int mmfile_read(MMFileIOHandle *handle, unsigned char *buf, int size)
return MMFILE_IO_FAILED;
}
- ret = handle->iofunc->mmfile_read (handle, buf, size);
+ ret = handle->iofunc->mmfile_read(handle, buf, size);
return ret;
}
@@ -222,12 +221,12 @@ int mmfile_write(MMFileIOHandle *handle, unsigned char *buf, int size)
return MMFILE_IO_FAILED;
}
- ret = handle->iofunc->mmfile_write (handle, buf, size);
+ ret = handle->iofunc->mmfile_write(handle, buf, size);
return ret;
}
EXPORT_API
-long long mmfile_seek(MMFileIOHandle *handle, long long pos, int whence)
+int64_t mmfile_seek(MMFileIOHandle *handle, int64_t pos, int whence)
{
long long ret = 0;
if (!handle || !handle->iofunc || !handle->iofunc->mmfile_seek) {
@@ -271,7 +270,7 @@ int mmfile_close(MMFileIOHandle *handle)
}
EXPORT_API
-int mmfile_register_io_func (MMFileIOFunc *iofunc)
+int mmfile_register_io_func(MMFileIOFunc *iofunc)
{
MMFileIOFunc **ptr = NULL;
@@ -290,7 +289,7 @@ int mmfile_register_io_func (MMFileIOFunc *iofunc)
}
EXPORT_API
-int mmfile_register_io_all ()
+int mmfile_register_io_all()
{
static int initialized = 0;
@@ -298,16 +297,16 @@ int mmfile_register_io_all ()
return MMFILE_IO_FAILED;
}
- is_little_endian = _is_little_endian ();
+ is_little_endian = _is_little_endian();
initialized = 1;
extern MMFileIOFunc mmfile_file_io_handler;
extern MMFileIOFunc mmfile_mem_io_handler;
extern MMFileIOFunc mmfile_mmap_io_handler;
- mmfile_register_io_func (&mmfile_file_io_handler);
- mmfile_register_io_func (&mmfile_mem_io_handler);
- mmfile_register_io_func (&mmfile_mmap_io_handler);
+ mmfile_register_io_func(&mmfile_file_io_handler);
+ mmfile_register_io_func(&mmfile_mem_io_handler);
+ mmfile_register_io_func(&mmfile_mmap_io_handler);
return MMFILE_IO_SUCCESS;
}
diff --git a/utils/mm_file_util_io_file.c b/utils/mm_file_util_io_file.c
index aca9ba1..f42b870 100755
--- a/utils/mm_file_util_io_file.c
+++ b/utils/mm_file_util_io_file.c
@@ -27,142 +27,131 @@
#include <string.h>
#include <unistd.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
-typedef struct mmfileiodata
-{
- int fd;
- long long offset;
+typedef struct mmfileiodata {
+ int fd;
+ long long offset;
} tMMFORMAT_FILEIO_DATA;
static int file_open(MMFileIOHandle *handle, const char *filename, int flags)
{
- tMMFORMAT_FILEIO_DATA *privateData = NULL;
- int access = 0;
- int fd = 0;
-
- if (!handle || !filename)
- {
- debug_error ("invalid param\n");
- return MMFILE_IO_FAILED;
- }
-
- filename += strlen(handle->iofunc->handleName) + 3; /* :// */
-
- if (flags & MMFILE_RDWR)
- {
- access = O_CREAT | O_TRUNC | O_RDWR;
- }
- else if (flags & MMFILE_WRONLY)
- {
- access = O_CREAT | O_TRUNC | O_WRONLY;
- }
- else
- {
- access = O_RDONLY;
- }
+ tMMFORMAT_FILEIO_DATA *privateData = NULL;
+ int access = 0;
+ int fd = 0;
+
+ if (!handle || !filename) {
+ debug_error("invalid param\n");
+ return MMFILE_IO_FAILED;
+ }
+
+ filename += strlen(handle->iofunc->handleName) + 3; /* :// */
+
+ if (flags & MMFILE_RDWR) {
+ access = O_CREAT | O_TRUNC | O_RDWR;
+ } else if (flags & MMFILE_WRONLY) {
+ access = O_CREAT | O_TRUNC | O_WRONLY;
+ } else {
+ access = O_RDONLY;
+ }
#ifdef O_BINARY
- access |= O_BINARY;
+ access |= O_BINARY;
#endif
fd = open(filename, access, 0666);
- if (fd < 0)
- {
- debug_error ("open error\n");
+ if (fd < 0) {
+ debug_error("open error\n");
return MMFILE_IO_FAILED;
}
- privateData = mmfile_malloc (sizeof(tMMFORMAT_FILEIO_DATA));
- if (!privateData)
- {
+ privateData = mmfile_malloc(sizeof(tMMFORMAT_FILEIO_DATA));
+ if (!privateData) {
close(fd);
- debug_error ("calloc privateData\n");
+ debug_error("calloc privateData\n");
return MMFILE_IO_FAILED;
}
- privateData->fd = fd;
- privateData->offset = 0;
-
- handle->privateData = (void *)privateData;
- return MMFILE_IO_SUCCESS;
+ privateData->fd = fd;
+ privateData->offset = 0;
+
+ handle->privateData = (void *)privateData;
+ return MMFILE_IO_SUCCESS;
}
static int file_read(MMFileIOHandle *handle, unsigned char *buf, int size)
{
- tMMFORMAT_FILEIO_DATA *privateData = handle->privateData;
- int readSize = 0;
-
- readSize = read(privateData->fd, buf, size);
- if (readSize < 0)
- {
- debug_error ("read\n");
- return MMFILE_IO_FAILED;
- }
-
- privateData->offset += readSize;
-
- return readSize;
+ tMMFORMAT_FILEIO_DATA *privateData = handle->privateData;
+ int readSize = 0;
+
+ readSize = read(privateData->fd, buf, size);
+ if (readSize < 0) {
+ debug_error("read\n");
+ return MMFILE_IO_FAILED;
+ }
+
+ privateData->offset += readSize;
+
+ return readSize;
}
static int file_write(MMFileIOHandle *handle, unsigned char *buf, int size)
{
- tMMFORMAT_FILEIO_DATA *privateData = handle->privateData;
- int writtenSize = 0;
-
- writtenSize = write(privateData->fd, buf, size);
- if (writtenSize < 0)
- {
- debug_error ("write\n");
- return MMFILE_IO_FAILED;
- }
-
- privateData->offset += writtenSize;
-
- return writtenSize;
+ tMMFORMAT_FILEIO_DATA *privateData = handle->privateData;
+ int writtenSize = 0;
+
+ writtenSize = write(privateData->fd, buf, size);
+ if (writtenSize < 0) {
+ debug_error("write\n");
+ return MMFILE_IO_FAILED;
+ }
+
+ privateData->offset += writtenSize;
+
+ return writtenSize;
}
-static long long file_seek(MMFileIOHandle *handle, long long pos, int whence)
+static int64_t file_seek(MMFileIOHandle *handle, int64_t pos, int whence)
{
- tMMFORMAT_FILEIO_DATA *privateData = handle->privateData;
- privateData->offset = lseek(privateData->fd, pos, whence);
- return privateData->offset;
+ tMMFORMAT_FILEIO_DATA *privateData = handle->privateData;
+ privateData->offset = lseek(privateData->fd, pos, whence);
+ return privateData->offset;
}
static long long file_tell(MMFileIOHandle *handle)
{
- tMMFORMAT_FILEIO_DATA *privateData = handle->privateData;
-
- return privateData->offset;
+ tMMFORMAT_FILEIO_DATA *privateData = handle->privateData;
+
+ return privateData->offset;
}
static int file_close(MMFileIOHandle *handle)
{
- tMMFORMAT_FILEIO_DATA *privateData = handle->privateData;
- int ret = 0;
-
- if (privateData)
- {
- ret = close(privateData->fd);
- mmfile_free (privateData);
- handle->privateData = NULL;
- return MMFILE_IO_SUCCESS;
- }
-
- return MMFILE_IO_FAILED;
+ tMMFORMAT_FILEIO_DATA *privateData = handle->privateData;
+ /*int ret = 0;*/
+
+ if (privateData) {
+ /*ret = */close(privateData->fd);
+ mmfile_free(privateData);
+ handle->privateData = NULL;
+ return MMFILE_IO_SUCCESS;
+ }
+
+ return MMFILE_IO_FAILED;
}
MMFileIOFunc mmfile_file_io_handler = {
- "file",
- file_open,
- file_read,
- file_write,
- file_seek,
- file_tell,
- file_close,
+ "file",
+ file_open,
+ file_read,
+ file_write,
+ file_seek,
+ file_tell,
+ file_close,
+ NULL
};
diff --git a/utils/mm_file_util_io_mem.c b/utils/mm_file_util_io_mem.c
index f8f48d5..82b4744 100755
--- a/utils/mm_file_util_io_mem.c
+++ b/utils/mm_file_util_io_mem.c
@@ -18,12 +18,12 @@
* limitations under the License.
*
*/
-
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
@@ -34,229 +34,207 @@ typedef struct {
int state;
} MMFmemIOHandle;
-static int mmf_mem_open (MMFileIOHandle *handle, const char *filename, int flags)
+static int mmf_mem_open(MMFileIOHandle *handle, const char *filename, int flags)
{
- MMFmemIOHandle *memHandle = NULL;
- char **splitedString = NULL;
-
- if (!handle || !filename || !handle->iofunc || !handle->iofunc->handleName)
- {
- debug_error ("invalid param\n");
- return MMFILE_IO_FAILED;
- }
-
- filename += strlen(handle->iofunc->handleName) + 3; /* ://%d:%d means (memory addr:mem size)*/
-
- splitedString = mmfile_strsplit (filename, ":");
- if (splitedString == NULL)
- {
- debug_error ("invalid param\n");
- return MMFILE_IO_FAILED;
- }
-
- if (!splitedString[0] || !splitedString[1])
- {
- debug_error ("invalid param\n");
- goto exception;
- }
-
- memHandle = mmfile_malloc (sizeof(MMFmemIOHandle));
- if (!memHandle)
- {
- debug_error ("error: mmfile_malloc memHandle\n");
- goto exception;
- }
-
- memHandle->ptr = (unsigned char*)atoll(splitedString[0]); //memory allocation address changed. memHandle->ptr = (unsigned char*)atoi(splitedString[0]);
- memHandle->size = atoi(splitedString[1]);
- memHandle->offset = 0;
- memHandle->state = 0;
-
- handle->privateData = (void*) memHandle;
-
- if (splitedString)
- {
- mmfile_strfreev (splitedString);
- }
-
- return MMFILE_IO_SUCCESS;
+ MMFmemIOHandle *memHandle = NULL;
+ char **splitedString = NULL;
+
+ if (!handle || !filename || !handle->iofunc || !handle->iofunc->handleName) {
+ debug_error("invalid param\n");
+ return MMFILE_IO_FAILED;
+ }
+
+ filename += strlen(handle->iofunc->handleName) + 3; /* ://%d:%d means (memory addr:mem size)*/
+
+ splitedString = mmfile_strsplit(filename, ":");
+ if (splitedString == NULL) {
+ debug_error("invalid param\n");
+ return MMFILE_IO_FAILED;
+ }
+
+ if (!splitedString[0] || !splitedString[1]) {
+ debug_error("invalid param\n");
+ goto exception;
+ }
+
+ memHandle = mmfile_malloc(sizeof(MMFmemIOHandle));
+ if (!memHandle) {
+ debug_error("error: mmfile_malloc memHandle\n");
+ goto exception;
+ }
+
+ memHandle->ptr = (unsigned char *)atoll(splitedString[0]); /*memory allocation address changed. memHandle->ptr = (unsigned char*)atoi(splitedString[0]); */
+ memHandle->size = atoi(splitedString[1]);
+ memHandle->offset = 0;
+ memHandle->state = 0;
+
+ handle->privateData = (void *) memHandle;
+
+ if (splitedString) {
+ mmfile_strfreev(splitedString);
+ }
+
+ return MMFILE_IO_SUCCESS;
exception:
- if (splitedString)
- {
- mmfile_strfreev (splitedString);
- }
-
-#if 0 //dead code
- if (memHandle)
- {
- mmfile_free (memHandle);
- handle->privateData = NULL;
- }
+ if (splitedString) {
+ mmfile_strfreev(splitedString);
+ }
+
+#if 0 /*dead code */
+ if (memHandle) {
+ mmfile_free(memHandle);
+ handle->privateData = NULL;
+ }
#endif
- return MMFILE_IO_FAILED;
+ return MMFILE_IO_FAILED;
}
-static int mmf_mem_read (MMFileIOHandle *h, unsigned char *buf, int size)
+static int mmf_mem_read(MMFileIOHandle *h, unsigned char *buf, int size)
{
- MMFmemIOHandle *memHandle = NULL;
- const unsigned char *c = NULL;
- int len = 0;
-
- if (!h || !h->privateData || !buf)
- {
- debug_error ("invalid para\n");
- return MMFILE_IO_FAILED;
- }
-
- memHandle = h->privateData;
-
- if (!memHandle->ptr)
- {
- debug_error ("invalid para\n");
- return MMFILE_IO_FAILED;
- }
-
- c = memHandle->ptr + memHandle->offset;
-
- if (memHandle->state != EOF)
- {
- len = size;
- if (len + memHandle->offset > memHandle->size)
- {
- len = memHandle->size - memHandle->offset;
- }
- }
-
- memcpy (buf, c, len);
-
- memHandle->offset += len;
-
- if ( memHandle->offset == memHandle->size)
- {
- memHandle->state = EOF;
- }
-
- return len;
+ MMFmemIOHandle *memHandle = NULL;
+ const unsigned char *c = NULL;
+ int len = 0;
+
+ if (!h || !h->privateData || !buf) {
+ debug_error("invalid para\n");
+ return MMFILE_IO_FAILED;
+ }
+
+ memHandle = h->privateData;
+
+ if (!memHandle->ptr) {
+ debug_error("invalid para\n");
+ return MMFILE_IO_FAILED;
+ }
+
+ c = memHandle->ptr + memHandle->offset;
+
+ if (memHandle->state != EOF) {
+ len = size;
+ if (len + memHandle->offset > memHandle->size) {
+ len = memHandle->size - memHandle->offset;
+ }
+ }
+
+ memcpy(buf, c, len);
+
+ memHandle->offset += len;
+
+ if (memHandle->offset == memHandle->size) {
+ memHandle->state = EOF;
+ }
+
+ return len;
}
-static int mmf_mem_write (MMFileIOHandle *h, unsigned char *buf, int size)
+static int mmf_mem_write(MMFileIOHandle *h, unsigned char *buf, int size)
{
- MMFmemIOHandle *memHandle = NULL;
- unsigned char *c = NULL;
- int len = 0;
-
- if (!h || !h->privateData || !buf)
- {
- debug_error ("invalid para\n");
- return MMFILE_IO_FAILED;
- }
-
- memHandle = h->privateData;
-
- c = memHandle->ptr + memHandle->offset;
-
- if (memHandle->state != EOF)
- {
- len = size;
- if (len + memHandle->offset > memHandle->size)
- {
- len = memHandle->size - memHandle->offset;
- }
- }
-
- memcpy (c, buf, len);
-
- memHandle->offset += len;
-
- if ( memHandle->offset == memHandle->size)
- {
- memHandle->state = EOF;
- }
-
- return len;
+ MMFmemIOHandle *memHandle = NULL;
+ unsigned char *c = NULL;
+ int len = 0;
+
+ if (!h || !h->privateData || !buf) {
+ debug_error("invalid para\n");
+ return MMFILE_IO_FAILED;
+ }
+
+ memHandle = h->privateData;
+
+ c = memHandle->ptr + memHandle->offset;
+
+ if (memHandle->state != EOF) {
+ len = size;
+ if (len + memHandle->offset > memHandle->size) {
+ len = memHandle->size - memHandle->offset;
+ }
+ }
+
+ memcpy(c, buf, len);
+
+ memHandle->offset += len;
+
+ if (memHandle->offset == memHandle->size) {
+ memHandle->state = EOF;
+ }
+
+ return len;
}
-static long long mmf_mem_seek (MMFileIOHandle *h, long long pos, int whence)
+static int64_t mmf_mem_seek(MMFileIOHandle *h, int64_t pos, int whence)
{
- MMFmemIOHandle *memHandle = NULL;
- long tmp_offset = 0;
-
- if (!h || !h->privateData)
- {
- debug_error ("invalid para\n");
- return MMFILE_IO_FAILED;
- }
-
- memHandle = h->privateData;
-
- switch (whence)
- {
- case MMFILE_SEEK_SET:
- tmp_offset = 0 + pos;
- break;
- case MMFILE_SEEK_CUR:
- tmp_offset = memHandle->offset + pos;
- break;
- case MMFILE_SEEK_END:
- tmp_offset = memHandle->size + pos;
- break;
- default:
- return MMFILE_IO_FAILED;
- }
-
- /*check validation*/
- if (tmp_offset < 0)
- {
- debug_error ("invalid file offset\n");
- return MMFILE_IO_FAILED;
- }
-
- /*set */
- memHandle->state = (tmp_offset >= memHandle->size) ? EOF : !EOF;
- memHandle->offset = tmp_offset;
-
- return memHandle->offset;
+ MMFmemIOHandle *memHandle = NULL;
+ long tmp_offset = 0;
+
+ if (!h || !h->privateData) {
+ debug_error("invalid para\n");
+ return MMFILE_IO_FAILED;
+ }
+
+ memHandle = h->privateData;
+
+ switch (whence) {
+ case MMFILE_SEEK_SET:
+ tmp_offset = 0 + pos;
+ break;
+ case MMFILE_SEEK_CUR:
+ tmp_offset = memHandle->offset + pos;
+ break;
+ case MMFILE_SEEK_END:
+ tmp_offset = memHandle->size + pos;
+ break;
+ default:
+ return MMFILE_IO_FAILED;
+ }
+
+ /*check validation*/
+ if (tmp_offset < 0) {
+ debug_error("invalid file offset\n");
+ return MMFILE_IO_FAILED;
+ }
+
+ /*set */
+ memHandle->state = (tmp_offset >= memHandle->size) ? EOF : !EOF;
+ memHandle->offset = tmp_offset;
+
+ return memHandle->offset;
}
-static long long mmf_mem_tell (MMFileIOHandle *h)
+static long long mmf_mem_tell(MMFileIOHandle *h)
{
- MMFmemIOHandle *memHandle = NULL;
+ MMFmemIOHandle *memHandle = NULL;
- if (!h || !h->privateData)
- {
- debug_error ("invalid para\n");
- return MMFILE_IO_FAILED;
- }
+ if (!h || !h->privateData) {
+ debug_error("invalid para\n");
+ return MMFILE_IO_FAILED;
+ }
- memHandle = h->privateData;
+ memHandle = h->privateData;
- return memHandle->offset;
+ return memHandle->offset;
}
-static int mmf_mem_close (MMFileIOHandle *h)
+static int mmf_mem_close(MMFileIOHandle *h)
{
- MMFmemIOHandle *memHandle = NULL;
+ MMFmemIOHandle *memHandle = NULL;
- if (!h || !h->privateData)
- {
- debug_error ("invalid para\n");
- return MMFILE_IO_FAILED;
- }
+ if (!h || !h->privateData) {
+ debug_error("invalid para\n");
+ return MMFILE_IO_FAILED;
+ }
- memHandle = h->privateData;
+ memHandle = h->privateData;
- if (memHandle)
- {
- mmfile_free (memHandle);
- h->privateData = NULL;
- }
+ if (memHandle) {
+ mmfile_free(memHandle);
+ h->privateData = NULL;
+ }
- return MMFILE_IO_SUCCESS;
+ return MMFILE_IO_SUCCESS;
}
@@ -267,8 +245,6 @@ MMFileIOFunc mmfile_mem_io_handler = {
mmf_mem_write,
mmf_mem_seek,
mmf_mem_tell,
- mmf_mem_close
+ mmf_mem_close,
+ NULL
};
-
-
-
diff --git a/utils/mm_file_util_io_mmap.c b/utils/mm_file_util_io_mmap.c
index cf4025e..1e0a273 100755
--- a/utils/mm_file_util_io_mmap.c
+++ b/utils/mm_file_util_io_mmap.c
@@ -19,7 +19,7 @@
*
*/
-
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -30,7 +30,7 @@
#include <sys/stat.h>
#include <fcntl.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
@@ -42,287 +42,248 @@ typedef struct {
int state;
} MMFMMapIOHandle;
-static int mmf_mmap_open (MMFileIOHandle *handle, const char *filename, int flags)
+static int mmf_mmap_open(MMFileIOHandle *handle, const char *filename, int flags)
{
- MMFMMapIOHandle *mmapHandle = NULL;
- struct stat finfo = {0, };
- int access = 0;
-
- if (!handle || !filename || !handle->iofunc || !handle->iofunc->handleName)
- {
- debug_error ("invalid param\n");
- return MMFILE_IO_FAILED;
- }
-
- filename += strlen(handle->iofunc->handleName) + 3; /* :// */
-
- memset (&finfo, 0x00, sizeof (struct stat));
-
- mmapHandle = mmfile_malloc (sizeof(MMFMMapIOHandle));
- if (!mmapHandle)
- {
- debug_error ("error: mmfile_malloc mmapHandle\n");
- return MMFILE_IO_FAILED;
- }
-
- if (flags & MMFILE_RDWR)
- {
- access = O_CREAT | O_TRUNC | O_RDWR;
- }
- else if (flags & MMFILE_WRONLY)
- {
- access = O_CREAT | O_TRUNC | O_WRONLY;
- }
- else
- {
- access = O_RDONLY;
- }
-
+ MMFMMapIOHandle *mmapHandle = NULL;
+ struct stat finfo = {0, };
+ int access = 0;
+
+ if (!handle || !filename || !handle->iofunc || !handle->iofunc->handleName) {
+ debug_error("invalid param\n");
+ return MMFILE_IO_FAILED;
+ }
+
+ filename += strlen(handle->iofunc->handleName) + 3; /* :// */
+
+ memset(&finfo, 0x00, sizeof(struct stat));
+
+ mmapHandle = mmfile_malloc(sizeof(MMFMMapIOHandle));
+ if (!mmapHandle) {
+ debug_error("error: mmfile_malloc mmapHandle\n");
+ return MMFILE_IO_FAILED;
+ }
+
+ if (flags & MMFILE_RDWR) {
+ access = O_CREAT | O_TRUNC | O_RDWR;
+ } else if (flags & MMFILE_WRONLY) {
+ access = O_CREAT | O_TRUNC | O_WRONLY;
+ } else {
+ access = O_RDONLY;
+ }
+
#ifdef O_BINARY
- access |= O_BINARY;
+ access |= O_BINARY;
#endif
- mmapHandle->fd = open (filename, access, 0666);
- if (mmapHandle->fd < 0)
- {
- debug_error ("error: open error: %s\n", filename);
- goto exception;
- }
-
- if (fstat (mmapHandle->fd, &finfo) == -1)
- {
- debug_error ("error: fstat\n");
- goto exception;
- }
-
- if (!S_ISREG(finfo.st_mode))
- {
- debug_error ("error: it is not regular file\n");
- goto exception;
- }
-
- mmapHandle->size = finfo.st_size;
- mmapHandle->offset = 0;
- mmapHandle->state = 0;
-
- if (flags & MMFILE_RDWR)
- {
- //mmapHandle->ptr = mmap64 (0, mmapHandle->size, PROT_WRITE | PROT_READ, MAP_SHARED, mmapHandle->fd, 0);
- mmapHandle->ptr = mmap (0, mmapHandle->size, PROT_WRITE | PROT_READ, MAP_SHARED, mmapHandle->fd, 0);
- }
- else if (flags & MMFILE_WRONLY)
- {
- //mmapHandle->ptr = mmap64 (0, mmapHandle->size, PROT_WRITE, MAP_SHARED, mmapHandle->fd, 0);
- mmapHandle->ptr = mmap (0, mmapHandle->size, PROT_WRITE, MAP_SHARED, mmapHandle->fd, 0);
- }
- else
- {
- //mmapHandle->ptr = mmap64 (0, mmapHandle->size, PROT_READ, MAP_SHARED, mmapHandle->fd, 0);
- mmapHandle->ptr = mmap (0, mmapHandle->size, PROT_READ, MAP_SHARED, mmapHandle->fd, 0);
- }
-
- if (mmapHandle->ptr == (void*)-1)
- {
- debug_error ("error: mmap\n");
- mmapHandle->ptr = NULL;
- goto exception;
- }
-
- handle->privateData = (void*) mmapHandle;
-
- return MMFILE_IO_SUCCESS;
+ mmapHandle->fd = open(filename, access, 0666);
+ if (mmapHandle->fd < 0) {
+ debug_error("error: open error: %s\n", filename);
+ goto exception;
+ }
+
+ if (fstat(mmapHandle->fd, &finfo) == -1) {
+ debug_error("error: fstat\n");
+ goto exception;
+ }
+
+ if (!S_ISREG(finfo.st_mode)) {
+ debug_error("error: it is not regular file\n");
+ goto exception;
+ }
+
+ mmapHandle->size = finfo.st_size;
+ mmapHandle->offset = 0;
+ mmapHandle->state = 0;
+
+ if (flags & MMFILE_RDWR) {
+ /*mmapHandle->ptr = mmap64(0, mmapHandle->size, PROT_WRITE | PROT_READ, MAP_SHARED, mmapHandle->fd, 0); */
+ mmapHandle->ptr = mmap(0, mmapHandle->size, PROT_WRITE | PROT_READ, MAP_SHARED, mmapHandle->fd, 0);
+ } else if (flags & MMFILE_WRONLY) {
+ /*mmapHandle->ptr = mmap64(0, mmapHandle->size, PROT_WRITE, MAP_SHARED, mmapHandle->fd, 0); */
+ mmapHandle->ptr = mmap(0, mmapHandle->size, PROT_WRITE, MAP_SHARED, mmapHandle->fd, 0);
+ } else {
+ /*mmapHandle->ptr = mmap64(0, mmapHandle->size, PROT_READ, MAP_SHARED, mmapHandle->fd, 0); */
+ mmapHandle->ptr = mmap(0, mmapHandle->size, PROT_READ, MAP_SHARED, mmapHandle->fd, 0);
+ }
+
+ if (mmapHandle->ptr == (void *)-1) {
+ debug_error("error: mmap\n");
+ mmapHandle->ptr = NULL;
+ goto exception;
+ }
+
+ handle->privateData = (void *) mmapHandle;
+
+ return MMFILE_IO_SUCCESS;
exception:
- if (mmapHandle)
- {
- if (mmapHandle->ptr)
- {
- munmap (mmapHandle->ptr, mmapHandle->size);
- }
-
- if (mmapHandle->fd > 2)
- {
- close (mmapHandle->fd);
- }
-
- mmfile_free (mmapHandle);
- handle->privateData = NULL;
- }
-
- return MMFILE_IO_FAILED;
+ if (mmapHandle) {
+ if (mmapHandle->ptr) {
+ munmap(mmapHandle->ptr, mmapHandle->size);
+ }
+
+ if (mmapHandle->fd > 2) {
+ close(mmapHandle->fd);
+ }
+
+ mmfile_free(mmapHandle);
+ handle->privateData = NULL;
+ }
+
+ return MMFILE_IO_FAILED;
}
-static int mmf_mmap_read (MMFileIOHandle *h, unsigned char *buf, int size)
+static int mmf_mmap_read(MMFileIOHandle *h, unsigned char *buf, int size)
{
- MMFMMapIOHandle *mmapHandle = NULL;
- const unsigned char *c = NULL;
- int len = 0;
-
- if (!h || !h->privateData || !buf)
- {
- debug_error ("invalid para\n");
- return MMFILE_IO_FAILED;
- }
-
- mmapHandle = h->privateData;
-
- c = mmapHandle->ptr + mmapHandle->offset;
-
- if (mmapHandle->state != EOF)
- {
- len = size;
- if (len + mmapHandle->offset > mmapHandle->size)
- {
- len = mmapHandle->size - mmapHandle->offset;
- }
- }
- else
- {
- return 0;
- }
-
- memcpy (buf, c, len);
-
- mmapHandle->offset += len;
-
- if ( mmapHandle->offset == mmapHandle->size)
- {
- mmapHandle->state = EOF;
- }
-
- return len;
+ MMFMMapIOHandle *mmapHandle = NULL;
+ const unsigned char *c = NULL;
+ int len = 0;
+
+ if (!h || !h->privateData || !buf) {
+ debug_error("invalid para\n");
+ return MMFILE_IO_FAILED;
+ }
+
+ mmapHandle = h->privateData;
+
+ c = mmapHandle->ptr + mmapHandle->offset;
+
+ if (mmapHandle->state != EOF) {
+ len = size;
+ if (len + mmapHandle->offset > mmapHandle->size) {
+ len = mmapHandle->size - mmapHandle->offset;
+ }
+ } else {
+ return 0;
+ }
+
+ memcpy(buf, c, len);
+
+ mmapHandle->offset += len;
+
+ if (mmapHandle->offset == mmapHandle->size) {
+ mmapHandle->state = EOF;
+ }
+
+ return len;
}
-static int mmf_mmap_write (MMFileIOHandle *h, unsigned char *buf, int size)
+static int mmf_mmap_write(MMFileIOHandle *h, unsigned char *buf, int size)
{
- MMFMMapIOHandle *mmapHandle = NULL;
- unsigned char *c = NULL;
- int len = 0;
-
- if (!h || !h->privateData || !buf)
- {
- debug_error ("invalid para\n");
- return MMFILE_IO_FAILED;
- }
-
- mmapHandle = h->privateData;
-
- c = mmapHandle->ptr + mmapHandle->offset;
-
- if (mmapHandle->state != EOF)
- {
- len = size;
- if (len + mmapHandle->offset > mmapHandle->size)
- {
- len = mmapHandle->size - mmapHandle->offset;
- }
- }
- else
- {
- return 0;
- }
-
- memcpy (c, buf, len);
-
- mmapHandle->offset += len;
-
- if ( mmapHandle->offset == mmapHandle->size)
- {
- mmapHandle->state = EOF;
- }
-
- return len;
+ MMFMMapIOHandle *mmapHandle = NULL;
+ unsigned char *c = NULL;
+ int len = 0;
+
+ if (!h || !h->privateData || !buf) {
+ debug_error("invalid para\n");
+ return MMFILE_IO_FAILED;
+ }
+
+ mmapHandle = h->privateData;
+
+ c = mmapHandle->ptr + mmapHandle->offset;
+
+ if (mmapHandle->state != EOF) {
+ len = size;
+ if (len + mmapHandle->offset > mmapHandle->size) {
+ len = mmapHandle->size - mmapHandle->offset;
+ }
+ } else {
+ return 0;
+ }
+
+ memcpy(c, buf, len);
+
+ mmapHandle->offset += len;
+
+ if (mmapHandle->offset == mmapHandle->size) {
+ mmapHandle->state = EOF;
+ }
+
+ return len;
}
-static long long mmf_mmap_seek (MMFileIOHandle *h, long long pos, int whence)
+static int64_t mmf_mmap_seek(MMFileIOHandle *h, int64_t pos, int whence)
{
- MMFMMapIOHandle *mmapHandle = NULL;
- long tmp_offset = 0;
-
- if (!h || !h->privateData)
- {
- debug_error ("invalid para\n");
- return MMFILE_IO_FAILED;
- }
-
- mmapHandle = h->privateData;
-
- switch (whence)
- {
- case SEEK_SET:
- tmp_offset = 0 + pos;
- break;
- case SEEK_CUR:
- tmp_offset = mmapHandle->offset + pos;
- break;
- case SEEK_END:
- tmp_offset = mmapHandle->size + pos;
- break;
- default:
- return MMFILE_IO_FAILED;
- }
-
- /*check validation*/
- if (tmp_offset < 0)
- {
- debug_error ("invalid file offset\n");
- return MMFILE_IO_FAILED;
- }
-
- /*set */
- mmapHandle->state = (tmp_offset >= mmapHandle->size) ? EOF : !EOF;
- mmapHandle->offset = tmp_offset;
-
- return mmapHandle->offset;
+ MMFMMapIOHandle *mmapHandle = NULL;
+ long tmp_offset = 0;
+
+ if (!h || !h->privateData) {
+ debug_error("invalid para\n");
+ return MMFILE_IO_FAILED;
+ }
+
+ mmapHandle = h->privateData;
+
+ switch (whence) {
+ case SEEK_SET:
+ tmp_offset = 0 + pos;
+ break;
+ case SEEK_CUR:
+ tmp_offset = mmapHandle->offset + pos;
+ break;
+ case SEEK_END:
+ tmp_offset = mmapHandle->size + pos;
+ break;
+ default:
+ return MMFILE_IO_FAILED;
+ }
+
+ /*check validation*/
+ if (tmp_offset < 0) {
+ debug_error("invalid file offset\n");
+ return MMFILE_IO_FAILED;
+ }
+
+ /*set */
+ mmapHandle->state = (tmp_offset >= mmapHandle->size) ? EOF : !EOF;
+ mmapHandle->offset = tmp_offset;
+
+ return mmapHandle->offset;
}
-static long long mmf_mmap_tell (MMFileIOHandle *h)
+static long long mmf_mmap_tell(MMFileIOHandle *h)
{
- MMFMMapIOHandle *mmapHandle = NULL;
+ MMFMMapIOHandle *mmapHandle = NULL;
- if (!h || !h->privateData)
- {
- debug_error ("invalid para\n");
- return MMFILE_IO_FAILED;
- }
+ if (!h || !h->privateData) {
+ debug_error("invalid para\n");
+ return MMFILE_IO_FAILED;
+ }
- mmapHandle = h->privateData;
+ mmapHandle = h->privateData;
- return mmapHandle->offset;
+ return mmapHandle->offset;
}
-static int mmf_mmap_close (MMFileIOHandle *h)
+static int mmf_mmap_close(MMFileIOHandle *h)
{
- MMFMMapIOHandle *mmapHandle = NULL;
-
- if (!h || !h->privateData)
- {
- debug_error ("invalid para\n");
- return MMFILE_IO_FAILED;
- }
-
- mmapHandle = h->privateData;
-
- if (mmapHandle)
- {
- if (mmapHandle->ptr)
- {
- munmap (mmapHandle->ptr, mmapHandle->size);
- }
-
- if (mmapHandle->fd > 2)
- {
- close (mmapHandle->fd);
- }
-
- mmfile_free (mmapHandle);
- }
-
- h->privateData = NULL;
-
- return MMFILE_IO_SUCCESS;
+ MMFMMapIOHandle *mmapHandle = NULL;
+
+ if (!h || !h->privateData) {
+ debug_error("invalid para\n");
+ return MMFILE_IO_FAILED;
+ }
+
+ mmapHandle = h->privateData;
+
+ if (mmapHandle) {
+ if (mmapHandle->ptr) {
+ munmap(mmapHandle->ptr, mmapHandle->size);
+ }
+
+ if (mmapHandle->fd > 2) {
+ close(mmapHandle->fd);
+ }
+
+ mmfile_free(mmapHandle);
+ }
+
+ h->privateData = NULL;
+
+ return MMFILE_IO_SUCCESS;
}
@@ -333,5 +294,6 @@ MMFileIOFunc mmfile_mmap_io_handler = {
mmf_mmap_write,
mmf_mmap_seek,
mmf_mmap_tell,
- mmf_mmap_close
+ mmf_mmap_close,
+ NULL
};
diff --git a/utils/mm_file_util_list.c b/utils/mm_file_util_list.c
index 09ced62..896c1e7 100755
--- a/utils/mm_file_util_list.c
+++ b/utils/mm_file_util_list.c
@@ -20,91 +20,91 @@
*/
#include <glib.h>
-#include <mm_debug.h>
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
-EXPORT_API
-MMFileList mmfile_list_alloc ()
+EXPORT_API
+MMFileList mmfile_list_alloc()
{
- return g_list_alloc ();
+ return g_list_alloc();
}
EXPORT_API
-MMFileList mmfile_list_append (MMFileList list, void* data)
+MMFileList mmfile_list_append(MMFileList list, void *data)
{
- return g_list_append (list, data);
+ return g_list_append(list, data);
}
EXPORT_API
-MMFileList mmfile_list_prepend (MMFileList list, void* data)
+MMFileList mmfile_list_prepend(MMFileList list, void *data)
{
- return g_list_prepend (list, data);
+ return g_list_prepend(list, data);
}
EXPORT_API
-MMFileList mmfile_list_find (MMFileList list, void* data)
+MMFileList mmfile_list_find(MMFileList list, void *data)
{
- return g_list_find (list, data);
+ return g_list_find(list, data);
}
EXPORT_API
-MMFileList mmfile_list_first (MMFileList list)
+MMFileList mmfile_list_first(MMFileList list)
{
- return g_list_first (list);
+ return g_list_first(list);
}
EXPORT_API
-MMFileList mmfile_list_last (MMFileList list)
+MMFileList mmfile_list_last(MMFileList list)
{
- return g_list_last (list);
+ return g_list_last(list);
}
EXPORT_API
-MMFileList mmfile_list_nth (MMFileList list, unsigned int n)
+MMFileList mmfile_list_nth(MMFileList list, unsigned int n)
{
- return g_list_nth (list, n);
+ return g_list_nth(list, n);
}
EXPORT_API
-MMFileList mmfile_list_next (MMFileList list)
+MMFileList mmfile_list_next(MMFileList list)
{
- return g_list_next (list);
+ return g_list_next(list);
}
EXPORT_API
-MMFileList mmfile_list_previous (MMFileList list)
+MMFileList mmfile_list_previous(MMFileList list)
{
- return g_list_previous (list);
+ return g_list_previous(list);
}
EXPORT_API
-unsigned int mmfile_list_length (MMFileList list)
+unsigned int mmfile_list_length(MMFileList list)
{
- return g_list_length (list);
+ return g_list_length(list);
}
EXPORT_API
-MMFileList mmfile_list_remove (MMFileList list, void *data)
+MMFileList mmfile_list_remove(MMFileList list, void *data)
{
- return g_list_remove (list, data);
+ return g_list_remove(list, data);
}
EXPORT_API
-MMFileList mmfile_list_remove_all (MMFileList list, void *data)
+MMFileList mmfile_list_remove_all(MMFileList list, void *data)
{
- return g_list_remove_all (list, data);
+ return g_list_remove_all(list, data);
}
EXPORT_API
-MMFileList mmfile_list_reverse (MMFileList list)
+MMFileList mmfile_list_reverse(MMFileList list)
{
- return g_list_reverse (list);
+ return g_list_reverse(list);
}
EXPORT_API
-void mmfile_list_free (MMFileList list)
+void mmfile_list_free(MMFileList list)
{
- g_list_free (list);
+ g_list_free(list);
}
diff --git a/utils/mm_file_util_locale.c b/utils/mm_file_util_locale.c
index 982a622..343135b 100755
--- a/utils/mm_file_util_locale.c
+++ b/utils/mm_file_util_locale.c
@@ -18,8 +18,8 @@
* limitations under the License.
*
*/
-
-#include <stdlib.h>
+
+#include <stdlib.h>
#include <string.h>
#include <vconf.h>
@@ -27,13 +27,12 @@
#include <gconf/gconf-client.h>
#endif
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
/* This macro is the same with global-gconf.h */
#define MMFILE_LANGUAGETYPE_REPOSITORY "/Apps/Settings/language_type"
-typedef enum
-{
+typedef enum {
MMFILE_LANGUAGE_ENGLISH = 0x00, /**<Language - English*/
MMFILE_LANGUAGE_GERMAN, /**<Language - German*/
MMFILE_LANGUAGE_FRENCH, /**<Language - French*/
@@ -47,15 +46,14 @@ typedef enum
MMFILE_LANGUAGE_SIM_CHINA, /**<Language - Simplified Chinese*/
MMFILE_LANGUAGE_TRA_CHINA, /**<Language - Traditional Chinese*/
MMFILE_LANGUAGE_JAPAN, /**<Language - Japanease*/
-#if 0
+#if 0
MMFILE_LANGUAGE_BULGARIAN, /**<Language - Bulgarian*/
MMFILE_LANGUAGE_ARABIC, /**<Language - Arabic*/
#endif
- MMFILE_LANGUAGE_MAX
+ MMFILE_LANGUAGE_MAX
} eMMFileSettingPhoneLanguage;
-const char *MMFILE_LOCALE_TABLE [MMFILE_LANGUAGE_MAX] =
-{
+const char *MMFILE_LOCALE_TABLE[MMFILE_LANGUAGE_MAX] = {
"EUC-KR", /* Temporally - Language - English */
"ISO8859-1", /* Language - German */
"ISO8859-1", /* Language - French */
@@ -70,8 +68,8 @@ const char *MMFILE_LOCALE_TABLE [MMFILE_LANGUAGE_MAX] =
"BIG5", /* Language - Traditional Chinese */
"SHIFT_JIS" /* Language - Japanease */
#if 0
- /* Language - Bulgarian */
- /* Language - Arabic */
+ /* Language - Bulgarian */
+ /* Language - Arabic */
#endif
};
@@ -80,22 +78,19 @@ static int _MMFileUtilGetLocaleindex()
{
int index = MMFILE_LANGUAGE_ENGLISH;
char *lang = NULL;
- char *con_iso = NULL;
-
- char *china_prefix = "zh";
- char *eng_prefix = "en";
- char *china_lang = "zh_CN";
- char *hongkong_lang = "zh_HK";
- char *taiwan_lang = "zh_TW";
- char *jpn_lang = "ja_JP";
+ const char *china_prefix = "zh";
+ const char *eng_prefix = "en";
+ const char *china_lang = "zh_CN";
+ /*const char *hongkong_lang = "zh_HK";*/
+ /*const char *taiwan_lang = "zh_TW";*/
+ const char *jpn_lang = "ja_JP";
- con_iso = vconf_get_str(VCONFKEY_CSC_COUNTRY_ISO);
lang = vconf_get_str(VCONFKEY_LANGSET);
if (lang != NULL) {
- if (strncmp(lang,china_prefix, strlen(china_prefix)) == 0) {
+ if (strncmp(lang, china_prefix, strlen(china_prefix)) == 0) {
/* This case is selected language is china */
if (strncmp(lang, china_lang, strlen(china_lang)) == 0) {
debug_msg("[%s]character set is simplified chinese", lang);
@@ -108,21 +103,7 @@ static int _MMFileUtilGetLocaleindex()
/* This case is selected language is engilish
In case of engilish, the character set is related with region of target binary */
debug_msg("[%s]character set is engilish", lang);
- if (con_iso!=NULL) {
- if (strncmp(con_iso, "CN", strlen("CN")) == 0) {
- debug_msg("region of this target is China.");
- index = MMFILE_LANGUAGE_SIM_CHINA;
- } else if ((strncmp(con_iso, "TW", strlen("TW")) == 0) || (strncmp(con_iso, "HK", strlen("HK")) == 0)) {
- debug_msg("region of this target is Hong kong or Twian.");
- index = MMFILE_LANGUAGE_TRA_CHINA;
- } else {
- debug_msg("Use default character set.");
- index = MMFILE_LANGUAGE_ENGLISH;
- }
- } else {
- debug_error("country iso value is NULL");
- index = MMFILE_LANGUAGE_ENGLISH;
- }
+ index = MMFILE_LANGUAGE_ENGLISH;
} else if (strncmp(lang, jpn_lang, strlen(jpn_lang)) == 0) {
/* This case is selected language is japanease */
debug_msg("[%s]character set is japanease", lang);
@@ -136,29 +117,29 @@ static int _MMFileUtilGetLocaleindex()
index = MMFILE_LANGUAGE_ENGLISH;
}
- if(!con_iso) free(con_iso);
- if(!lang) free(lang);
+ if (lang) {
+ free(lang);
+ lang = NULL;
+ }
return index;
}
EXPORT_API
-char *MMFileUtilGetLocale (int *error)
+char *MMFileUtilGetLocale(int *error)
{
int index = 0;
int err = 0;
index = _MMFileUtilGetLocaleindex();
- if (index < 0 || index >= MMFILE_LANGUAGE_MAX)
- {
- debug_error ("invalid index\n");
+ if (index < 0 || index >= MMFILE_LANGUAGE_MAX) {
+ debug_error("invalid index\n");
err = MMFILE_UTIL_FAIL;
return NULL;
}
err = MMFILE_UTIL_SUCCESS;
- if (error)
- {
+ if (error) {
*error = err;
}
diff --git a/utils/mm_file_util_memory.c b/utils/mm_file_util_memory.c
index b88733c..625c6af 100755
--- a/utils/mm_file_util_memory.c
+++ b/utils/mm_file_util_memory.c
@@ -26,117 +26,116 @@
#ifdef __MMFILE_MEM_TRACE__
EXPORT_API
-void *mmfile_malloc_debug (unsigned int size, const char *func, unsigned int line)
+void *mmfile_malloc_debug(unsigned int size, const char *func, unsigned int line)
{
- void *tmp = malloc (size);
+ void *tmp = malloc(size);
if (tmp) {
- memset (tmp, 0x00, size);
- #ifdef __MMFILE_TEST_MODE__
+ memset(tmp, 0x00, size);
+#ifdef __MMFILE_TEST_MODE__
debug_msg("## DEBUG ## %p = malloc (%d) by %s() %d\n", tmp, size, func, line);
- #endif
+#endif
}
return tmp;
}
EXPORT_API
-void *mmfile_calloc_debug (unsigned int nmemb, unsigned int size, const char *func, unsigned int line)
+void *mmfile_calloc_debug(unsigned int nmemb, unsigned int size, const char *func, unsigned int line)
{
- void *tmp = calloc (nmemb, size);
+ void *tmp = calloc(nmemb, size);
if (tmp) {
- #ifdef __MMFILE_TEST_MODE__
+#ifdef __MMFILE_TEST_MODE__
debug_msg("## DEBUG ## %p = calloc (%d, %d) by %s() %d\n", tmp, nmemb, size, func, line);
- #endif
+#endif
}
return tmp;
}
EXPORT_API
-void mmfile_free_debug (void *ptr, const char *func, unsigned int line)
+void mmfile_free_debug(void *ptr, const char *func, unsigned int line)
{
if (ptr) {
- #ifdef __MMFILE_TEST_MODE__
+#ifdef __MMFILE_TEST_MODE__
debug_msg("## DEBUG ## free (%p) by %s() %d\n", ptr, func, line);
- #endif
- free (ptr);
+#endif
+ free(ptr);
}
}
EXPORT_API
-void *mmfile_realloc_debug (void *ptr, unsigned int size, const char *func, unsigned int line)
+void *mmfile_realloc_debug(void *ptr, unsigned int size, const char *func, unsigned int line)
{
- void *tmp = realloc (ptr, size);
+ void *tmp = realloc(ptr, size);
if (tmp) {
- #ifdef __MMFILE_TEST_MODE__
+#ifdef __MMFILE_TEST_MODE__
debug_msg("## DEBUG ## %p = realloc (%p, %d) by %s() %d\n", tmp, ptr, size, func, line);
- #endif
+#endif
}
return tmp;
}
EXPORT_API
-void *mmfile_memset_debug (void *s, int c, unsigned int n, const char *func, unsigned int line)
+void *mmfile_memset_debug(void *s, int c, unsigned int n, const char *func, unsigned int line)
{
- #ifdef __MMFILE_TEST_MODE__
+#ifdef __MMFILE_TEST_MODE__
debug_msg("## DEBUG ## memset (%p, %d, %d) by %s() %d\n", s, c, n, func, line);
- #endif
- return memset (s, c, n);
+#endif
+ return memset(s, c, n);
}
EXPORT_API
-void *mmfile_memcpy_debug (void *dest, const void *src, unsigned int n, const char *func, unsigned int line)
+void *mmfile_memcpy_debug(void *dest, const void *src, unsigned int n, const char *func, unsigned int line)
{
- #ifdef __MMFILE_TEST_MODE__
+#ifdef __MMFILE_TEST_MODE__
debug_msg("## DEBUG ## memcpy (%p, %p, %d) by %s() %d\n", dest, src, n, func, line);
- #endif
- return memcpy (dest, src, n);
+#endif
+ return memcpy(dest, src, n);
}
#else /* __MMFILE_MEM_TRACE__ : ------------------------------------------------------------------*/
EXPORT_API
-void *mmfile_malloc (unsigned int size)
+void *mmfile_malloc(unsigned int size)
{
- void *tmp = malloc (size);
- if (tmp)
- {
- memset (tmp, 0x00, size);
- }
- return tmp;
+ void *tmp = malloc(size);
+ if (tmp) {
+ memset(tmp, 0x00, size);
+ }
+ return tmp;
}
EXPORT_API
-void *mmfile_calloc (unsigned int nmemb, unsigned int size)
+void *mmfile_calloc(unsigned int nmemb, unsigned int size)
{
- void *tmp = calloc (nmemb, size);
- return tmp;
+ void *tmp = calloc(nmemb, size);
+ return tmp;
}
EXPORT_API
-void mmfile_free_r (void *ptr)
+void mmfile_free_r(void *ptr)
{
- if (ptr) free (ptr);
+ if (ptr) free(ptr);
}
EXPORT_API
-void *mmfile_realloc (void *ptr, unsigned int size)
+void *mmfile_realloc(void *ptr, unsigned int size)
{
- return realloc (ptr, size);
+ return realloc(ptr, size);
}
EXPORT_API
-void *mmfile_memset (void *s, int c, unsigned int n)
+void *mmfile_memset(void *s, int c, unsigned int n)
{
- return memset (s, c, n);
+ return memset(s, c, n);
}
EXPORT_API
-void *mmfile_memcpy (void *dest, const void *src, unsigned int n)
+void *mmfile_memcpy(void *dest, const void *src, unsigned int n)
{
- return memcpy (dest, src, n);
+ return memcpy(dest, src, n);
}
#endif
diff --git a/utils/mm_file_util_mime.c b/utils/mm_file_util_mime.c
index a461f3e..2f57b2e 100755
--- a/utils/mm_file_util_mime.c
+++ b/utils/mm_file_util_mime.c
@@ -21,173 +21,166 @@
#include <stdlib.h>
#include <string.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
-
-typedef struct _mmfileavmimetype
-{
- char mimetype[MMFILE_MIMETYPE_MAX_LEN];
- char ffmpegFormat[MMFILE_FILE_FMT_MAX_LEN];
- char extension[MMFILE_FILE_EXT_MAX_LEN];
+typedef struct _mmfileavmimetype {
+ char mimetype[MMFILE_MIMETYPE_MAX_LEN];
+ char ffmpegFormat[MMFILE_FILE_FMT_MAX_LEN];
+ char extension[MMFILE_FILE_EXT_MAX_LEN];
} MMFileAVMimeType;
-#define __FFMPEG_MIME_TABLE_SIZE 75
-const MMFileAVMimeType MMFILE_FFMPEG_MIME_TABLE [] =
-{
- {"audio/mpeg", "mp3", "mp3"},
- {"audio/mp3", "mp3", "mp3"},
- {"audio/mpg3", "mp3", "mp3"},
- {"audio/mpeg3", "mp3", "mp3"},
- {"audio/mpg", "mp3", "mp3"},
- {"audio/x-mpeg", "mp3", "mp3"},
- {"audio/x-mp3", "mp3", "mp3"},
- {"audio/x-mpeg3", "mp3", "mp3"},
- {"audio/x-mpg", "mp3", "mp3"},
- {"audio/x-mpegaudio", "mp3", "mp3"}, //10
-
- {"video/3gpp", "mov,mp4,m4a,3gp,3g2,mj2", "3gp"},
- {"video/h263", "mov,mp4,m4a,3gp,3g2,mj2", "3gp"},
- {"video/3gp", "mov,mp4,m4a,3gp,3g2,mj2", "3gp"},
- {"video/3gpp", "mov,mp4,m4a,3gp,3g2,mj2", "3gp"},
- {"video/mp4v-es", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"},
- {"video/mpeg", "mov,mp4,m4a,3gp,3g2,mj2", "mpeg"},
- {"audio/3gpp", "mov,mp4,m4a,3gp,3g2,mj2", "3gp"}, //17
-
- {"video/mpeg4", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"},
- {"video/mp4", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"},
- {"video/x-mp4", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"},
- {"video/x-pv-mp4", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"},
- {"audio/mp4", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"},
- {"audio/MP4A-LATM", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"},
- {"audio/mpeg4", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"},
- {"audio/m4a", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"}, //25
-
- {"video/avi", "avi", "avi"},
- {"video/divx", "divx", "divx"},
-
- {"audio/x-ms-asf", "asf", "asf"},
- {"video/x-ms-asf", "asf", "asf"},
- {"video/x-ms-asf", "asf", "asf"},
-
- {"video/x-ms-wmv", "asf", "wmv"},
- {"audio/wma", "asf", "wma"},
- {"audio/x-ms-wma", "asf", "wma"},
-
- {"audio/wave", "wav", "wav"}, /* Not Sure */
- {"audio/wav", "wav", "wav"}, /* Not Sure */
- {"audio/x-wave", "wav", "wav"}, /* Not Sure */
- {"audio/x-wav", "wav", "wav"}, /* Not Sure */
-
- {"audio/aac", "aac", "aac"}, /* Not Sure */
- {"audio/g72", "aac", "aac"}, /* Not Sure */ //39
-
- {"audio/AMR", "amr", "amr"}, /* Not Sure */
- {"audio/amr-wb", "amr", "amr"}, /* Not Sure */
- {"audio/x-amr", "amr", "amr"}, /* Not Sure */
-
- {"audio/x-mid", "mid", "mid"}, /* Not Sure */
- {"audio/x-midi", "mid", "mid"}, /* Not Sure */
- {"audio/mid", "mid", "mid"}, /* Not Sure */
- {"audio/midi", "mid", "mid"}, /* Not Sure */
- {"audio/mid", "mid", "mid"}, /* Not Sure */ //47
-
- {"audio/iMelody", "imy", "imy"}, /* Not Sure */
- {"audio/imelody", "imy", "imy"}, /* Not Sure */
- {"audio/melody", "imy", "imy"}, /* Not Sure */
- {"audio/imy", "imy", "imy"}, /* Not Sure */
- {"audio/x-iMelody", "imy", "imy"}, /* Not Sure */
-
- {"audio/basic", "snd", ""}, /* Not Sure */
- {"audio/pmd", "pmd", ""}, /* Not Sure */
- {"audio/sp-midi", "smp", ""}, /* Not Sure */ //55
-
- {"audio/mmf", "mmf", "mmf"}, /* Not Sure */
- {"audio/smaf", "mmf", "mmf"}, /* Not Sure */
- {"audio/x-mmf", "mmf", "mmf"}, /* Not Sure */
- {"audio/x-smaf", "mmf", "mmf"}, /* Not Sure */
-
- {"audio/xmf", "xmf", "xmf"}, /* Not Sure */
- {"audio/mobile-xmf", "xmf", "xmf"}, /* Not Sure */
- {"audio/x-xmf", "xmf", "xmf"}, /* Not Sure */ //62
-
- {"audio/vnd.rn-realaudio", "rm", ""}, /* Not Sure */
- {"audio/x-pn-multirate-realaudio", "rm", ""}, /* Not Sure */
- {"audio/x-pn-multirate-realaudio-live", "rm", ""}, /* Not Sure */
- {"video/vnd.rn-realvideo", "rm", ""}, /* Not Sure */
- {"video/vnd.rn-realmedia", "rm", ""}, /* Not Sure */
- {"video/x-pn-multirate-realvideo", "rm", ""}, /* Not Sure */ //68
-
- {"video/ogg", "ogg", "ogg"},
- {"video/theora", "ogg", "ogg"},
- {"audio/ogg", "ogg", "ogg"},
- {"audio/x-ogg", "ogg", "ogg"},
- {"audio/vorbis", "ogg", "ogg"}, //73
-
- {"audio/x-flac", "flac", "flac"}, //74
- {"video/x-flv", "flv", "flv"}, //75
+const MMFileAVMimeType MMFILE_FFMPEG_MIME_TABLE[] = {
+ {"audio/mpeg", "mp3", "mp3"},
+ {"audio/mp3", "mp3", "mp3"},
+ {"audio/mpg3", "mp3", "mp3"},
+ {"audio/mpeg3", "mp3", "mp3"},
+ {"audio/mpg", "mp3", "mp3"},
+ {"audio/x-mpeg", "mp3", "mp3"},
+ {"audio/x-mp3", "mp3", "mp3"},
+ {"audio/x-mpeg3", "mp3", "mp3"},
+ {"audio/x-mpg", "mp3", "mp3"},
+ {"audio/x-mpegaudio", "mp3", "mp3"}, /*10 */
+
+ {"video/3gpp", "mov,mp4,m4a,3gp,3g2,mj2", "3gp"},
+ {"video/h263", "mov,mp4,m4a,3gp,3g2,mj2", "3gp"},
+ {"video/3gp", "mov,mp4,m4a,3gp,3g2,mj2", "3gp"},
+ {"video/3gpp", "mov,mp4,m4a,3gp,3g2,mj2", "3gp"},
+ {"video/mp4v-es", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"},
+ {"video/dvd", "mov,mp4,m4a,3gp,3g2,mj2", "mpeg"},
+ {"audio/3gpp", "mov,mp4,m4a,3gp,3g2,mj2", "3gp"}, /*17 */
+
+ {"video/mpeg4", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"},
+ {"video/mp4", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"},
+ {"video/x-mp4", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"},
+ {"video/x-pv-mp4", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"},
+ {"audio/mp4", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"},
+ {"audio/MP4A-LATM", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"},
+ {"audio/mpeg4", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"},
+ {"audio/m4a", "mov,mp4,m4a,3gp,3g2,mj2", "mp4"}, /*25 */
+
+ {"video/avi", "avi", "avi"},
+ {"video/divx", "divx", "divx"},
+
+ {"audio/x-ms-asf", "asf", "asf"},
+ {"video/x-ms-asf", "asf", "asf"},
+ {"video/x-ms-asf", "asf", "asf"},
+
+ {"video/x-ms-wmv", "asf", "wmv"},
+ {"audio/wma", "asf", "wma"},
+ {"audio/x-ms-wma", "asf", "wma"},
+
+ {"audio/wave", "wav", "wav"}, /* Not Sure */
+ {"audio/wav", "wav", "wav"}, /* Not Sure */
+ {"audio/x-wave", "wav", "wav"}, /* Not Sure */
+ {"audio/x-wav", "wav", "wav"}, /* Not Sure */
+
+ {"audio/aac", "aac", "aac"}, /* Not Sure */
+ {"audio/g72", "aac", "aac"}, /* Not Sure */ /*39 */
+
+ {"audio/AMR", "amr", "amr"}, /* Not Sure */
+ {"audio/amr-wb", "amr", "amr"}, /* Not Sure */
+ {"audio/x-amr", "amr", "amr"}, /* Not Sure */
+
+ {"audio/x-mid", "mid", "mid"}, /* Not Sure */
+ {"audio/x-midi", "mid", "mid"}, /* Not Sure */
+ {"audio/mid", "mid", "mid"}, /* Not Sure */
+ {"audio/midi", "mid", "mid"}, /* Not Sure */
+ {"audio/mid", "mid", "mid"}, /* Not Sure */ /*47 */
+
+ {"audio/iMelody", "imy", "imy"}, /* Not Sure */
+ {"audio/imelody", "imy", "imy"}, /* Not Sure */
+ {"audio/melody", "imy", "imy"}, /* Not Sure */
+ {"audio/imy", "imy", "imy"}, /* Not Sure */
+ {"audio/x-iMelody", "imy", "imy"}, /* Not Sure */
+
+ {"audio/basic", "snd", ""}, /* Not Sure */
+ {"audio/pmd", "pmd", ""}, /* Not Sure */
+ {"audio/sp-midi", "smp", ""}, /* Not Sure */ /*55 */
+
+ {"audio/mmf", "mmf", "mmf"}, /* Not Sure */
+ {"audio/smaf", "mmf", "mmf"}, /* Not Sure */
+ {"audio/x-mmf", "mmf", "mmf"}, /* Not Sure */
+ {"audio/x-smaf", "mmf", "mmf"}, /* Not Sure */
+
+ {"audio/xmf", "xmf", "xmf"}, /* Not Sure */
+ {"audio/mobile-xmf", "xmf", "xmf"}, /* Not Sure */
+ {"audio/x-xmf", "xmf", "xmf"}, /* Not Sure */ /*62 */
+
+ {"audio/vnd.rn-realaudio", "rm", ""}, /* Not Sure */
+ {"audio/x-pn-multirate-realaudio", "rm", ""}, /* Not Sure */
+ {"audio/x-pn-multirate-realaudio-live", "rm", ""}, /* Not Sure */
+ {"video/vnd.rn-realvideo", "rm", ""}, /* Not Sure */
+ {"video/vnd.rn-realmedia", "rm", ""}, /* Not Sure */
+ {"video/x-pn-multirate-realvideo", "rm", ""}, /* Not Sure */ /*68 */
+
+ {"video/ogg", "ogg", "ogg"},
+ {"video/theora", "ogg", "ogg"},
+ {"audio/ogg", "ogg", "ogg"},
+ {"audio/x-ogg", "ogg", "ogg"},
+ {"audio/vorbis", "ogg", "ogg"}, /*73 */
+
+ {"audio/x-flac", "flac", "flac"}, /*74 */
+ {"video/x-flv", "flv", "flv"}, /*75 */
+ {"video/MP2T", "mpegts", "ts"},
+ {"video/MP2P", "mpeg", "mpg"},
+ {"video/mpeg", "mpegvideo", "mpeg"}, /*mpeg 1 video */
};
EXPORT_API
-int mmfile_util_get_ffmpeg_format (const char *mime, char *ffmpegFormat)
+int mmfile_util_get_ffmpeg_format(const char *mime, char *ffmpegFormat)
{
- int i = 0;
-
- if ( NULL == mime || NULL == ffmpegFormat)
- {
- debug_error ("error: mmfile_util_get_format\n");
- return MMFILE_UTIL_FAIL;
- }
-
- for (i = 0; i < __FFMPEG_MIME_TABLE_SIZE; i++)
- {
- if (!strcasecmp (MMFILE_FFMPEG_MIME_TABLE[i].mimetype, mime))
- {
- break;
- }
- }
-
- if (i == __FFMPEG_MIME_TABLE_SIZE)
- {
- debug_error ("error: not found[%s]\n", mime);
- return MMFILE_UTIL_FAIL;
- }
-
- memcpy (ffmpegFormat, MMFILE_FFMPEG_MIME_TABLE[i].ffmpegFormat, strlen(MMFILE_FFMPEG_MIME_TABLE[i].ffmpegFormat));
-
- return MMFILE_UTIL_SUCCESS;
+ int i = 0;
+ int table_size = sizeof(MMFILE_FFMPEG_MIME_TABLE) / sizeof(MMFileAVMimeType);
+
+ if (NULL == mime || NULL == ffmpegFormat) {
+ debug_error("error: mmfile_util_get_format\n");
+ return MMFILE_UTIL_FAIL;
+ }
+
+ for (i = 0; i < table_size; i++) {
+ if (!strcasecmp(MMFILE_FFMPEG_MIME_TABLE[i].mimetype, mime)) {
+ break;
+ }
+ }
+
+ if (i == table_size) {
+ debug_error("error: not found[%s]\n", mime);
+ return MMFILE_UTIL_FAIL;
+ }
+
+ memcpy(ffmpegFormat, MMFILE_FFMPEG_MIME_TABLE[i].ffmpegFormat, strlen(MMFILE_FFMPEG_MIME_TABLE[i].ffmpegFormat));
+
+ return MMFILE_UTIL_SUCCESS;
}
EXPORT_API
-int mmfile_util_get_file_ext (const char *mime, char *ext)
+int mmfile_util_get_file_ext(const char *mime, char *ext)
{
- int i = 0;
-
- if ( NULL == mime || NULL == ext)
- {
- debug_error ("error: mmfile_util_get_file_ext\n");
- return MMFILE_UTIL_FAIL;
- }
-
- for (i = 0; i < __FFMPEG_MIME_TABLE_SIZE; i++)
- {
- if (!strcasecmp (MMFILE_FFMPEG_MIME_TABLE[i].mimetype, mime))
- {
- break;
- }
- }
-
- if (i == __FFMPEG_MIME_TABLE_SIZE)
- {
- debug_error ("error: not found[%s]\n", mime);
- return MMFILE_UTIL_FAIL;
- }
-
- memcpy (ext, MMFILE_FFMPEG_MIME_TABLE[i].extension, strlen(MMFILE_FFMPEG_MIME_TABLE[i].extension));
-
- return MMFILE_UTIL_SUCCESS;
+ int i = 0;
+ int table_size = sizeof(MMFILE_FFMPEG_MIME_TABLE) / sizeof(MMFileAVMimeType);
+
+ if (NULL == mime || NULL == ext) {
+ debug_error("error: mmfile_util_get_file_ext\n");
+ return MMFILE_UTIL_FAIL;
+ }
+
+ for (i = 0; i < table_size; i++) {
+ if (!strcasecmp(MMFILE_FFMPEG_MIME_TABLE[i].mimetype, mime)) {
+ break;
+ }
+ }
+
+ if (i == table_size) {
+ debug_error("error: not found[%s]\n", mime);
+ return MMFILE_UTIL_FAIL;
+ }
+
+ memcpy(ext, MMFILE_FFMPEG_MIME_TABLE[i].extension, strlen(MMFILE_FFMPEG_MIME_TABLE[i].extension));
+
+ return MMFILE_UTIL_SUCCESS;
}
diff --git a/utils/mm_file_util_print.c b/utils/mm_file_util_print.c
index 7aa888f..cc25b66 100755
--- a/utils/mm_file_util_print.c
+++ b/utils/mm_file_util_print.c
@@ -19,89 +19,89 @@
*
*/
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
EXPORT_API
-void mmfile_format_print_contents (MMFileFormatContext *in)
+void mmfile_format_print_contents(MMFileFormatContext *in)
{
if (in) {
- debug_msg ("formatType = %d\n", in->formatType);
- debug_msg ("commandType = %d\n", in->commandType);
- debug_msg ("duration = %d\n", in->duration);
- debug_msg ("videoTotalTrackNum = %d\n", in->videoTotalTrackNum);
- debug_msg ("audioTotalTrackNum = %d\n", in->audioTotalTrackNum);
- debug_msg ("nbStreams = %d\n", in->nbStreams);
- debug_msg ("audioStreamId = %d\n", in->audioStreamId);
- debug_msg ("videoStreamId = %d\n", in->videoStreamId);
+ debug_msg("formatType = %d\n", in->formatType);
+ debug_msg("commandType = %d\n", in->commandType);
+ debug_msg("duration = %d\n", in->duration);
+ debug_msg("videoTotalTrackNum = %d\n", in->videoTotalTrackNum);
+ debug_msg("audioTotalTrackNum = %d\n", in->audioTotalTrackNum);
+ debug_msg("nbStreams = %d\n", in->nbStreams);
+ debug_msg("audioStreamId = %d\n", in->audioStreamId);
+ debug_msg("videoStreamId = %d\n", in->videoStreamId);
if (in->videoTotalTrackNum > 0 && in->streams[MMFILE_VIDEO_STREAM]) {
- debug_msg ("VstreamType = %d\n", in->streams[MMFILE_VIDEO_STREAM]->streamType);
- debug_msg ("VcodecId = %d\n", in->streams[MMFILE_VIDEO_STREAM]->codecId);
- debug_msg ("VbitRate = %d\n", in->streams[MMFILE_VIDEO_STREAM]->bitRate);
- debug_msg ("VframePerSec = %d\n", in->streams[MMFILE_VIDEO_STREAM]->framePerSec);
- debug_msg ("Vwidth = %d\n", in->streams[MMFILE_VIDEO_STREAM]->width);
- debug_msg ("Vheight = %d\n", in->streams[MMFILE_VIDEO_STREAM]->height);
- debug_msg ("VnbChannel = %d\n", in->streams[MMFILE_VIDEO_STREAM]->nbChannel);
- debug_msg ("VsamplePerSec = %d\n", in->streams[MMFILE_VIDEO_STREAM]->samplePerSec);
+ debug_msg("VstreamType = %d\n", in->streams[MMFILE_VIDEO_STREAM]->streamType);
+ debug_msg("VcodecId = %d\n", in->streams[MMFILE_VIDEO_STREAM]->codecId);
+ debug_msg("VbitRate = %d\n", in->streams[MMFILE_VIDEO_STREAM]->bitRate);
+ debug_msg("VframePerSec = %d\n", in->streams[MMFILE_VIDEO_STREAM]->framePerSec);
+ debug_msg("Vwidth = %d\n", in->streams[MMFILE_VIDEO_STREAM]->width);
+ debug_msg("Vheight = %d\n", in->streams[MMFILE_VIDEO_STREAM]->height);
+ debug_msg("VnbChannel = %d\n", in->streams[MMFILE_VIDEO_STREAM]->nbChannel);
+ debug_msg("VsamplePerSec = %d\n", in->streams[MMFILE_VIDEO_STREAM]->samplePerSec);
}
if (in->audioTotalTrackNum > 0 && in->streams[MMFILE_AUDIO_STREAM]) {
- debug_msg ("AstreamType = %d\n", in->streams[MMFILE_AUDIO_STREAM]->streamType);
- debug_msg ("AcodecId = %d\n", in->streams[MMFILE_AUDIO_STREAM]->codecId);
- debug_msg ("AbitRate = %d\n", in->streams[MMFILE_AUDIO_STREAM]->bitRate);
- debug_msg ("AframePerSec = %d\n", in->streams[MMFILE_AUDIO_STREAM]->framePerSec);
- debug_msg ("Awidth = %d\n", in->streams[MMFILE_AUDIO_STREAM]->width);
- debug_msg ("Aheight = %d\n", in->streams[MMFILE_AUDIO_STREAM]->height);
- debug_msg ("AnbChannel = %d\n", in->streams[MMFILE_AUDIO_STREAM]->nbChannel);
- debug_msg ("AsamplePerSec = %d\n", in->streams[MMFILE_AUDIO_STREAM]->samplePerSec);
+ debug_msg("AstreamType = %d\n", in->streams[MMFILE_AUDIO_STREAM]->streamType);
+ debug_msg("AcodecId = %d\n", in->streams[MMFILE_AUDIO_STREAM]->codecId);
+ debug_msg("AbitRate = %d\n", in->streams[MMFILE_AUDIO_STREAM]->bitRate);
+ debug_msg("AframePerSec = %d\n", in->streams[MMFILE_AUDIO_STREAM]->framePerSec);
+ debug_msg("Awidth = %d\n", in->streams[MMFILE_AUDIO_STREAM]->width);
+ debug_msg("Aheight = %d\n", in->streams[MMFILE_AUDIO_STREAM]->height);
+ debug_msg("AnbChannel = %d\n", in->streams[MMFILE_AUDIO_STREAM]->nbChannel);
+ debug_msg("AsamplePerSec = %d\n", in->streams[MMFILE_AUDIO_STREAM]->samplePerSec);
}
}
}
EXPORT_API
-void mmfile_format_print_tags (MMFileFormatContext *in)
+void mmfile_format_print_tags(MMFileFormatContext *in)
{
if (in) {
- if (in->title) debug_msg ("title = %s\n", in->title);
- if (in->artist) debug_msg ("artist = %s\n", in->artist);
- if (in->author) debug_msg ("author = %s\n", in->author);
- if (in->composer) debug_msg ("composer = %s\n", in->composer);
- if (in->album) debug_msg ("album = %s\n", in->album);
- if (in->album_artist) debug_msg ("album_artist = %s\n", in->album_artist);
- if (in->copyright) debug_msg ("copyright = %s\n", in->copyright);
- if (in->comment) debug_msg ("comment = %s\n", in->comment);
- if (in->genre) debug_msg ("genre = %s\n", in->genre);
- if (in->year) debug_msg ("year = %s\n", in->year);
- if (in->recDate) debug_msg ("recDate = %s\n", in->recDate);
- if (in->tagTrackNum) debug_msg ("tagTrackNum = %s\n", in->tagTrackNum);
- if (in->artworkMime) debug_msg ("artworkMime = %s\n", in->artworkMime);
- debug_msg ("artworksize = %d\n", in->artworkSize);
- if (in->artwork) debug_msg ("artwork = %p\n", in->artwork);
- if (in->classification) debug_msg ("classification = %s\n", in->classification);
+ if (in->title) debug_msg("title = %s\n", in->title);
+ if (in->artist) debug_msg("artist = %s\n", in->artist);
+ if (in->author) debug_msg("author = %s\n", in->author);
+ if (in->composer) debug_msg("composer = %s\n", in->composer);
+ if (in->album) debug_msg("album = %s\n", in->album);
+ if (in->album_artist) debug_msg("album_artist = %s\n", in->album_artist);
+ if (in->copyright) debug_msg("copyright = %s\n", in->copyright);
+ if (in->comment) debug_msg("comment = %s\n", in->comment);
+ if (in->genre) debug_msg("genre = %s\n", in->genre);
+ if (in->year) debug_msg("year = %s\n", in->year);
+ if (in->recDate) debug_msg("recDate = %s\n", in->recDate);
+ if (in->tagTrackNum) debug_msg("tagTrackNum = %s\n", in->tagTrackNum);
+ if (in->artworkMime) debug_msg("artworkMime = %s\n", in->artworkMime);
+ debug_msg("artworksize = %d\n", in->artworkSize);
+ if (in->artwork) debug_msg("artwork = %p\n", in->artwork);
+ if (in->classification) debug_msg("classification = %s\n", in->classification);
}
}
EXPORT_API
-void mmfile_format_print_frame (MMFileFormatFrame *in)
+void mmfile_format_print_frame(MMFileFormatFrame *in)
{
if (in) {
- debug_msg ("in->bCompressed = %d\n", in->bCompressed);
- debug_msg ("in->frameData = %p\n", in->frameData);
- debug_msg ("in->frameHeight = %d\n", in->frameHeight);
- debug_msg ("in->frameWidth = %d\n", in->frameWidth);
- debug_msg ("in->frameSize = %d\n", in->frameSize);
- debug_msg ("in->configLenth = %d\n", in->configLenth);
- debug_msg ("in->configData = %p\n", in->configData);
+ debug_msg("in->bCompressed = %d\n", in->bCompressed);
+ debug_msg("in->frameData = %p\n", in->frameData);
+ debug_msg("in->frameHeight = %d\n", in->frameHeight);
+ debug_msg("in->frameWidth = %d\n", in->frameWidth);
+ debug_msg("in->frameSize = %d\n", in->frameSize);
+ debug_msg("in->configLenth = %d\n", in->configLenth);
+ debug_msg("in->configData = %p\n", in->configData);
}
}
EXPORT_API
-void mmfile_codec_print (MMFileCodecContext *in)
+void mmfile_codec_print(MMFileCodecContext *in)
{
if (in) {
- debug_msg ("codecType = %d\n", in->codecType);
- debug_msg ("codec id = %d\n", in->codecId);
+ debug_msg("codecType = %d\n", in->codecType);
+ debug_msg("codec id = %d\n", in->codecId);
}
}
diff --git a/utils/mm_file_util_string.c b/utils/mm_file_util_string.c
index 41432f1..59dad60 100755
--- a/utils/mm_file_util_string.c
+++ b/utils/mm_file_util_string.c
@@ -18,52 +18,49 @@
* limitations under the License.
*
*/
-
-#include <stdlib.h>
+
+#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <unicode/ucsdet.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
#ifdef __MMFILE_MEM_TRACE__
EXPORT_API
-int mmfile_util_wstrlen (unsigned short *wText)
+int mmfile_util_wstrlen(unsigned short *wText)
{
- int n = 0;
+ int n = 0;
- if (NULL == wText)
- {
- debug_error ("wText is NULL\n");
- return MMFILE_UTIL_FAIL;
- }
+ if (NULL == wText) {
+ debug_error("wText is NULL\n");
+ return MMFILE_UTIL_FAIL;
+ }
- n = 0;
+ n = 0;
- while ( *(wText+n) != 0 )
- {
- n++;
- }
+ while (*(wText + n) != 0) {
+ n++;
+ }
- return n;
+ return n;
}
-short __WmLngSwapShort( short aShort )
+short __WmLngSwapShort(short aShort)
{
- return ( ( aShort << 8 ) + ( aShort >> 8 ) );
+ return ((aShort << 8) + (aShort >> 8));
}
EXPORT_API
-short* mmfile_swap_2byte_string (short* mszOutput, short* mszInput, int length)
+short *mmfile_swap_2byte_string(short *mszOutput, short *mszInput, int length)
{
int i;
- for ( i = 0; i < length; i++ )
- {
- if ( mszInput[i] == 0 )
+ for (i = 0; i < length; i++) {
+ if (mszInput[i] == 0)
break;
- mszOutput[i] = __WmLngSwapShort( mszInput[i] );
+ mszOutput[i] = __WmLngSwapShort(mszInput[i]);
}
mszOutput[i] = 0;
@@ -73,108 +70,105 @@ short* mmfile_swap_2byte_string (short* mszOutput, short* mszInput, int length)
EXPORT_API
-char *mmfile_string_convert_debug (const char *str, unsigned int len,
- const char *to_codeset, const char *from_codeset,
- int *bytes_read,
- int *bytes_written,
- const char *func,
- unsigned int line)
+char *mmfile_string_convert_debug(const char *str, unsigned int len,
+ const char *to_codeset, const char *from_codeset,
+ int *bytes_read,
+ int *bytes_written,
+ const char *func,
+ unsigned int line)
{
- char *tmp = g_convert (str, len, to_codeset, from_codeset, bytes_read, bytes_written, NULL);
+ char *tmp = g_convert(str, len, to_codeset, from_codeset, bytes_read, bytes_written, NULL);
- if (tmp)
- {
+ if (tmp) {
#ifdef __MMFILE_TEST_MODE__
debug_msg("## DEBUG ## %p = g_convert (%p, %u, %p, %p, %p ,%p, %p, %u) by %s() %d\n",
- tmp, str, len, to_codeset, from_codeset, bytes_read, bytes_written, func, line);
+ tmp, str, len, to_codeset, from_codeset, bytes_read, bytes_written, func, line);
#endif
- }
+ }
+
+ return tmp;
- return tmp;
-
}
EXPORT_API
-char **mmfile_strsplit (const char *string, const char *delimiter)
+char **mmfile_strsplit(const char *string, const char *delimiter)
{
- return g_strsplit (string, delimiter, -1);
+ return g_strsplit(string, delimiter, -1);
}
EXPORT_API
-void mmfile_strfreev (char **str_array)
+void mmfile_strfreev(char **str_array)
{
- g_strfreev(str_array);
+ g_strfreev(str_array);
}
EXPORT_API
-char *mmfile_strdup_debug (const char *str, const char *func, unsigned int line)
+char *mmfile_strdup_debug(const char *str, const char *func, unsigned int line)
{
- char *temp = NULL;
-
- if (!str)
- return NULL;
-
- temp = strdup (str);
-
- if (temp) {
+ char *temp = NULL;
+
+ if (!str)
+ return NULL;
+
+ temp = strdup(str);
+
+ if (temp) {
#ifdef __MMFILE_TEST_MODE__
- debug_msg("## DEBUG ## %p = strdup (%p) by %s() %d\n", temp, str, func, line);
+ debug_msg("## DEBUG ## %p = strdup (%p) by %s() %d\n", temp, str, func, line);
#endif
- }
+ }
- return temp;
+ return temp;
}
#else /* __MMFILE_MEM_TRACE__ */
EXPORT_API
-int mmfile_util_wstrlen (unsigned short *wText)
+int mmfile_util_wstrlen(unsigned short *wText)
{
- int n = 0;
+ int n = 0;
- if (NULL == wText)
- {
- debug_error ("wText is NULL\n");
- return MMFILE_UTIL_FAIL;
- }
+ if (NULL == wText) {
+ debug_error("wText is NULL\n");
+ return MMFILE_UTIL_FAIL;
+ }
- n = 0;
+ n = 0;
- while ( *(wText+n) != 0 )
- {
- n++;
- }
+ while (*(wText + n) != 0) {
+ n++;
+ }
- return n;
+ return n;
}
EXPORT_API
char *mmfile_get_charset(const char *str)
{
- UCharsetDetector* ucsd = NULL;
- const UCharsetMatch* ucm = NULL;
+ UCharsetDetector *ucsd = NULL;
+ const UCharsetMatch *ucm = NULL;
UErrorCode status = U_ZERO_ERROR;
- const char* charset = NULL;
+ const char *charset = NULL;
char *ret_charset = NULL;
- ucsd = ucsdet_open( &status );
- if( U_FAILURE(status) ) {
+ ucsd = ucsdet_open(&status);
+ if (U_FAILURE(status)) {
debug_error("fail to ucsdet_open\n");
return NULL;
}
- ucsdet_enableInputFilter( ucsd, TRUE );
+ ucsdet_enableInputFilter(ucsd, TRUE);
- ucsdet_setText( ucsd, str, strlen(str), &status );
- if( U_FAILURE(status) ) {
+ ucsdet_setText(ucsd, str, strlen(str), &status);
+ if (U_FAILURE(status)) {
debug_error("fail to ucsdet_setText\n");
goto done;
}
- ucm = ucsdet_detect( ucsd, &status );
- if( U_FAILURE(status) ) {
+ ucm = ucsdet_detect(ucsd, &status);
+ if (U_FAILURE(status)) {
debug_error("fail to ucsdet_detect\n");
goto done;
}
@@ -184,8 +178,8 @@ char *mmfile_get_charset(const char *str)
goto done;
}
- charset = ucsdet_getName( ucm, &status );
- if( U_FAILURE(status) ) {
+ charset = ucsdet_getName(ucm, &status);
+ if (U_FAILURE(status)) {
debug_error("fail to ucsdet_getName\n");
charset = NULL;
goto done;
@@ -196,41 +190,41 @@ done:
if (charset != NULL)
ret_charset = strdup(charset);
- ucsdet_close( ucsd );
+ ucsdet_close(ucsd);
return ret_charset;
}
EXPORT_API
-char *mmfile_string_convert (const char *str, unsigned int len,
- const char *to_codeset, const char *from_codeset,
- unsigned int *bytes_read,
- unsigned int *bytes_written)
+char *mmfile_string_convert(const char *str, unsigned int len,
+ const char *to_codeset, const char *from_codeset,
+ gsize *bytes_read,
+ unsigned int *bytes_written)
{
char *result = NULL;
GError *err = NULL;
- int i = 0;
- unsigned int written_len = 0;
+ /*int i = 0;*/
+ gsize written_len = 0;
if (len != 0) {
- result = g_convert (str, len, to_codeset, from_codeset, bytes_read, &written_len, &err);
+ result = g_convert(str, len, to_codeset, from_codeset, bytes_read, &written_len, &err);
/*if converting failed, return duplicated source string.*/
if (result == NULL) {
#ifdef __MMFILE_TEST_MODE__
- debug_warning ("text encoding failed.[%s][%d]\n", str, len);
- if(err != NULL) {
- debug_warning ("Error msg [%s]", err->message);
+ debug_warning("text encoding failed.[%s][%d]\n", str, len);
+ if (err != NULL) {
+ debug_warning("Error msg [%s]", err->message);
g_error_free(err);
}
#endif
written_len = 0;
} else {
/* check carrige return */
- int i = 0;
+ unsigned int i = 0;
for (i = 0; i < written_len; i++) {
- if (result[i] == 13){
- if (result[i+1] != 10)
+ if (result[i] == 13) {
+ if (result[i + 1] != 10)
result[i] = 10;
}
}
@@ -239,7 +233,7 @@ char *mmfile_string_convert (const char *str, unsigned int len,
written_len = 0;
}
- if(bytes_written != NULL) {
+ if (bytes_written != NULL) {
*bytes_written = written_len;
}
@@ -247,24 +241,24 @@ char *mmfile_string_convert (const char *str, unsigned int len,
}
EXPORT_API
-char **mmfile_strsplit (const char *string, const char *delimiter)
+char **mmfile_strsplit(const char *string, const char *delimiter)
{
- return g_strsplit (string, delimiter, -1);
+ return g_strsplit(string, delimiter, -1);
}
EXPORT_API
-void mmfile_strfreev (char **str_array)
+void mmfile_strfreev(char **str_array)
{
- g_strfreev(str_array);
+ g_strfreev(str_array);
}
EXPORT_API
-char *mmfile_strdup (const char *str)
+char *mmfile_strdup(const char *str)
{
- if (!str)
- return NULL;
-
- return strdup (str);
+ if (!str)
+ return NULL;
+
+ return strdup(str);
}
#endif /*__MMFILE_MEM_TRACE__*/
diff --git a/utils/mm_file_util_tag.c b/utils/mm_file_util_tag.c
index 05057d3..b0cb122 100755
--- a/utils/mm_file_util_tag.c
+++ b/utils/mm_file_util_tag.c
@@ -24,11 +24,12 @@
#include <stdlib.h>
#include <ctype.h>
#include <vconf.h>
+#include <glib.h>
-#include "mm_debug.h"
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
-#define ENABLE_ITUNES_META //All itunes metadata extracted by ffmpeg. see mov_read_udta_string() but Some cover art not support.
+#define ENABLE_ITUNES_META /*All itunes metadata extracted by ffmpeg. see mov_read_udta_string() but Some cover art not support. */
typedef struct _mmfilemp4basicboxheader {
unsigned int size;
@@ -142,395 +143,391 @@ typedef struct _mmfilesmtabox {
#define MMFILE_SYNC_LYRIC_INFO_MIN_LEN 5
-#define FOURCC(a,b,c,d) ((a) + ((b) << 8) + ((c) << 16) + ((d) << 24))
+#define FOURCC(a, b, c, d) ((a) + ((b) << 8) + ((c) << 16) + ((d) << 24))
-#define MIN(a,b) (((a)<(b))?(a):(b))
+/*#define MIN(a, b) (((a) < (b)) ? (a):(b))*/
#define GENRE_COUNT 149
-static char* MpegAudio_Genre[GENRE_COUNT] = {"Blues", "Classic Rock", "Country", "Dance", "Disco", "Funk", "Grunge", "Hip-Hop", "Jazz", "Metal",
-"New Age", "Oldies", "Other", "Pop", "R&B", "Rap", "Reggae", "Rock", "Techno", "Industrial",
-"Alternative", "Ska", "Death Metal", "Pranks", "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", "Vocal", "Jazz+Funk",
-"Fusion", "Trance", "Classical", "Instrumental", "Acid", "House", "Game", "Sound Clip", "Gospel", "Noise",
-"AlternRock", "Bass", "Soul", "Punk", "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", "Ethnic", "Gothic",
-"Darkwave", "Techno-Industrial", "Electronic", "Pop-Folk", "Eurodance", "Dream", "Southern Rock", "Comedy", "Cult", "Gangsta",
-"Top 40", "Christian Rap", "Pop/Funk", "Jungle", "Native American", "Cabaret", "New Wave", "Psychadelic", "Rave", "Showtunes",
-"Trailer", "Lo-Fi", "Tribal", "Acid Punk", "Acid Jazz", "Polka", "Retro", "Musical", "Rock & Roll", "Hard Rock",
-"Folk", "Folk-Rock", "National Folk", "Swing", "Fast Fusion", "Bebob", "Latin", "Revival", "Celtic", "Bluegrass",
-"Avantgarde", "Gothic Rock", "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", "Big Band", "Chorus", "Easy Listening", "Acoustic",
-"Humour", "Speech", "Chanson", "Opera", "Chamber Music", "Sonata", "Symphony", "Booty Bass", "Primus", "Porn Groove",
-"Satire", "Slow Jam", "Club", "Tango", "Samba", "Folklore", "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle",
-"Duet", "Punk Rock", "Drum Solo", "A capella", "Euro-House", "Dance Hall", "Goa", "Drum & Bass", "Club-House", "Hardcore",
-"Terror", "Indie", "BritPop", "Negerpunk", "Polsk Punk", "Beat", "Christian", "Heavy Metal", "Black Metal", "Crossover",
-"Contemporary", "Christian Rock", "Merengue", "Salsa", "Thrash Metal", "Anime", "JPop", "Synthpop", "Unknown" };
-
-
-static int GetStringFromTextTagBox (MMFileFormatContext *formatContext, MMFileIOHandle *fp, MMFILE_MP4_BASIC_BOX_HEADER *basic_header, eMMFILE_3GP_TEXT_TAG eTag)
+static const char *MpegAudio_Genre[GENRE_COUNT] = {"Blues", "Classic Rock", "Country", "Dance", "Disco", "Funk", "Grunge", "Hip-Hop", "Jazz", "Metal",
+ "New Age", "Oldies", "Other", "Pop", "R&B", "Rap", "Reggae", "Rock", "Techno", "Industrial",
+ "Alternative", "Ska", "Death Metal", "Pranks", "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", "Vocal", "Jazz+Funk",
+ "Fusion", "Trance", "Classical", "Instrumental", "Acid", "House", "Game", "Sound Clip", "Gospel", "Noise",
+ "AlternRock", "Bass", "Soul", "Punk", "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", "Ethnic", "Gothic",
+ "Darkwave", "Techno-Industrial", "Electronic", "Pop-Folk", "Eurodance", "Dream", "Southern Rock", "Comedy", "Cult", "Gangsta",
+ "Top 40", "Christian Rap", "Pop/Funk", "Jungle", "Native American", "Cabaret", "New Wave", "Psychadelic", "Rave", "Showtunes",
+ "Trailer", "Lo-Fi", "Tribal", "Acid Punk", "Acid Jazz", "Polka", "Retro", "Musical", "Rock & Roll", "Hard Rock",
+ "Folk", "Folk-Rock", "National Folk", "Swing", "Fast Fusion", "Bebob", "Latin", "Revival", "Celtic", "Bluegrass",
+ "Avantgarde", "Gothic Rock", "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", "Big Band", "Chorus", "Easy Listening", "Acoustic",
+ "Humour", "Speech", "Chanson", "Opera", "Chamber Music", "Sonata", "Symphony", "Booty Bass", "Primus", "Porn Groove",
+ "Satire", "Slow Jam", "Club", "Tango", "Samba", "Folklore", "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle",
+ "Duet", "Punk Rock", "Drum Solo", "A capella", "Euro-House", "Dance Hall", "Goa", "Drum & Bass", "Club-House", "Hardcore",
+ "Terror", "Indie", "BritPop", "Negerpunk", "Polsk Punk", "Beat", "Christian", "Heavy Metal", "Black Metal", "Crossover",
+ "Contemporary", "Christian Rock", "Merengue", "Salsa", "Thrash Metal", "Anime", "JPop", "Synthpop", "Unknown"
+ };
+
+
+static int GetStringFromTextTagBox(MMFileFormatContext *formatContext, MMFileIOHandle *fp, MMFILE_MP4_BASIC_BOX_HEADER *basic_header, eMMFILE_3GP_TEXT_TAG eTag)
{
int ret = MMFILE_UTIL_FAIL; /*fail*/
- MMFILE_3GP_TEXT_TAGBOX texttag = {0,};
+ MMFILE_3GP_TEXT_TAGBOX texttag = {0, };
int readed = 0;
int textBytes = 0;
char *temp_text = NULL;
if (!formatContext || !fp || !basic_header) {
- debug_error ("invalid param\n");
+ debug_error("invalid param\n");
return MMFILE_UTIL_FAIL;
}
textBytes = basic_header->size - MMFILE_MP4_BASIC_BOX_HEADER_LEN - MMFILE_3GP_TEXT_TAGBOX_LEN;
- readed = mmfile_read (fp, (unsigned char *)&texttag, MMFILE_3GP_TEXT_TAGBOX_LEN);
+ readed = mmfile_read(fp, (unsigned char *)&texttag, MMFILE_3GP_TEXT_TAGBOX_LEN);
if (readed != MMFILE_3GP_TEXT_TAGBOX_LEN) {
- debug_error ("read text tag header fail\n");
+ debug_error("read text tag header fail\n");
ret = MMFILE_UTIL_FAIL;
goto exception;
}
- if (textBytes <= 1) /* there exist only 00 (null) */
- {
- debug_error ("Text is NULL\n");
+ if (textBytes <= 1) { /* there exist only 00(null) */
+ debug_error("Text is NULL\n");
goto exception;
}
- texttag.text = mmfile_malloc (textBytes);
+ texttag.text = mmfile_malloc(textBytes);
if (!texttag.text) {
- debug_error ("malloc fail for text box\n");
+ debug_error("malloc fail for text box\n");
ret = MMFILE_UTIL_FAIL;
goto exception;
}
- readed = mmfile_read (fp, (unsigned char *)texttag.text, textBytes);
+ readed = mmfile_read(fp, (unsigned char *)texttag.text, textBytes);
if (readed != textBytes) {
- debug_error ("read text fail\n");
+ debug_error("read text fail\n");
ret = MMFILE_UTIL_FAIL;
goto exception;
}
/* check BOM char */
- if ( (texttag.text[0] == 0xFE) && (texttag.text[1] == 0xFF)) {
+ if ((texttag.text[0] == 0xFE) && (texttag.text[1] == 0xFF)) {
/* this char is UTF-16 */
unsigned int bytes_written = 0;
- temp_text = mmfile_string_convert ((const char *)&texttag.text[2], readed-2, "UTF-8", "UTF-16",NULL, (unsigned int*)&bytes_written);
+ temp_text = mmfile_string_convert((const char *)&texttag.text[2], readed - 2, "UTF-8", "UTF-16", NULL, (unsigned int *)&bytes_written);
} else {
- temp_text = mmfile_strdup ((const char *)texttag.text);
+ temp_text = mmfile_strdup((const char *)texttag.text);
}
switch (eTag) {
case eMMFILE_3GP_TAG_TITLE: {
- if (!formatContext->title) {
- formatContext->title = temp_text;
+ if (!formatContext->title) {
+ formatContext->title = temp_text;
+ }
+ break;
}
- break;
- }
case eMMFILE_3GP_TAG_CAPTION: {
- if (!formatContext->description) {
- formatContext->description = temp_text;
+ if (!formatContext->description) {
+ formatContext->description = temp_text;
+ }
+ break;
}
- break;
- }
case eMMFILE_3GP_TAG_COPYRIGHT: {
- if (!formatContext->copyright) {
- formatContext->copyright = temp_text;
+ if (!formatContext->copyright) {
+ formatContext->copyright = temp_text;
+ }
+ break;
}
- break;
- }
case eMMFILE_3GP_TAG_PERFORMER: {
- if (!formatContext->artist) {
- formatContext->artist = temp_text;
+ if (!formatContext->artist) {
+ formatContext->artist = temp_text;
+ }
+ break;
}
- break;
- }
case eMMFILE_3GP_TAG_AUTHOR: {
- if (!formatContext->author) {
- formatContext->author = temp_text;
+ if (!formatContext->author) {
+ formatContext->author = temp_text;
+ }
+ break;
}
- break;
- }
case eMMFILE_3GP_TAG_GENRE: {
- if (!formatContext->genre) {
- formatContext->genre = temp_text;
+ if (!formatContext->genre) {
+ formatContext->genre = temp_text;
+ }
+ break;
}
- break;
- }
default: {
- debug_warning("Not supported Text Tag type[%d]\n", eTag);
- break;
- }
+ debug_warning("Not supported Text Tag type[%d]\n", eTag);
+ break;
+ }
}
- mmfile_free (texttag.text);
+ mmfile_free(texttag.text);
texttag.text = NULL;
- mmfile_seek (fp, basic_header->start_offset + basic_header->size, SEEK_SET);
+ mmfile_seek(fp, basic_header->start_offset + basic_header->size, SEEK_SET);
return MMFILE_UTIL_SUCCESS;
exception:
- mmfile_seek (fp, basic_header->start_offset + basic_header->size, SEEK_SET);
+ mmfile_seek(fp, basic_header->start_offset + basic_header->size, SEEK_SET);
if (texttag.text) {
mmfile_free(texttag.text);
}
return ret;
}
-static int GetYearFromYearTagBox (MMFileFormatContext *formatContext, MMFileIOHandle *fp, MMFILE_MP4_BASIC_BOX_HEADER *basic_header)
+static int GetYearFromYearTagBox(MMFileFormatContext *formatContext, MMFileIOHandle *fp, MMFILE_MP4_BASIC_BOX_HEADER *basic_header)
{
#define MAX_YEAR_BUFFER 10
int readed = 0;
- MMFILE_3GP_YEAR_TAGBOX yearbox = {0,};
- char temp_year[MAX_YEAR_BUFFER] = {0,};
+ MMFILE_3GP_YEAR_TAGBOX yearbox = {0, };
+ char temp_year[MAX_YEAR_BUFFER] = {0, };
if (!formatContext || !fp || !basic_header) {
- debug_error ("invalid param\n");
+ debug_error("invalid param\n");
return MMFILE_UTIL_FAIL;
}
- readed = mmfile_read (fp, (unsigned char *)&yearbox, MMFILE_3GP_YEAR_TAGBOX_LEN);
+ readed = mmfile_read(fp, (unsigned char *)&yearbox, MMFILE_3GP_YEAR_TAGBOX_LEN);
if (readed != MMFILE_3GP_YEAR_TAGBOX_LEN) {
- debug_error ("read yeartag header fail\n");
+ debug_error("read yeartag header fail\n");
goto exception;
}
if (!formatContext->year) {
- yearbox.year = mmfile_io_be_int16 (yearbox.year);
- snprintf (temp_year, MAX_YEAR_BUFFER, "%d", yearbox.year);
- temp_year[MAX_YEAR_BUFFER-1] = '\0';
- formatContext->year = mmfile_strdup ((const char*)temp_year);
+ yearbox.year = mmfile_io_be_int16(yearbox.year);
+ snprintf(temp_year, MAX_YEAR_BUFFER, "%d", yearbox.year);
+ temp_year[MAX_YEAR_BUFFER - 1] = '\0';
+ formatContext->year = mmfile_strdup((const char *)temp_year);
}
- mmfile_seek (fp, basic_header->start_offset + basic_header->size, SEEK_SET);
+ mmfile_seek(fp, basic_header->start_offset + basic_header->size, SEEK_SET);
return MMFILE_UTIL_SUCCESS;
exception:
- mmfile_seek (fp, basic_header->start_offset + basic_header->size, SEEK_SET);
+ mmfile_seek(fp, basic_header->start_offset + basic_header->size, SEEK_SET);
return MMFILE_UTIL_FAIL;
}
-static int GetAlbumFromAlbumTagBox (MMFileFormatContext *formatContext, MMFileIOHandle *fp, MMFILE_MP4_BASIC_BOX_HEADER *basic_header)
+static int GetAlbumFromAlbumTagBox(MMFileFormatContext *formatContext, MMFileIOHandle *fp, MMFILE_MP4_BASIC_BOX_HEADER *basic_header)
{
int albumTitleLen = 0;
char *temp_text = NULL;
int readed = 0;
int trackFlags = 0;
- MMFILE_3GP_ALBUM_TAGBOX albumbox = {0,};
+ MMFILE_3GP_ALBUM_TAGBOX albumbox = {0, };
if (!formatContext || !fp || !basic_header) {
- debug_error ("invalid param\n");
+ debug_error("invalid param\n");
return MMFILE_UTIL_FAIL;
}
- readed = mmfile_read (fp, (unsigned char *)&albumbox, MMFILE_3GP_ALBUM_TAGBOX_LEN);
+ readed = mmfile_read(fp, (unsigned char *)&albumbox, MMFILE_3GP_ALBUM_TAGBOX_LEN);
if (readed != MMFILE_3GP_ALBUM_TAGBOX_LEN) {
- debug_error ("read albumtag header fail\n");
+ debug_error("read albumtag header fail\n");
goto exception;
}
albumTitleLen = basic_header->size - MMFILE_MP4_BASIC_BOX_HEADER_LEN - MMFILE_3GP_ALBUM_TAGBOX_LEN - 1; /* 1: track number */
- if (albumTitleLen > 1) /* there exist only 00 (null) */
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("albumTitleLen=%d\n", albumTitleLen);
- #endif
+ if (albumTitleLen > 1) { /* there exist only 00(null) */
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("albumTitleLen=%d\n", albumTitleLen);
+#endif
- albumbox.albumtile = mmfile_malloc (albumTitleLen + 1); /* 1: for null char */
+ albumbox.albumtile = mmfile_malloc(albumTitleLen + 1); /* 1: for null char */
if (!albumbox.albumtile) {
- debug_error ("malloc fail for album title text\n");
+ debug_error("malloc fail for album title text\n");
goto exception;
}
- readed = mmfile_read (fp, (unsigned char *)albumbox.albumtile, albumTitleLen);
+ readed = mmfile_read(fp, (unsigned char *)albumbox.albumtile, albumTitleLen);
if (readed != albumTitleLen) {
- debug_error ("read album title fail\n");
+ debug_error("read album title fail\n");
goto exception;
}
- if (albumbox.albumtile[albumTitleLen-1] == '\0') /* there exist track number */
- {
+ if (albumbox.albumtile[albumTitleLen - 1] == '\0') { /* there exist track number */
trackFlags = 1;
- }
- else
- {
+ } else {
trackFlags = 0;
- readed = mmfile_read (fp, (unsigned char *)&(albumbox.albumtile[albumTitleLen]), 1);
+ readed = mmfile_read(fp, (unsigned char *)&(albumbox.albumtile[albumTitleLen]), 1);
if (readed != 1) {
- debug_error ("read album title fail\n");
+ debug_error("read album title fail\n");
goto exception;
- }
+ }
albumbox.albumtile[albumTitleLen] = '\0';
}
/* check BOM char */
- if ( (albumbox.albumtile[0] == 0xFE) && (albumbox.albumtile[1] == 0xFF)) {
+ if ((albumbox.albumtile[0] == 0xFE) && (albumbox.albumtile[1] == 0xFF)) {
/* this char is UTF-16 */
unsigned int bytes_written = 0;
- temp_text = mmfile_string_convert ((const char*)&albumbox.albumtile[2], readed-2, "UTF-8", "UTF-16", NULL, (unsigned int*)&bytes_written);
+ temp_text = mmfile_string_convert((const char *)&albumbox.albumtile[2], readed - 2, "UTF-8", "UTF-16", NULL, (unsigned int *)&bytes_written);
} else {
- temp_text = mmfile_strdup ((const char*)albumbox.albumtile);
+ temp_text = mmfile_strdup((const char *)albumbox.albumtile);
}
if (!formatContext->album) {
formatContext->album = temp_text;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("formatContext->album=%s, strlen=%d\n", formatContext->album, strlen(formatContext->album));
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("formatContext->album=%s, strlen=%d\n", formatContext->album, strlen(formatContext->album));
+#endif
}
if (trackFlags) {
- readed = mmfile_read (fp, (unsigned char *)&albumbox.trackNumber, 1);
+ readed = mmfile_read(fp, (unsigned char *)&albumbox.trackNumber, 1);
if (readed != 1) {
- debug_error ("read track number fail\n");
+ debug_error("read track number fail\n");
goto exception;
}
if (formatContext->tagTrackNum == 0) {
- char tracknum[10] = {0,};
- snprintf (tracknum, 10, "%d", albumbox.trackNumber);
+ char tracknum[10] = {0, };
+ snprintf(tracknum, 10, "%d", albumbox.trackNumber);
tracknum[9] = '\0';
- formatContext->tagTrackNum = mmfile_strdup ((const char*)tracknum);
+ formatContext->tagTrackNum = mmfile_strdup((const char *)tracknum);
}
}
- mmfile_free (albumbox.albumtile);
- mmfile_seek (fp, basic_header->start_offset + basic_header->size, SEEK_SET);
+ mmfile_free(albumbox.albumtile);
+ mmfile_seek(fp, basic_header->start_offset + basic_header->size, SEEK_SET);
return MMFILE_UTIL_SUCCESS;
exception:
- mmfile_seek (fp, basic_header->start_offset + basic_header->size, SEEK_SET);
- mmfile_free (albumbox.albumtile);
+ mmfile_seek(fp, basic_header->start_offset + basic_header->size, SEEK_SET);
+ mmfile_free(albumbox.albumtile);
return MMFILE_UTIL_FAIL;
}
-static int GetRatingFromRatingTagBox (MMFileFormatContext *formatContext, MMFileIOHandle *fp, MMFILE_MP4_BASIC_BOX_HEADER *basic_header)
+static int GetRatingFromRatingTagBox(MMFileFormatContext *formatContext, MMFileIOHandle *fp, MMFILE_MP4_BASIC_BOX_HEADER *basic_header)
{
int readed = 0;
int ratinginfoLen = 0;
char *temp_text = NULL;
- MMFILE_3GP_RATING_TAGBOX ratingTag = {0,};
+ MMFILE_3GP_RATING_TAGBOX ratingTag = {0, };
if (!formatContext || !fp || !basic_header) {
- debug_error ("invalid param\n");
+ debug_error("invalid param\n");
return MMFILE_UTIL_FAIL;
}
- readed = mmfile_read (fp, (unsigned char *)&ratingTag, MMFILE_3GP_RATING_TAGBOX_LEN);
+ readed = mmfile_read(fp, (unsigned char *)&ratingTag, MMFILE_3GP_RATING_TAGBOX_LEN);
if (readed != MMFILE_3GP_RATING_TAGBOX_LEN) {
- debug_error ("read rating tag header fail\n");
+ debug_error("read rating tag header fail\n");
goto exception;
}
ratinginfoLen = basic_header->size - MMFILE_MP4_BASIC_BOX_HEADER_LEN - MMFILE_3GP_RATING_TAGBOX_LEN;
if (ratinginfoLen == 1) {
- debug_error ("Rating Text is NULL\n");
+ debug_error("Rating Text is NULL\n");
goto exception;
}
- ratingTag.ratingInfo = mmfile_malloc (ratinginfoLen);
+ ratingTag.ratingInfo = mmfile_malloc(ratinginfoLen);
if (!ratingTag.ratingInfo) {
- debug_error ("rating info error\n");
+ debug_error("rating info error\n");
goto exception;
}
- readed = mmfile_read (fp, (unsigned char *)ratingTag.ratingInfo, ratinginfoLen);
+ readed = mmfile_read(fp, (unsigned char *)ratingTag.ratingInfo, ratinginfoLen);
if (readed != ratinginfoLen) {
- debug_error ("read rating info string fail\n");
+ debug_error("read rating info string fail\n");
goto exception;
}
/* check BOM char */
- if ( (ratingTag.ratingInfo[0] == 0xFE) && (ratingTag.ratingInfo[1] == 0xFF)) {
+ if ((ratingTag.ratingInfo[0] == 0xFE) && (ratingTag.ratingInfo[1] == 0xFF)) {
/* this char is UTF-16 */
unsigned int bytes_written = 0;
- temp_text = mmfile_string_convert ((const char*)&ratingTag.ratingInfo[2], readed-2, "UTF-8", "UTF-16", NULL, (unsigned int*)&bytes_written);
+ temp_text = mmfile_string_convert((const char *)&ratingTag.ratingInfo[2], readed - 2, "UTF-8", "UTF-16", NULL, (unsigned int *)&bytes_written);
} else {
- temp_text = mmfile_strdup ((const char*)ratingTag.ratingInfo);
+ temp_text = mmfile_strdup((const char *)ratingTag.ratingInfo);
}
if (!formatContext->rating) {
formatContext->rating = temp_text;
} else {
- mmfile_free (temp_text);
+ mmfile_free(temp_text);
}
- mmfile_free (ratingTag.ratingInfo);
- mmfile_seek (fp, basic_header->start_offset + basic_header->size, SEEK_SET);
+ mmfile_free(ratingTag.ratingInfo);
+ mmfile_seek(fp, basic_header->start_offset + basic_header->size, SEEK_SET);
return MMFILE_UTIL_SUCCESS;
exception:
- mmfile_seek (fp, basic_header->start_offset + basic_header->size, SEEK_SET);
- mmfile_free (ratingTag.ratingInfo);
+ mmfile_seek(fp, basic_header->start_offset + basic_header->size, SEEK_SET);
+ mmfile_free(ratingTag.ratingInfo);
return MMFILE_UTIL_FAIL;
}
-static int GetClassficationFromClsfTagBox (MMFileFormatContext *formatContext, MMFileIOHandle *fp, MMFILE_MP4_BASIC_BOX_HEADER *basic_header)
+static int GetClassficationFromClsfTagBox(MMFileFormatContext *formatContext, MMFileIOHandle *fp, MMFILE_MP4_BASIC_BOX_HEADER *basic_header)
{
int classinfoLen = 0;
int readed = 0;
char *temp_text = NULL;
- MMFILE_3GP_CLASSIFICATION_TAGBOX classTag = {0,};
+ MMFILE_3GP_CLASSIFICATION_TAGBOX classTag = {0, };
if (!formatContext || !fp || !basic_header) {
- debug_error ("invalid param\n");
+ debug_error("invalid param\n");
return MMFILE_UTIL_FAIL;
}
- readed = mmfile_read (fp, (unsigned char *)&classTag, MMFILE_3GP_CLASS_TAGBOX_LEN);
+ readed = mmfile_read(fp, (unsigned char *)&classTag, MMFILE_3GP_CLASS_TAGBOX_LEN);
if (readed != MMFILE_3GP_CLASS_TAGBOX_LEN) {
- debug_error ("read classification tag header fail\n");
+ debug_error("read classification tag header fail\n");
goto exception;
}
classinfoLen = basic_header->size - MMFILE_MP4_BASIC_BOX_HEADER_LEN - MMFILE_3GP_CLASS_TAGBOX_LEN;
if (classinfoLen == 1) {
- debug_error ("Classification Text is NULL\n");
+ debug_error("Classification Text is NULL\n");
goto exception;
}
- classTag.classificationInfo = mmfile_malloc (classinfoLen);
+ classTag.classificationInfo = mmfile_malloc(classinfoLen);
if (!classTag.classificationInfo) {
- debug_error ("class info error\n");
+ debug_error("class info error\n");
goto exception;
}
- readed = mmfile_read (fp, (unsigned char *)classTag.classificationInfo, classinfoLen);
+ readed = mmfile_read(fp, (unsigned char *)classTag.classificationInfo, classinfoLen);
if (readed != classinfoLen) {
- debug_error ("read class info string fail\n");
+ debug_error("read class info string fail\n");
goto exception;
}
/* check BOM char */
- if ( (classTag.classificationInfo[0] == 0xFE) && (classTag.classificationInfo[1] == 0xFF)) {
+ if ((classTag.classificationInfo[0] == 0xFE) && (classTag.classificationInfo[1] == 0xFF)) {
/* this char is UTF-16 */
unsigned int bytes_written = 0;
- temp_text = mmfile_string_convert ((const char*)&classTag.classificationInfo[2], readed-2, "UTF-8", "UTF-16", NULL, (unsigned int*)&bytes_written);
+ temp_text = mmfile_string_convert((const char *)&classTag.classificationInfo[2], readed - 2, "UTF-8", "UTF-16", NULL, (unsigned int *)&bytes_written);
} else {
- temp_text = mmfile_strdup ((const char*)classTag.classificationInfo);
+ temp_text = mmfile_strdup((const char *)classTag.classificationInfo);
}
if (!formatContext->classification) {
formatContext->classification = temp_text;
} else {
- mmfile_free (temp_text);
+ mmfile_free(temp_text);
}
- mmfile_free (classTag.classificationInfo);
- mmfile_seek (fp, basic_header->start_offset + basic_header->size, SEEK_SET);
+ mmfile_free(classTag.classificationInfo);
+ mmfile_seek(fp, basic_header->start_offset + basic_header->size, SEEK_SET);
return MMFILE_UTIL_SUCCESS;
exception:
- mmfile_seek (fp, basic_header->start_offset + basic_header->size, SEEK_SET);
- mmfile_free (classTag.classificationInfo);
+ mmfile_seek(fp, basic_header->start_offset + basic_header->size, SEEK_SET);
+ mmfile_free(classTag.classificationInfo);
return MMFILE_UTIL_FAIL;
}
@@ -557,21 +554,21 @@ exception:
* information
* --------------------+-------------------+-----------------------------------+------
*/
-static int _get_char_position (unsigned char *src, char ch, int max)
+static int _get_char_position(unsigned char *src, char ch, int max)
{
int i;
for (i = 0; i < max; i++) {
- if ( *(src + i) == ch)
+ if (*(src + i) == ch)
return i;
}
return -1;
-}
-
-static int GetLocationFromLociTagBox (MMFileFormatContext *formatContext, MMFileIOHandle *fp, MMFILE_MP4_BASIC_BOX_HEADER *basic_header)
+}
+
+static int GetLocationFromLociTagBox(MMFileFormatContext *formatContext, MMFileIOHandle *fp, MMFILE_MP4_BASIC_BOX_HEADER *basic_header)
{
- MMFILE_3GP_LOCATION_TAGBOX lociTag = {0,};
+ MMFILE_3GP_LOCATION_TAGBOX lociTag = {0, };
int readed = 0;
int bufferLen = 0;
unsigned char *buffer = NULL;
@@ -586,43 +583,43 @@ static int GetLocationFromLociTagBox (MMFileFormatContext *formatContext, MMFile
if (!formatContext || !fp || !basic_header) {
- debug_error ("invalid param\n");
+ debug_error("invalid param\n");
return MMFILE_UTIL_FAIL;
}
- readed = mmfile_read (fp, (unsigned char *)&lociTag, 6); /*6 = version + flag + pad + language */
+ readed = mmfile_read(fp, (unsigned char *)&lociTag, 6); /*6 = version + flag + pad + language */
if (readed != 6) {
- debug_error ("read location tag header fail\n");
+ debug_error("read location tag header fail\n");
goto exception;
}
/*buffer len = name + role + ... + additional notes length */
bufferLen = basic_header->size - MMFILE_MP4_BASIC_BOX_HEADER_LEN - 6;
if (bufferLen < 1) {
- debug_error ("too small buffer\n");
+ debug_error("too small buffer\n");
goto exception;
}
- buffer = mmfile_malloc (bufferLen);
+ buffer = mmfile_malloc(bufferLen);
if (!buffer) {
- debug_error ("buffer malloc error\n");
+ debug_error("buffer malloc error\n");
goto exception;
}
- readed = mmfile_read (fp, (unsigned char *)buffer, bufferLen);
+ readed = mmfile_read(fp, (unsigned char *)buffer, bufferLen);
if (readed != bufferLen) {
- debug_error ("read location tag fail\n");
+ debug_error("read location tag fail\n");
goto exception;
}
p = buffer;
/*name*/
- pos = _get_char_position (p, '\0', readed - (1+4+4+4+2));
+ pos = _get_char_position(p, '\0', readed - (1 + 4 + 4 + 4 + 2));
if (pos >= 0) {
if (p[0] == 0xFE && p[1] == 0xFF) {
- lociTag.name = (unsigned char*)mmfile_string_convert ((const char*)(p + 2), pos - 2, "UTF-8", "UTF-16", NULL, (unsigned int*)&bytes_written);
+ lociTag.name = (unsigned char *)mmfile_string_convert((const char *)(p + 2), pos - 2, "UTF-8", "UTF-16", NULL, (unsigned int *)&bytes_written);
} else {
- lociTag.name = (unsigned char*)mmfile_strdup ((const char*)p);
+ lociTag.name = (unsigned char *)mmfile_strdup((const char *)p);
}
} else {
goto exception;
@@ -634,19 +631,19 @@ static int GetLocationFromLociTagBox (MMFileFormatContext *formatContext, MMFile
lociTag.role = *p;
p++;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("long: 0x%02X 0x%02X 0x%02X 0x%02X \n", *(p+0), *(p+1), *(p+2), *(p+3));
- debug_msg ("lati: 0x%02X 0x%02X 0x%02X 0x%02X \n", *(p+4), *(p+5), *(p+6), *(p+7));
- debug_msg ("alti: 0x%02X 0x%02X 0x%02X 0x%02X \n", *(p+8), *(p+9), *(p+10), *(p+11));
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("long: 0x%02X 0x%02X 0x%02X 0x%02X \n", *(p + 0), *(p + 1), *(p + 2), *(p + 3));
+ debug_msg("lati: 0x%02X 0x%02X 0x%02X 0x%02X \n", *(p + 4), *(p + 5), *(p + 6), *(p + 7));
+ debug_msg("alti: 0x%02X 0x%02X 0x%02X 0x%02X \n", *(p + 8), *(p + 9), *(p + 10), *(p + 11));
+#endif
- ilong = mmfile_io_be_uint32 (*(unsigned int*)p);
- ilati = mmfile_io_be_uint32 (*(unsigned int*)(p+4));
- ialti = mmfile_io_be_uint32 (*(unsigned int*)(p+8));
+ ilong = mmfile_io_be_uint32(*(unsigned int *)p);
+ ilati = mmfile_io_be_uint32(*(unsigned int *)(p + 4));
+ ialti = mmfile_io_be_uint32(*(unsigned int *)(p + 8));
- flong = (float)ilong / (1<<16);
- flati = (float)ilati / (1<<16);
- falti = (float)ialti / (1<<16);
+ flong = (float)ilong / (1 << 16);
+ flati = (float)ilati / (1 << 16);
+ falti = (float)ialti / (1 << 16);
/*longitude*/
lociTag.longitude = flong;
@@ -654,16 +651,16 @@ static int GetLocationFromLociTagBox (MMFileFormatContext *formatContext, MMFile
lociTag.latitude = flati;
/*altitude*/
lociTag.altitude = falti;
-
+
p += 12;
/*astronomical body*/
- pos = _get_char_position (p, '\0', readed - (name_sz+1+4+4+4+1));
+ pos = _get_char_position(p, '\0', readed - (name_sz + 1 + 4 + 4 + 4 + 1));
if (pos >= 0) {
if (p[0] == 0xFE && p[1] == 0xFF) {
- lociTag.astronomical_body = (unsigned char*)mmfile_string_convert ((const char*)(p + 2), pos - 2, "UTF-8", "UTF-16", NULL, (unsigned int*)&bytes_written);
+ lociTag.astronomical_body = (unsigned char *)mmfile_string_convert((const char *)(p + 2), pos - 2, "UTF-8", "UTF-16", NULL, (unsigned int *)&bytes_written);
} else {
- lociTag.astronomical_body = (unsigned char*)mmfile_strdup ((const char*)p);
+ lociTag.astronomical_body = (unsigned char *)mmfile_strdup((const char *)p);
}
} else {
goto exception;
@@ -672,63 +669,63 @@ static int GetLocationFromLociTagBox (MMFileFormatContext *formatContext, MMFile
p += (pos + 1);
/*additional notes*/
- pos = _get_char_position (p, '\0', readed - (name_sz+1+4+4+4+astro_sz));
+ pos = _get_char_position(p, '\0', readed - (name_sz + 1 + 4 + 4 + 4 + astro_sz));
if (pos >= 0) {
if (p[0] == 0xFE && p[1] == 0xFF) {
- lociTag.additional_notes = (unsigned char*)mmfile_string_convert ((const char*)(p + 2), pos - 2, "UTF-8", "UTF-16", NULL, (unsigned int*)&bytes_written);
+ lociTag.additional_notes = (unsigned char *)mmfile_string_convert((const char *)(p + 2), pos - 2, "UTF-8", "UTF-16", NULL, (unsigned int *)&bytes_written);
} else {
- lociTag.additional_notes = (unsigned char*)mmfile_strdup ((const char*)p);
+ lociTag.additional_notes = (unsigned char *)mmfile_strdup((const char *)p);
}
} else {
goto exception;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("** Location Information **\n");
- debug_msg ("Name : %s\n", lociTag.name);
- debug_msg ("Role : %d (0: shooting, 1: real, 2: fictional, other: reserved)\n", lociTag.role);
- debug_msg ("Longitude : %16.16f\n", lociTag.longitude);
- debug_msg ("Latitude : %16.16f\n", lociTag.latitude);
- debug_msg ("Altitude : %16.16f\n", lociTag.altitude);
- debug_msg ("Astronomical body: %s\n", lociTag.astronomical_body);
- debug_msg ("Additional notes : %s\n", lociTag.additional_notes);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("** Location Information **\n");
+ debug_msg("Name : %s\n", lociTag.name);
+ debug_msg("Role : %d (0: shooting, 1: real, 2: fictional, other: reserved)\n", lociTag.role);
+ debug_msg("Longitude : %16.16f\n", lociTag.longitude);
+ debug_msg("Latitude : %16.16f\n", lociTag.latitude);
+ debug_msg("Altitude : %16.16f\n", lociTag.altitude);
+ debug_msg("Astronomical body: %s\n", lociTag.astronomical_body);
+ debug_msg("Additional notes : %s\n", lociTag.additional_notes);
+#endif
formatContext->longitude = lociTag.longitude;
formatContext->latitude = lociTag.latitude;
formatContext->altitude = lociTag.altitude;
- mmfile_free (buffer);
- mmfile_free (lociTag.name);
- mmfile_free (lociTag.astronomical_body);
- mmfile_free (lociTag.additional_notes);
+ mmfile_free(buffer);
+ mmfile_free(lociTag.name);
+ mmfile_free(lociTag.astronomical_body);
+ mmfile_free(lociTag.additional_notes);
- mmfile_seek (fp, basic_header->start_offset + basic_header->size, SEEK_SET);
+ mmfile_seek(fp, basic_header->start_offset + basic_header->size, SEEK_SET);
return MMFILE_UTIL_SUCCESS;
-
+
exception:
- mmfile_seek (fp, basic_header->start_offset + basic_header->size, SEEK_SET);
- mmfile_free (buffer);
- mmfile_free (lociTag.name);
- mmfile_free (lociTag.astronomical_body);
- mmfile_free (lociTag.additional_notes);
+ mmfile_seek(fp, basic_header->start_offset + basic_header->size, SEEK_SET);
+ mmfile_free(buffer);
+ mmfile_free(lociTag.name);
+ mmfile_free(lociTag.astronomical_body);
+ mmfile_free(lociTag.additional_notes);
return MMFILE_UTIL_FAIL;
}
static int GetSAUTInfoFromSMTATagBox(MMFileFormatContext *formatContext, MMFileIOHandle *fp, MMFILE_MP4_BASIC_BOX_HEADER *basic_header)
{
- MMFILE_M4A_SMTA_TAGBOX smtaTag = {0,};
+ MMFILE_M4A_SMTA_TAGBOX smtaTag = {0, };
int readed = 0;
if (!formatContext || !fp || !basic_header) {
- debug_error ("invalid param\n");
+ debug_error("invalid param\n");
return MMFILE_UTIL_FAIL;
}
- readed = mmfile_read (fp, (unsigned char *)&smtaTag, sizeof(MMFILE_M4A_SMTA_TAGBOX));
+ readed = mmfile_read(fp, (unsigned char *)&smtaTag, sizeof(MMFILE_M4A_SMTA_TAGBOX));
if (readed != sizeof(MMFILE_M4A_SMTA_TAGBOX)) {
- debug_error ("read smta tag header fail\n");
+ debug_error("read smta tag header fail\n");
goto exception;
}
@@ -741,13 +738,13 @@ static int GetSAUTInfoFromSMTATagBox(MMFileFormatContext *formatContext, MMFileI
#endif
if (smtaTag.saut[0] == 's'
- && smtaTag.saut[1] == 'a'
- && smtaTag.saut[2] == 'u'
- && smtaTag.saut[3] == 't') {
+ && smtaTag.saut[1] == 'a'
+ && smtaTag.saut[2] == 'u'
+ && smtaTag.saut[3] == 't') {
if (smtaTag.value == 0x01) {
- #ifdef __MMFILE_TEST_MODE__
+#ifdef __MMFILE_TEST_MODE__
debug_msg("This has saut tag and valid value");
- #endif
+#endif
formatContext->smta = 1;
} else {
debug_error("This has saut tag and but invalid value");
@@ -761,7 +758,7 @@ static int GetSAUTInfoFromSMTATagBox(MMFileFormatContext *formatContext, MMFileI
return MMFILE_UTIL_SUCCESS;
exception:
- mmfile_seek (fp, basic_header->start_offset + basic_header->size, SEEK_SET);
+ mmfile_seek(fp, basic_header->start_offset + basic_header->size, SEEK_SET);
return MMFILE_UTIL_FAIL;
}
@@ -772,13 +769,13 @@ static int GetValueFromCDISTagBox(MMFileFormatContext *formatContext, MMFileIOHa
int readed = 0;
if (!formatContext || !fp || !basic_header) {
- debug_error ("invalid param\n");
+ debug_error("invalid param\n");
return MMFILE_UTIL_FAIL;
}
- readed = mmfile_read (fp, (unsigned char *)&value, sizeof(unsigned int));
+ readed = mmfile_read(fp, (unsigned char *)&value, sizeof(unsigned int));
if (readed != sizeof(unsigned int)) {
- debug_error ("read cdis tag header fail\n");
+ debug_error("read cdis tag header fail\n");
goto exception;
}
@@ -789,9 +786,9 @@ static int GetValueFromCDISTagBox(MMFileFormatContext *formatContext, MMFileIOHa
#endif
if (value == 0x01) {
- #ifdef __MMFILE_TEST_MODE__
+#ifdef __MMFILE_TEST_MODE__
debug_msg("This has cdis tag and valid value");
- #endif
+#endif
formatContext->cdis = 1;
} else {
debug_error("This has cdis tag and but invalid value");
@@ -801,115 +798,115 @@ static int GetValueFromCDISTagBox(MMFileFormatContext *formatContext, MMFileIOHa
return MMFILE_UTIL_SUCCESS;
exception:
- mmfile_seek (fp, basic_header->start_offset + basic_header->size, SEEK_SET);
+ mmfile_seek(fp, basic_header->start_offset + basic_header->size, SEEK_SET);
return MMFILE_UTIL_FAIL;
}
-static int GetTagFromMetaBox (MMFileFormatContext *formatContext, MMFileIOHandle *fp, MMFILE_MP4_BASIC_BOX_HEADER *basic_header)
+static int GetTagFromMetaBox(MMFileFormatContext *formatContext, MMFileIOHandle *fp, MMFILE_MP4_BASIC_BOX_HEADER *basic_header)
{
int readed = 0;
- MMFILE_MP4_BASIC_BOX_HEADER hdlrBoxHeader = {0,};
- MMFILE_MP4_BASIC_BOX_HEADER id3v2BoxHeader = {0,};
- MMFILE_3GP_ID3V2_BOX id3v2Box = {0,};
- AvFileContentInfo tagInfo = {0,};
+ MMFILE_MP4_BASIC_BOX_HEADER hdlrBoxHeader = {0, };
+ MMFILE_MP4_BASIC_BOX_HEADER id3v2BoxHeader = {0, };
+ MMFILE_3GP_ID3V2_BOX id3v2Box = {0, };
+ AvFileContentInfo tagInfo = {0, };
unsigned char tagVersion = 0;
bool versionCheck = false;
int id3v2Len = 0;
unsigned int meta_version = 0;
- MMFILE_3GP_HANDLER_BOX hdlrBox = {0,};
- int encSize = 0;
+ MMFILE_3GP_HANDLER_BOX hdlrBox = {0, };
+ unsigned int encSize = 0;
int id3_meta = 0;
#ifdef ENABLE_ITUNES_META /* We don't support itunes meta now. so this is not defined yet */
int iTunes_meta = 0;
#endif
/* meta box */
- readed = mmfile_read (fp, (unsigned char *)&meta_version, 4);
+ readed = mmfile_read(fp, (unsigned char *)&meta_version, 4);
if (readed != 4) {
- debug_error ("read meta box version\n");
+ debug_error("read meta box version\n");
goto exception;
}
/* hdlr box */
- readed = mmfile_read (fp, (unsigned char *)&hdlrBoxHeader, MMFILE_MP4_BASIC_BOX_HEADER_LEN);
+ readed = mmfile_read(fp, (unsigned char *)&hdlrBoxHeader, MMFILE_MP4_BASIC_BOX_HEADER_LEN);
if (readed != MMFILE_MP4_BASIC_BOX_HEADER_LEN) {
- debug_error ("read hdlr box header\n");
+ debug_error("read hdlr box header\n");
goto exception;
}
- if (hdlrBoxHeader.type != FOURCC ('h', 'd', 'l', 'r')) {
- debug_warning ("meta type is not hdlr\n");
+ if (hdlrBoxHeader.type != FOURCC('h', 'd', 'l', 'r')) {
+ debug_warning("meta type is not hdlr\n");
goto exception;
}
- hdlrBoxHeader.size = mmfile_io_be_uint32 (hdlrBoxHeader.size);
- hdlrBoxHeader.type = mmfile_io_le_uint32 (hdlrBoxHeader.type);
+ hdlrBoxHeader.size = mmfile_io_be_uint32(hdlrBoxHeader.size);
+ hdlrBoxHeader.type = mmfile_io_le_uint32(hdlrBoxHeader.type);
- readed = mmfile_read (fp, (unsigned char *)&hdlrBox, MMFILE_3GP_HANDLER_BOX_LEN);
+ readed = mmfile_read(fp, (unsigned char *)&hdlrBox, MMFILE_3GP_HANDLER_BOX_LEN);
if (readed != MMFILE_3GP_HANDLER_BOX_LEN) {
- debug_error ("read hdlr box\n");
+ debug_error("read hdlr box\n");
goto exception;
}
- hdlrBox.handler_type = mmfile_io_le_uint32 (hdlrBox.handler_type);
+ hdlrBox.handler_type = mmfile_io_le_uint32(hdlrBox.handler_type);
/**
* check tag type (ID3v2 or iTunes)
*/
- if (hdlrBox.handler_type == FOURCC ('I', 'D', '3', '2')) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("ID3v2 tag detected.\n");
- #endif
+ if (hdlrBox.handler_type == FOURCC('I', 'D', '3', '2')) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("ID3v2 tag detected.\n");
+#endif
id3_meta = 1;
#ifdef ENABLE_ITUNES_META
iTunes_meta = 0;
#endif
- } else if (hdlrBox.handler_type == FOURCC ('m', 'd', 'i', 'r') &&
- mmfile_io_le_uint32 (hdlrBox.reserved[0]) == FOURCC ('a', 'p', 'p', 'l')) {
+ } else if (hdlrBox.handler_type == FOURCC('m', 'd', 'i', 'r') &&
+ mmfile_io_le_uint32(hdlrBox.reserved[0]) == FOURCC('a', 'p', 'p', 'l')) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("Apple iTunes tag detected by mdir.\n");
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Apple iTunes tag detected by mdir.\n");
+#endif
#ifdef ENABLE_ITUNES_META
iTunes_meta = 1;
#endif
} else {
- debug_warning ("unknown meta type. 4CC:[%c%c%c%c]\n", ((char*)&hdlrBox.handler_type)[0],
- ((char*)&hdlrBox.handler_type)[1],
- ((char*)&hdlrBox.handler_type)[2],
- ((char*)&hdlrBox.handler_type)[3]);
- //goto exception;
+ debug_warning("unknown meta type. 4CC:[%c%c%c%c]\n", ((char *)&hdlrBox.handler_type)[0],
+ ((char *)&hdlrBox.handler_type)[1],
+ ((char *)&hdlrBox.handler_type)[2],
+ ((char *)&hdlrBox.handler_type)[3]);
+ /*goto exception; */
}
#ifdef ENABLE_ITUNES_META
- if(!id3_meta && !iTunes_meta) {
+ if (!id3_meta && !iTunes_meta) {
/*Check ilst.
APPLE meta data for iTunes reader = 'mdir.' so if handler type is 'mdir', this content may has itunes meta.
most of contents has 'mdir' + 'appl'. but some contents just has 'mdir'
but 'ilst' is meta for iTunes. so find 'ilst' is more correct to check if this contents has iTunes meta or not.*/
- char *ilst_box = "ilst";
+ const char *ilst_box = "ilst";
int buf_size = strlen(ilst_box);
- unsigned char read_buf[buf_size+1];
- memset(read_buf, 0x00, buf_size+1);
+ unsigned char read_buf[buf_size + 1];
+ memset(read_buf, 0x00, buf_size + 1);
/* skip hdlr box */
- mmfile_seek (fp, hdlrBoxHeader.size - MMFILE_MP4_BASIC_BOX_HEADER_LEN - MMFILE_3GP_HANDLER_BOX_LEN +4, SEEK_CUR); //+4 is hdlr size field
+ mmfile_seek(fp, hdlrBoxHeader.size - MMFILE_MP4_BASIC_BOX_HEADER_LEN - MMFILE_3GP_HANDLER_BOX_LEN + 4, SEEK_CUR); /*+4 is hdlr size field */
- readed = mmfile_read (fp, read_buf, buf_size); // to find 'ilst'
+ readed = mmfile_read(fp, read_buf, buf_size); /* to find 'ilst' */
if (readed != buf_size) {
- debug_error ("read fail [%d]\n", readed);
+ debug_error("read fail [%d]\n", readed);
goto exception;
}
- if(read_buf[0] == 'i' && read_buf[1] == 'l' && read_buf[2] == 's' && read_buf[3] == 't') {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("Apple iTunes tag detected by ilst.\n");
- #endif
+ if (read_buf[0] == 'i' && read_buf[1] == 'l' && read_buf[2] == 's' && read_buf[3] == 't') {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Apple iTunes tag detected by ilst.\n");
+#endif
iTunes_meta = 1;
}
@@ -936,51 +933,51 @@ static int GetTagFromMetaBox (MMFileFormatContext *formatContext, MMFileIOHandle
unsigned char read_buf[_ITUNES_READ_BUF_SZ];
int i = 0;
int cover_sz = 0, cover_type = 0, cover_found = 0;
- int track_num = 0, track_found = 0;
- int genre_index = 0, genre_found = 0;
- int artist_sz = 0, artist_found = 0;
+ /* int track_found = 0; */ /* , track_num = 0; */
+ /* int genre_found = 0; */ /* , genre_index = 0; */
+ /* int artist_found = 0; */ /* , artist_sz = 0; */
int limit = basic_header->size - hdlrBoxHeader.size;
- long long cover_offset = 0, track_offset =0 , genre_offset = 0, artist_offset = 0;
+ long long cover_offset = 0; /*, track_offset =0, genre_offset = 0, artist_offset = 0; */
-// for (i = 0, cover_found = 0, track_found = 0, genre_found = 0, artist_found = 0; i < limit && (cover_found == 0 || track_found == 0 || genre_found == 0 || artist_found == 0) ; i++) {
+ /* for (i = 0, cover_found = 0, track_found = 0, genre_found = 0, artist_found = 0; i < limit && (cover_found == 0 || track_found == 0 || genre_found == 0 || artist_found == 0) ; i++) { */
for (i = 0; (i < limit) && (cover_found == 0) ; i++) {
- readed = mmfile_read (fp, read_buf, _ITUNES_READ_BUF_SZ);
+ readed = mmfile_read(fp, read_buf, _ITUNES_READ_BUF_SZ);
if (readed != _ITUNES_READ_BUF_SZ)
goto exception;
-/*ffmpeg extract artist, tracknum, genre and cover image. see mov_read_udta_string().
-but ffmpeg does not support strange cover image.
-only support covr type 0xd(JPEG), 0xe(PNG), 0x1b(BMP). but we support other type*/
+ /*ffmpeg extract artist, tracknum, genre and cover image. see mov_read_udta_string().
+ but ffmpeg does not support strange cover image.
+ only support covr type 0xd(JPEG), 0xe(PNG), 0x1b(BMP). but we support other type*/
#if 0
/**
* Artist : Added 2010.10.28
*/
if (artist_found == 0 &&
- read_buf[0] == 0xa9 && read_buf[1] == 'A' && read_buf[2] == 'R' && read_buf[3] == 'T' &&
- read_buf[8] == 'd' && read_buf[9] == 'a' && read_buf[10] == 't' && read_buf[11] == 'a') {
+ read_buf[0] == 0xa9 && read_buf[1] == 'A' && read_buf[2] == 'R' && read_buf[3] == 'T' &&
+ read_buf[8] == 'd' && read_buf[9] == 'a' && read_buf[10] == 't' && read_buf[11] == 'a') {
artist_found = 1;
- artist_offset = mmfile_tell (fp);
- artist_sz = mmfile_io_be_uint32 (*(int*)(read_buf + 4)) - 16; /* atom len(4)+data(4)+atom verion(1)+flag(3)+null(4) = 16 */
+ artist_offset = mmfile_tell(fp);
+ artist_sz = mmfile_io_be_uint32(*(int *)(read_buf + 4)) - 16; /* atom len(4)+data(4)+atom verion(1)+flag(3)+null(4) = 16 */
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("----------------------------------- artist found, offset=[%lld], size=[%d]\n", artist_offset, artist_sz);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("----------------------------------- artist found, offset=[%lld], size=[%d]\n", artist_offset, artist_sz);
+#endif
}
/**
* Track number
*/
if (track_found == 0 &&
- read_buf[0] == 't' && read_buf[1] == 'r' && read_buf[2] == 'k' && read_buf[3] == 'n' &&
- read_buf[8] == 'd' && read_buf[9] == 'a' && read_buf[10] == 't' && read_buf[11] == 'a') {
+ read_buf[0] == 't' && read_buf[1] == 'r' && read_buf[2] == 'k' && read_buf[3] == 'n' &&
+ read_buf[8] == 'd' && read_buf[9] == 'a' && read_buf[10] == 't' && read_buf[11] == 'a') {
track_found = 1;
- track_offset = mmfile_tell (fp);
+ track_offset = mmfile_tell(fp);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("----------------------------------- Track found, offset=[%lld]\n", track_offset);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("----------------------------------- Track found, offset=[%lld]\n", track_offset);
+#endif
}
/**
@@ -988,15 +985,15 @@ only support covr type 0xd(JPEG), 0xe(PNG), 0x1b(BMP). but we support other type
*/
/*ffmpeg extract genre but only (0xa9,'g','e','n'). see mov_read_udta_string()*/
if (genre_found == 0 &&
- read_buf[0] == 'g' && read_buf[1] == 'n' && read_buf[2] == 'r' && read_buf[3] == 'e' &&
- read_buf[8] == 'd' && read_buf[9] == 'a' && read_buf[10] == 't' && read_buf[11] == 'a') {
+ read_buf[0] == 'g' && read_buf[1] == 'n' && read_buf[2] == 'r' && read_buf[3] == 'e' &&
+ read_buf[8] == 'd' && read_buf[9] == 'a' && read_buf[10] == 't' && read_buf[11] == 'a') {
genre_found = 1;
- genre_offset = mmfile_tell (fp);
+ genre_offset = mmfile_tell(fp);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("----------------------------------- genre found, offset=[%lld]\n", genre_offset);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("----------------------------------- genre found, offset=[%lld]\n", genre_offset);
+#endif
}
#endif
@@ -1005,457 +1002,443 @@ only support covr type 0xd(JPEG), 0xe(PNG), 0x1b(BMP). but we support other type
*/
if (cover_found == 0 &&
- read_buf[0] == 'c' && read_buf[1] == 'o' && read_buf[2] == 'v' && read_buf[3] == 'r' &&
- read_buf[8] == 'd' && read_buf[9] == 'a' && read_buf[10] == 't' && read_buf[11] == 'a') {
+ read_buf[0] == 'c' && read_buf[1] == 'o' && read_buf[2] == 'v' && read_buf[3] == 'r' &&
+ read_buf[8] == 'd' && read_buf[9] == 'a' && read_buf[10] == 't' && read_buf[11] == 'a') {
cover_found = 1;
- cover_sz = mmfile_io_be_uint32 (*(int*)(read_buf + 4)) - 12;
- cover_type = mmfile_io_be_uint32 (*(int*)(read_buf + 12));
+ cover_sz = mmfile_io_be_uint32(*(int *)(read_buf + 4)) - 12;
+ cover_type = mmfile_io_be_uint32(*(int *)(read_buf + 12));
- cover_offset = mmfile_tell (fp);
+ cover_offset = mmfile_tell(fp);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("----------------------------------- cover_found found, offset=[%lld]\n", cover_offset);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("----------------------------------- cover_found found, offset=[%lld]\n", cover_offset);
+#endif
}
- mmfile_seek (fp, -(_ITUNES_READ_BUF_SZ - 1), SEEK_CUR); /*FIXME: poor search*/
+ mmfile_seek(fp, -(_ITUNES_READ_BUF_SZ - 1), SEEK_CUR); /*FIXME: poor search*/
} /*loop*/
-/*ffmpeg extract artist, tracknum, excep cover image. see mov_read_udta_string()*/
+ /*ffmpeg extract artist, tracknum, excep cover image. see mov_read_udta_string()*/
#if 0
if (artist_found) {
if (artist_sz > 0) {
- mmfile_seek (fp, artist_offset, SEEK_SET);
+ mmfile_seek(fp, artist_offset, SEEK_SET);
if (formatContext->artist) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("----------------------------------- previous artist was [%s] \n", formatContext->artist);
- #endif
- free (formatContext->artist);
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("----------------------------------- previous artist was [%s] \n", formatContext->artist);
+#endif
+ free(formatContext->artist);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("----------------------------------- new artist will be allocated with size (len+1) [%d] \n", artist_sz+1);
- #endif
- formatContext->artist = mmfile_malloc (artist_sz+1);
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("----------------------------------- new artist will be allocated with size (len+1) [%d] \n", artist_sz + 1);
+#endif
+ formatContext->artist = mmfile_malloc(artist_sz + 1);
if (formatContext->artist) {
- readed = mmfile_read (fp, (unsigned char*)formatContext->artist, artist_sz);
+ readed = mmfile_read(fp, (unsigned char *)formatContext->artist, artist_sz);
formatContext->artist[artist_sz] = '\0';
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("----------------------------------- new artist is [%s] \n", formatContext->artist);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("----------------------------------- new artist is [%s] \n", formatContext->artist);
+#endif
if (readed != artist_sz) {
- debug_error ("failed to read. ret = %d, in = %d\n", readed, artist_sz);
- mmfile_free (formatContext->artist);
+ debug_error("failed to read. ret = %d, in = %d\n", readed, artist_sz);
+ mmfile_free(formatContext->artist);
}
}
}
}
if (track_found) {
- mmfile_seek (fp, track_offset, SEEK_SET);
- readed = mmfile_read (fp, read_buf, _ITUNES_TRACK_NUM_SZ);
+ mmfile_seek(fp, track_offset, SEEK_SET);
+ readed = mmfile_read(fp, read_buf, _ITUNES_TRACK_NUM_SZ);
if (readed != _ITUNES_TRACK_NUM_SZ) {
- debug_error ("failed to read. ret = %d, in = %d\n", readed, _ITUNES_TRACK_NUM_SZ);
+ debug_error("failed to read. ret = %d, in = %d\n", readed, _ITUNES_TRACK_NUM_SZ);
} else {
- track_num = mmfile_io_be_uint32 (*(int*)read_buf);
+ track_num = mmfile_io_be_uint32(*(int *)read_buf);
if (!formatContext->tagTrackNum) {
- memset (read_buf, 0x00, _ITUNES_READ_BUF_SZ);
- snprintf ((char*)read_buf, sizeof(read_buf), "%d", track_num);
- formatContext->tagTrackNum = mmfile_strdup ((const char*)read_buf);
+ memset(read_buf, 0x00, _ITUNES_READ_BUF_SZ);
+ snprintf((char *)read_buf, sizeof(read_buf), "%d", track_num);
+ formatContext->tagTrackNum = mmfile_strdup((const char *)read_buf);
}
}
}
if (genre_found) {
- mmfile_seek (fp, genre_offset, SEEK_SET);
- readed = mmfile_read (fp, read_buf, _ITUNES_GENRE_NUM_SZ);
+ mmfile_seek(fp, genre_offset, SEEK_SET);
+ readed = mmfile_read(fp, read_buf, _ITUNES_GENRE_NUM_SZ);
if (readed != _ITUNES_GENRE_NUM_SZ) {
- debug_error ("failed to read. ret = %d, in = %d\n", readed, _ITUNES_GENRE_NUM_SZ);
+ debug_error("failed to read. ret = %d, in = %d\n", readed, _ITUNES_GENRE_NUM_SZ);
} else {
- genre_index = mmfile_io_be_uint16 (*(int*)read_buf);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("genre index=[%d] \n", genre_index);
- #endif
+ genre_index = mmfile_io_be_uint16(*(int *)read_buf);
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("genre index=[%d] \n", genre_index);
+#endif
if (genre_index > 0 && genre_index < GENRE_COUNT) {
if (!formatContext->genre) {
- memset (read_buf, 0x00, _ITUNES_READ_BUF_SZ);
- snprintf ((char*)read_buf, sizeof(read_buf),"%s", MpegAudio_Genre[genre_index-1]);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("genre string=[%s] \n", read_buf);
- #endif
- formatContext->genre = mmfile_strdup ((const char*)read_buf);
+ memset(read_buf, 0x00, _ITUNES_READ_BUF_SZ);
+ snprintf((char *)read_buf, sizeof(read_buf), "%s", MpegAudio_Genre[genre_index - 1]);
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("genre string=[%s] \n", read_buf);
+#endif
+ formatContext->genre = mmfile_strdup((const char *)read_buf);
}
}
}
}
#endif
-/*
- 1) below spec is in "iTunes Package Asset Specification 4.3" published by apple.
- Music Cover Art Image Profile
- - TIFF with ".tif" extension (32-bit uncompressed), JPEG with ".jpg" extension (quality unconstrained), or PNG with ".png" extension
- - RGB (screen standard)
- - Minimum size of 600 x 600 pixels
- - Images must be at least 72 dpi
-
- 2)I found below info from google.
- cover image flag : JPEG (13, 0xd), PNG (14, 0xe)
-
- 3)So, FIXME when cover image format is tif!
-*/
+ /*
+ 1) below spec is in "iTunes Package Asset Specification 4.3" published by apple.
+ Music Cover Art Image Profile
+ - TIFF with ".tif" extension (32-bit uncompressed), JPEG with ".jpg" extension (quality unconstrained), or PNG with ".png" extension
+ - RGB (screen standard)
+ - Minimum size of 600 x 600 pixels
+ - Images must be at least 72 dpi
+
+ 2)I found below info from google.
+ cover image flag : JPEG (13, 0xd), PNG (14, 0xe)
+
+ 3)So, FIXME when cover image format is tif!
+ */
if (cover_found) {
if (cover_sz > 0) {
- mmfile_seek (fp, cover_offset, SEEK_SET);
+ mmfile_seek(fp, cover_offset, SEEK_SET);
- formatContext->artwork = mmfile_malloc (cover_sz);
+ formatContext->artwork = mmfile_malloc(cover_sz);
formatContext->artworkSize = cover_sz;
- if(cover_type == _ITUNES_COVER_TYPE_JPEG) {
+ if (cover_type == _ITUNES_COVER_TYPE_JPEG) {
formatContext->artworkMime = mmfile_strdup("image/jpeg");
- } else if(cover_type == _ITUNES_COVER_TYPE_PNG) {
+ } else if (cover_type == _ITUNES_COVER_TYPE_PNG) {
formatContext->artworkMime = mmfile_strdup("image/png");
- /*} else if(cover_type == _ITUNES_COVER_TYPE_TIF) {
- formatContext->artworkMime = mmfile_strdup("image/tif");*/
+ /*} else if(cover_type == _ITUNES_COVER_TYPE_TIF) {
+ formatContext->artworkMime = mmfile_strdup("image/tif");*/
} else {
debug_warning("Not proper cover image type, but set to jpeg. cover_type[%d]", cover_type);
formatContext->artworkMime = mmfile_strdup("image/jpeg");
}
if (formatContext->artwork) {
- readed = mmfile_read (fp, formatContext->artwork, cover_sz);
+ readed = mmfile_read(fp, formatContext->artwork, cover_sz);
if (readed != cover_sz) {
- debug_error ("failed to read. ret = %d, in = %d\n", readed, cover_sz);
- mmfile_free (formatContext->artwork);
+ debug_error("failed to read. ret = %d, in = %d\n", readed, cover_sz);
+ mmfile_free(formatContext->artwork);
formatContext->artworkSize = 0;
- mmfile_free (formatContext->artworkMime);
+ mmfile_free(formatContext->artworkMime);
}
}
}
}
/*reset seek position*/
- mmfile_seek (fp, basic_header->start_offset + basic_header->size, SEEK_SET);
+ mmfile_seek(fp, basic_header->start_offset + basic_header->size, SEEK_SET);
return MMFILE_UTIL_SUCCESS;
} else
#endif
- if(id3_meta) {
- /**
- * ID3v2
- */
- /* skip hdlr box name */
- mmfile_seek (fp, hdlrBoxHeader.size - MMFILE_MP4_BASIC_BOX_HEADER_LEN - MMFILE_3GP_HANDLER_BOX_LEN, SEEK_CUR);
-
- /* id3 tag box */
- readed = mmfile_read (fp, (unsigned char *)&id3v2BoxHeader, MMFILE_MP4_BASIC_BOX_HEADER_LEN);
- if (readed != MMFILE_MP4_BASIC_BOX_HEADER_LEN)
- {
- debug_error ("read id3v2 box header\n");
- goto exception;
- }
-
- id3v2BoxHeader.size = mmfile_io_be_uint32 (id3v2BoxHeader.size);
- id3v2BoxHeader.type = mmfile_io_le_uint32 (id3v2BoxHeader.type);
-
- if (id3v2BoxHeader.type != FOURCC ('I', 'D', '3', '2'))
- {
- debug_warning ("meta type is not id3v2\n");
- goto exception;
- }
+ if (id3_meta) {
+ /**
+ * ID3v2
+ */
+ /* skip hdlr box name */
+ mmfile_seek(fp, hdlrBoxHeader.size - MMFILE_MP4_BASIC_BOX_HEADER_LEN - MMFILE_3GP_HANDLER_BOX_LEN, SEEK_CUR);
- readed = mmfile_read (fp, (unsigned char *)&id3v2Box, MMFILE_3GP_ID3V2_BOX_LEN);
- if (readed != MMFILE_3GP_ID3V2_BOX_LEN)
- {
- debug_error ("read id3v2 box\n");
- goto exception;
- }
+ /* id3 tag box */
+ readed = mmfile_read(fp, (unsigned char *)&id3v2BoxHeader, MMFILE_MP4_BASIC_BOX_HEADER_LEN);
+ if (readed != MMFILE_MP4_BASIC_BOX_HEADER_LEN) {
+ debug_error("read id3v2 box header\n");
+ goto exception;
+ }
- id3v2Len = id3v2BoxHeader.size - MMFILE_MP4_BASIC_BOX_HEADER_LEN - MMFILE_3GP_ID3V2_BOX_LEN;
+ id3v2BoxHeader.size = mmfile_io_be_uint32(id3v2BoxHeader.size);
+ id3v2BoxHeader.type = mmfile_io_le_uint32(id3v2BoxHeader.type);
- id3v2Box.id3v2Data = mmfile_malloc (id3v2Len);
- if (!id3v2Box.id3v2Data)
- {
- debug_error ("malloc id3tag data error\n");
- goto exception;
- }
+ if (id3v2BoxHeader.type != FOURCC('I', 'D', '3', '2')) {
+ debug_warning("meta type is not id3v2\n");
+ goto exception;
+ }
- readed = mmfile_read (fp, (unsigned char *)id3v2Box.id3v2Data, id3v2Len);
- if (readed != id3v2Len)
- {
- debug_error ("read id3tag data error\n");
- goto exception;
- }
+ readed = mmfile_read(fp, (unsigned char *)&id3v2Box, MMFILE_3GP_ID3V2_BOX_LEN);
+ if (readed != MMFILE_3GP_ID3V2_BOX_LEN) {
+ debug_error("read id3v2 box\n");
+ goto exception;
+ }
- /* check id3v2 */
- if (!IS_ID3V2_TAG(id3v2Box.id3v2Data))
- {
- debug_error ("it is not id3tag\n");
- goto exception;
- }
+ id3v2Len = id3v2BoxHeader.size - MMFILE_MP4_BASIC_BOX_HEADER_LEN - MMFILE_3GP_ID3V2_BOX_LEN;
- if (id3v2Box.id3v2Data[3] == 0xFF || id3v2Box.id3v2Data[4] == 0xFF ||
- id3v2Box.id3v2Data[6] >= 0x80 || id3v2Box.id3v2Data[7] >= 0x80 ||
- id3v2Box.id3v2Data[8] >= 0x80 || id3v2Box.id3v2Data[9] >= 0x80)
- {
- debug_error ("it is not valid id3tag\n");
- goto exception;
- }
+ id3v2Box.id3v2Data = mmfile_malloc(id3v2Len);
+ if (!id3v2Box.id3v2Data) {
+ debug_error("malloc id3tag data error\n");
+ goto exception;
+ }
- tagVersion = id3v2Box.id3v2Data[3];
- if ( tagVersion > 4)
- {
- debug_error ("tag vesion is too high\n");
- goto exception;
- }
+ readed = mmfile_read(fp, (unsigned char *)id3v2Box.id3v2Data, id3v2Len);
+ if (readed != id3v2Len) {
+ debug_error("read id3tag data error\n");
+ goto exception;
+ }
- encSize = mmfile_io_le_uint32(&id3v2Box.id3v2Data[6]);
- tagInfo.tagV2Info.tagLen = MP3_TAGv2_HEADER_LEN;
- tagInfo.tagV2Info.tagLen += (((encSize & 0x0000007F) >> 0) | ((encSize & 0x00007F00) >> 1) | ((encSize & 0x007F0000) >> 2) | ((encSize & 0x7F000000) >> 3));
- tagInfo.tagV2Info.tagVersion = tagVersion;
- tagInfo.fileLen = id3v2Len;
-
- /* set id3v2 data to formatContext */
- switch (tagVersion)
- {
- case 2:
- {
- versionCheck = mm_file_id3tag_parse_v222(&tagInfo, id3v2Box.id3v2Data);
- break;
+ /* check id3v2 */
+ if (!IS_ID3V2_TAG(id3v2Box.id3v2Data)) {
+ debug_error("it is not id3tag\n");
+ goto exception;
}
- case 3:
- {
- versionCheck = mm_file_id3tag_parse_v223(&tagInfo, id3v2Box.id3v2Data);
- break;
+
+ if (id3v2Box.id3v2Data[3] == 0xFF || id3v2Box.id3v2Data[4] == 0xFF ||
+ id3v2Box.id3v2Data[6] >= 0x80 || id3v2Box.id3v2Data[7] >= 0x80 ||
+ id3v2Box.id3v2Data[8] >= 0x80 || id3v2Box.id3v2Data[9] >= 0x80) {
+ debug_error("it is not valid id3tag\n");
+ goto exception;
}
- case 4:
- {
- versionCheck = mm_file_id3tag_parse_v224(&tagInfo, id3v2Box.id3v2Data);
- break;
+
+ tagVersion = id3v2Box.id3v2Data[3];
+ if (tagVersion > 4) {
+ debug_error("tag vesion is too high\n");
+ goto exception;
}
- case 1:
- default:
- {
- debug_error ("tag vesion is not support\n");
- versionCheck = false;
- break;
+
+ encSize = mmfile_io_le_uint32((unsigned int)&id3v2Box.id3v2Data[6]);
+ tagInfo.tagV2Info.tagLen = MP3_TAGv2_HEADER_LEN;
+ tagInfo.tagV2Info.tagLen += (((encSize & 0x0000007F) >> 0) | ((encSize & 0x00007F00) >> 1) | ((encSize & 0x007F0000) >> 2) | ((encSize & 0x7F000000) >> 3));
+ tagInfo.tagV2Info.tagVersion = tagVersion;
+ tagInfo.fileLen = id3v2Len;
+
+ /* set id3v2 data to formatContext */
+ switch (tagVersion) {
+ case 2: {
+ versionCheck = mm_file_id3tag_parse_v222(&tagInfo, id3v2Box.id3v2Data);
+ break;
+ }
+ case 3: {
+ versionCheck = mm_file_id3tag_parse_v223(&tagInfo, id3v2Box.id3v2Data);
+ break;
+ }
+ case 4: {
+ versionCheck = mm_file_id3tag_parse_v224(&tagInfo, id3v2Box.id3v2Data);
+ break;
+ }
+ case 1:
+ default: {
+ debug_error("tag vesion is not support\n");
+ versionCheck = false;
+ break;
+ }
}
- }
- if (versionCheck == false)
- {
- debug_error ("tag parsing is fail\n");
- goto exception;
- }
+ if (versionCheck == false) {
+ debug_error("tag parsing is fail\n");
+ goto exception;
+ }
- if (!formatContext->title) formatContext->title = mmfile_strdup((const char*)tagInfo.pTitle);
- if (!formatContext->artist) formatContext->artist = mmfile_strdup((const char*)tagInfo.pArtist);
- if (!formatContext->author) formatContext->author = mmfile_strdup((const char*)tagInfo.pAuthor);
- if (!formatContext->copyright) formatContext->copyright = mmfile_strdup((const char*)tagInfo.pCopyright);
- if (!formatContext->comment) formatContext->comment = mmfile_strdup((const char*)tagInfo.pComment);
- if (!formatContext->album) formatContext->album = mmfile_strdup((const char*)tagInfo.pAlbum);
- if (!formatContext->album_artist) formatContext->album_artist = mmfile_strdup((const char*)tagInfo.pAlbum_Artist);
- if (!formatContext->year) formatContext->year = mmfile_strdup((const char*)tagInfo.pYear);
- if (!formatContext->genre) formatContext->genre = mmfile_strdup((const char*)tagInfo.pGenre);
- if (!formatContext->tagTrackNum) formatContext->tagTrackNum = mmfile_strdup((const char*)tagInfo.pTrackNum);
- if (!formatContext->composer) formatContext->composer = mmfile_strdup((const char*)tagInfo.pComposer);
- if (!formatContext->classification) formatContext->classification = mmfile_strdup((const char*)tagInfo.pContentGroup);
- if (!formatContext->conductor) formatContext->conductor = mmfile_strdup((const char*)tagInfo.pConductor);
-
- formatContext->artwork = mmfile_malloc (tagInfo.imageInfo.imageLen);
- if ((tagInfo.imageInfo.imageLen > 0) && formatContext->artwork)
- {
- formatContext->artworkSize = tagInfo.imageInfo.imageLen;
- memcpy (formatContext->artwork, tagInfo.imageInfo.pImageBuf, tagInfo.imageInfo.imageLen);
- }
+ if (!formatContext->title) formatContext->title = mmfile_strdup((const char *)tagInfo.pTitle);
+ if (!formatContext->artist) formatContext->artist = mmfile_strdup((const char *)tagInfo.pArtist);
+ if (!formatContext->author) formatContext->author = mmfile_strdup((const char *)tagInfo.pAuthor);
+ if (!formatContext->copyright) formatContext->copyright = mmfile_strdup((const char *)tagInfo.pCopyright);
+ if (!formatContext->comment) formatContext->comment = mmfile_strdup((const char *)tagInfo.pComment);
+ if (!formatContext->album) formatContext->album = mmfile_strdup((const char *)tagInfo.pAlbum);
+ if (!formatContext->album_artist) formatContext->album_artist = mmfile_strdup((const char *)tagInfo.pAlbum_Artist);
+ if (!formatContext->year) formatContext->year = mmfile_strdup((const char *)tagInfo.pYear);
+ if (!formatContext->genre) formatContext->genre = mmfile_strdup((const char *)tagInfo.pGenre);
+ if (!formatContext->tagTrackNum) formatContext->tagTrackNum = mmfile_strdup((const char *)tagInfo.pTrackNum);
+ if (!formatContext->composer) formatContext->composer = mmfile_strdup((const char *)tagInfo.pComposer);
+ if (!formatContext->classification) formatContext->classification = mmfile_strdup((const char *)tagInfo.pContentGroup);
+ if (!formatContext->conductor) formatContext->conductor = mmfile_strdup((const char *)tagInfo.pConductor);
+
+ formatContext->artwork = mmfile_malloc(tagInfo.imageInfo.imageLen);
+ if ((tagInfo.imageInfo.imageLen > 0) && formatContext->artwork) {
+ formatContext->artworkSize = tagInfo.imageInfo.imageLen;
+ memcpy(formatContext->artwork, tagInfo.imageInfo.pImageBuf, tagInfo.imageInfo.imageLen);
+ }
- mm_file_free_AvFileContentInfo (&tagInfo);
- mmfile_free (id3v2Box.id3v2Data);
+ mm_file_free_AvFileContentInfo(&tagInfo);
+ mmfile_free(id3v2Box.id3v2Data);
- /*reset seek position*/
- mmfile_seek (fp, basic_header->start_offset + basic_header->size, SEEK_SET);
+ /*reset seek position*/
+ mmfile_seek(fp, basic_header->start_offset + basic_header->size, SEEK_SET);
- return MMFILE_UTIL_SUCCESS;
+ return MMFILE_UTIL_SUCCESS;
- }
+ }
exception:
- mmfile_seek (fp, basic_header->start_offset + basic_header->size, SEEK_SET);
- mmfile_free (id3v2Box.id3v2Data);
+ mmfile_seek(fp, basic_header->start_offset + basic_header->size, SEEK_SET);
+ mmfile_free(id3v2Box.id3v2Data);
+ mm_file_free_AvFileContentInfo(&tagInfo);
return MMFILE_UTIL_FAIL;
}
-EXPORT_API int MMFileUtilGetMetaDataFromMP4 (MMFileFormatContext * formatContext)
+EXPORT_API int MMFileUtilGetMetaDataFromMP4(MMFileFormatContext *formatContext)
{
MMFileIOHandle *fp = NULL;
int ret = 0;
int readed;
- ret = mmfile_open (&fp, formatContext->uriFileName, MMFILE_RDONLY);
- if(ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
+ ret = mmfile_open(&fp, formatContext->uriFileName, MMFILE_RDONLY);
+ if (ret == MMFILE_UTIL_FAIL) {
+ debug_error("error: mmfile_open\n");
goto exit;
}
- MMFILE_MP4_BASIC_BOX_HEADER basic_header = {0,};
- basic_header.start_offset = mmfile_tell (fp);
+ MMFILE_MP4_BASIC_BOX_HEADER basic_header = {0, };
+ basic_header.start_offset = mmfile_tell(fp);
- while ( (ret != MMFILE_UTIL_FAIL) && ((readed = mmfile_read (fp, (unsigned char *)&basic_header, MMFILE_MP4_BASIC_BOX_HEADER_LEN)) > 0 ) ) {
- basic_header.size = mmfile_io_be_uint32 (basic_header.size);
- basic_header.type = mmfile_io_le_uint32 (basic_header.type);
+ while ((ret != MMFILE_UTIL_FAIL) && ((readed = mmfile_read(fp, (unsigned char *)&basic_header, MMFILE_MP4_BASIC_BOX_HEADER_LEN)) > 0)) {
+ basic_header.size = mmfile_io_be_uint32(basic_header.size);
+ basic_header.type = mmfile_io_le_uint32(basic_header.type);
if (basic_header.size == 0) {
- debug_warning ("header is invalid.\n");
+ debug_warning("header is invalid.\n");
basic_header.size = readed;
basic_header.type = 0;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("START_OFFSET:[%lld] SIZE:[%d Byte] 4CC:[%c%c%c%c]\n",
- basic_header.start_offset, basic_header.size,
- ((char*)&basic_header.type)[0], ((char*)&basic_header.type)[1],
- ((char*)&basic_header.type)[2], ((char*)&basic_header.type)[3]);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("START_OFFSET:[%lld] SIZE:[%d Byte] 4CC:[%c%c%c%c]\n",
+ basic_header.start_offset, basic_header.size,
+ ((char *)&basic_header.type)[0], ((char *)&basic_header.type)[1],
+ ((char *)&basic_header.type)[2], ((char *)&basic_header.type)[3]);
+#endif
switch (basic_header.type) {
- case FOURCC ('m', 'o', 'o', 'v'): {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MPEG4: [moov] SIZE: [%d]Byte\n", basic_header.size);
- #endif
- break;
- }
- case FOURCC ('u', 'd', 't', 'a'): {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MPEG4: [udat] SIZE: [%d]Byte\n", basic_header.size);
- #endif
- break;
- }
- /////////////////////////////////////////////////////////////////
- // Extracting Tag Data //
- /////////////////////////////////////////////////////////////////
- case FOURCC ('t', 'i', 't', 'l'): {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MPEG4: [titl] SIZE: [%d]Byte\n", basic_header.size);
- #endif
- GetStringFromTextTagBox (formatContext, fp, &basic_header, eMMFILE_3GP_TAG_TITLE);
- break;
- }
- case FOURCC ('d', 's', 'c', 'p'): {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MPEG4: [dscp] SIZE: [%d]Byte\n", basic_header.size);
- #endif
- GetStringFromTextTagBox (formatContext, fp, &basic_header, eMMFILE_3GP_TAG_CAPTION);
- break;
- }
- case FOURCC ('c', 'p', 'r', 't'): {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MPEG4: [cprt] SIZE: [%d]Byte\n", basic_header.size);
- #endif
- GetStringFromTextTagBox (formatContext, fp, &basic_header, eMMFILE_3GP_TAG_COPYRIGHT);
- break;
- }
- case FOURCC ('p', 'e', 'r', 'f'): {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MPEG4: [perf] SIZE: [%d]Byte\n", basic_header.size);
- #endif
- GetStringFromTextTagBox (formatContext, fp, &basic_header, eMMFILE_3GP_TAG_PERFORMER );
- break;
- }
- case FOURCC ('a', 'u', 't', 'h'): {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MPEG4: [auth] SIZE: [%d]Byte\n", basic_header.size);
- #endif
- GetStringFromTextTagBox (formatContext, fp, &basic_header, eMMFILE_3GP_TAG_AUTHOR);
- break;
- }
- case FOURCC ('g', 'n', 'r', 'e'): {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MPEG4: [gnre] SIZE: [%d]Byte\n", basic_header.size);
- #endif
- GetStringFromTextTagBox (formatContext, fp, &basic_header, eMMFILE_3GP_TAG_GENRE);
- break;
- }
- case FOURCC ('a', 'l', 'b', 'm'): {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MPEG4: [albm] SIZE: [%d]Byte\n", basic_header.size);
- #endif
- GetAlbumFromAlbumTagBox (formatContext, fp, &basic_header);
- break;
- }
- case FOURCC ('y', 'r', 'r', 'c'): {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MPEG4: [yrrc] SIZE: [%d]Byte\n", basic_header.size);
- #endif
- GetYearFromYearTagBox (formatContext, fp, &basic_header);
- break;
- }
- case FOURCC ('r', 't', 'n', 'g'): {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MPEG4: [rtng] SIZE: [%d]Byte\n", basic_header.size);
- #endif
- GetRatingFromRatingTagBox (formatContext, fp, &basic_header); /* not use */
- break;
- }
- case FOURCC ('c', 'l', 's', 'f'): {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MPEG4: [clsf] SIZE: [%d]Byte\n", basic_header.size);
- #endif
- GetClassficationFromClsfTagBox (formatContext, fp, &basic_header);
- break;
- }
- case FOURCC ('k', 'y', 'w', 'd'): {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MPEG4: [kywd] SIZE: [%d]Byte\n", basic_header.size);
- #endif
- ret = mmfile_seek (fp, basic_header.start_offset + basic_header.size, SEEK_SET);
- break;
- }
- case FOURCC ('l', 'o', 'c', 'i'): {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MPEG4: [loci] SIZE: [%d]Byte\n", basic_header.size);
- #endif
- GetLocationFromLociTagBox (formatContext, fp, &basic_header);
- break;
- }
- /* Check smta in user data field to be compatible with android */
- case FOURCC ('s', 'm', 't', 'a'): {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MPEG4: [smta] SIZE: [%d]Byte\n", basic_header.size);
- #endif
- GetSAUTInfoFromSMTATagBox (formatContext, fp, &basic_header);
- break;
- }
- /* Check smta in user data field to be compatible with android */
- case FOURCC ('c', 'd', 'i', 's'): {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MPEG4: [smta] SIZE: [%d]Byte\n", basic_header.size);
- #endif
- GetValueFromCDISTagBox (formatContext, fp, &basic_header);
- break;
- }
- /////////////////////////////////////////////////////////////////
- // Extracting ID3 Tag Data //
- /////////////////////////////////////////////////////////////////
- case FOURCC ('m', 'e', 't', 'a'): {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MPEG4: [meta] SIZE: [%d]Byte\n", basic_header.size);
- #endif
- GetTagFromMetaBox (formatContext, fp, &basic_header);
- break;
- }
+ case FOURCC('m', 'o', 'o', 'v'): {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MPEG4: [moov] SIZE: [%d]Byte\n", basic_header.size);
+#endif
+ break;
+ }
+ case FOURCC('u', 'd', 't', 'a'): {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MPEG4: [udat] SIZE: [%d]Byte\n", basic_header.size);
+#endif
+ break;
+ }
+ /*/////////////////////////////////////////////////////////////// */
+ /* Extracting Tag Data // */
+ /*/////////////////////////////////////////////////////////////// */
+ case FOURCC('t', 'i', 't', 'l'): {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MPEG4: [titl] SIZE: [%d]Byte\n", basic_header.size);
+#endif
+ GetStringFromTextTagBox(formatContext, fp, &basic_header, eMMFILE_3GP_TAG_TITLE);
+ break;
+ }
+ case FOURCC('d', 's', 'c', 'p'): {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MPEG4: [dscp] SIZE: [%d]Byte\n", basic_header.size);
+#endif
+ GetStringFromTextTagBox(formatContext, fp, &basic_header, eMMFILE_3GP_TAG_CAPTION);
+ break;
+ }
+ case FOURCC('c', 'p', 'r', 't'): {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MPEG4: [cprt] SIZE: [%d]Byte\n", basic_header.size);
+#endif
+ GetStringFromTextTagBox(formatContext, fp, &basic_header, eMMFILE_3GP_TAG_COPYRIGHT);
+ break;
+ }
+ case FOURCC('p', 'e', 'r', 'f'): {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MPEG4: [perf] SIZE: [%d]Byte\n", basic_header.size);
+#endif
+ GetStringFromTextTagBox(formatContext, fp, &basic_header, eMMFILE_3GP_TAG_PERFORMER);
+ break;
+ }
+ case FOURCC('a', 'u', 't', 'h'): {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MPEG4: [auth] SIZE: [%d]Byte\n", basic_header.size);
+#endif
+ GetStringFromTextTagBox(formatContext, fp, &basic_header, eMMFILE_3GP_TAG_AUTHOR);
+ break;
+ }
+ case FOURCC('g', 'n', 'r', 'e'): {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MPEG4: [gnre] SIZE: [%d]Byte\n", basic_header.size);
+#endif
+ GetStringFromTextTagBox(formatContext, fp, &basic_header, eMMFILE_3GP_TAG_GENRE);
+ break;
+ }
+ case FOURCC('a', 'l', 'b', 'm'): {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MPEG4: [albm] SIZE: [%d]Byte\n", basic_header.size);
+#endif
+ GetAlbumFromAlbumTagBox(formatContext, fp, &basic_header);
+ break;
+ }
+ case FOURCC('y', 'r', 'r', 'c'): {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MPEG4: [yrrc] SIZE: [%d]Byte\n", basic_header.size);
+#endif
+ GetYearFromYearTagBox(formatContext, fp, &basic_header);
+ break;
+ }
+ case FOURCC('r', 't', 'n', 'g'): {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MPEG4: [rtng] SIZE: [%d]Byte\n", basic_header.size);
+#endif
+ GetRatingFromRatingTagBox(formatContext, fp, &basic_header); /* not use */
+ break;
+ }
+ case FOURCC('c', 'l', 's', 'f'): {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MPEG4: [clsf] SIZE: [%d]Byte\n", basic_header.size);
+#endif
+ GetClassficationFromClsfTagBox(formatContext, fp, &basic_header);
+ break;
+ }
+ case FOURCC('k', 'y', 'w', 'd'): {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MPEG4: [kywd] SIZE: [%d]Byte\n", basic_header.size);
+#endif
+ ret = mmfile_seek(fp, basic_header.start_offset + basic_header.size, SEEK_SET);
+ break;
+ }
+ case FOURCC('l', 'o', 'c', 'i'): {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MPEG4: [loci] SIZE: [%d]Byte\n", basic_header.size);
+#endif
+ GetLocationFromLociTagBox(formatContext, fp, &basic_header);
+ break;
+ }
+ /* Check smta in user data field to be compatible with android */
+ case FOURCC('s', 'm', 't', 'a'): {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MPEG4: [smta] SIZE: [%d]Byte\n", basic_header.size);
+#endif
+ GetSAUTInfoFromSMTATagBox(formatContext, fp, &basic_header);
+ break;
+ }
+ /* Check smta in user data field to be compatible with android */
+ case FOURCC('c', 'd', 'i', 's'): {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MPEG4: [smta] SIZE: [%d]Byte\n", basic_header.size);
+#endif
+ GetValueFromCDISTagBox(formatContext, fp, &basic_header);
+ break;
+ }
+ /*/////////////////////////////////////////////////////////////// */
+ /* Extracting ID3 Tag Data // */
+ /*/////////////////////////////////////////////////////////////// */
+ case FOURCC('m', 'e', 't', 'a'): {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MPEG4: [meta] SIZE: [%d]Byte\n", basic_header.size);
+#endif
+ GetTagFromMetaBox(formatContext, fp, &basic_header);
+ break;
+ }
default: {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("4CC: Not Support.. so skip it\n");
- #endif
- ret = mmfile_seek (fp, basic_header.start_offset + basic_header.size, SEEK_SET);
- break;
- }
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("4CC: Not Support.. so skip it\n");
+#endif
+ ret = mmfile_seek(fp, basic_header.start_offset + basic_header.size, SEEK_SET);
+ break;
+ }
}
if (ret == MMFILE_UTIL_FAIL) {
@@ -1464,32 +1447,32 @@ EXPORT_API int MMFileUtilGetMetaDataFromMP4 (MMFileFormatContext * formatContext
goto exit;
}
- basic_header.start_offset = mmfile_tell (fp);
+ basic_header.start_offset = mmfile_tell(fp);
}
exit:
- mmfile_close (fp);
+ mmfile_close(fp);
return ret;
}
-static char * get_string(const char *buf, int buf_size, int *bytes_written)
+static char *get_string(const char *buf, int buf_size, int *bytes_written)
{
int i = 0, c = 0;
char *q = NULL;
char str[512] = {0, };
q = str;
- for(i = 0; i < buf_size; i++) {
+ for (i = 0; i < buf_size; i++) {
c = buf[i];
if (c == '\0')
break;
- if ((q - str) >= sizeof(str) - 1)
- break;
+ if ((q - str) >= (int)sizeof(str) - 1)
+ break;
*q++ = c;
}
*q = '\0';
- if(strlen(str) > 0) {
+ if (strlen(str) > 0) {
*bytes_written = strlen(str);
return strdup(str);
} else {
@@ -1503,11 +1486,10 @@ static bool is_numeric(const char *buf, int buf_size)
int idx = 0;
bool is_num = true;
- for(idx = 0; idx < buf_size; idx++) {
- if(isdigit((int)buf[idx])) {
+ for (idx = 0; idx < buf_size; idx++) {
+ if (isdigit((int)buf[idx])) {
continue;
- }
- else {
+ } else {
is_num = false;
break;
}
@@ -1516,14 +1498,30 @@ static bool is_numeric(const char *buf, int buf_size)
return is_num;
}
+char *rtrimN(char *pStr)
+{
+ int pos = 0;
+ pos = strlen(pStr) - 1;
+ for (; pos >= 0; pos--) {
+ if (pStr[pos] == 0x20) {
+ pStr[pos] = 0x00;
+ } else {
+ break;
+ }
+ }
+
+ return strdup(pStr);
+}
+
static bool make_characterset_array(char ***charset_array)
{
- char *locale = MMFileUtilGetLocale (NULL);
+ char *locale = MMFileUtilGetLocale(NULL);
- *charset_array = calloc(AV_ID3V2_MAX, sizeof(char*));
+ *charset_array = calloc(AV_ID3V2_MAX, sizeof(char *));
- if(*charset_array == NULL) {
- if(locale != NULL)
+ if (*charset_array == NULL) {
+ debug_error("calloc failed ");
+ if (locale != NULL)
free(locale);
return false;
}
@@ -1547,34 +1545,39 @@ static bool release_characterset_array(char **charset_array)
int i = 0;
for (i = 0; i < AV_ID3V2_MAX; i++) {
- if (charset_array[i] != NULL)
+ if (charset_array[i] != NULL) {
free(charset_array[i]);
+ charset_array[i] = NULL;
+ }
}
- free(charset_array);
+ if (charset_array != NULL) {
+ free(charset_array);
+ charset_array = NULL;
+ }
return true;
}
-static void init_content_info(AvFileContentInfo* pInfo)
+static void init_content_info(AvFileContentInfo *pInfo)
{
pInfo->tagV2Info.bTitleMarked = false;
- pInfo->tagV2Info.bArtistMarked= false;
- pInfo->tagV2Info.bAlbumMarked= false;
- pInfo->tagV2Info.bAlbum_ArtistMarked= false;
- pInfo->tagV2Info.bYearMarked= false;
- pInfo->tagV2Info.bDescriptionMarked= false;
- pInfo->tagV2Info.bGenreMarked= false;
- pInfo->tagV2Info.bTrackNumMarked= false;
- pInfo->tagV2Info.bEncByMarked= false;
- pInfo->tagV2Info.bURLMarked= false;
- pInfo->tagV2Info.bCopyRightMarked= false;
- pInfo->tagV2Info.bOriginArtistMarked= false;
- pInfo->tagV2Info.bComposerMarked= false;
- pInfo->tagV2Info.bImageMarked= false;
-
- pInfo->tagV2Info.bRecDateMarked= false;
- pInfo->tagV2Info.bContentGroupMarked= false;
+ pInfo->tagV2Info.bArtistMarked = false;
+ pInfo->tagV2Info.bAlbumMarked = false;
+ pInfo->tagV2Info.bAlbum_ArtistMarked = false;
+ pInfo->tagV2Info.bYearMarked = false;
+ pInfo->tagV2Info.bDescriptionMarked = false;
+ pInfo->tagV2Info.bGenreMarked = false;
+ pInfo->tagV2Info.bTrackNumMarked = false;
+ pInfo->tagV2Info.bEncByMarked = false;
+ pInfo->tagV2Info.bURLMarked = false;
+ pInfo->tagV2Info.bCopyRightMarked = false;
+ pInfo->tagV2Info.bOriginArtistMarked = false;
+ pInfo->tagV2Info.bComposerMarked = false;
+ pInfo->tagV2Info.bImageMarked = false;
+
+ pInfo->tagV2Info.bRecDateMarked = false;
+ pInfo->tagV2Info.bContentGroupMarked = false;
pInfo->tagV2Info.bUnsyncLyricsMarked = false;
pInfo->tagV2Info.bSyncLyricsMarked = false;
@@ -1587,109 +1590,104 @@ static void init_content_info(AvFileContentInfo* pInfo)
}
EXPORT_API
-bool mm_file_id3tag_parse_v110(AvFileContentInfo* pInfo, unsigned char *buffer)
+bool mm_file_id3tag_parse_v110(AvFileContentInfo *pInfo, unsigned char *buffer)
{
- const char *locale = MMFileUtilGetLocale (NULL);
+ const char *locale = MMFileUtilGetLocale(NULL);
+ char *pFullStr = NULL;
#ifdef __MMFILE_TEST_MODE__
- debug_msg ("ID3tag v110--------------------------------------------------------------\n");
+ debug_msg("ID3tag v110--------------------------------------------------------------\n");
#endif
- if(pInfo->tagV2Info.bTitleMarked == false) {
- pInfo->pTitle = mmfile_string_convert ((const char*)&buffer[3], MP3_ID3_TITLE_LENGTH, "UTF-8", locale, NULL, (unsigned int*)&pInfo->titleLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pTitle returned =(%s), pInfo->titleLen(%d)\n", pInfo->pTitle, pInfo->titleLen);
- #endif
-
- if(pInfo->pTitle == NULL) { /*Use same logic with ffmpeg*/
- pInfo->pTitle = get_string((const char*)&buffer[3], MP3_ID3_TITLE_LENGTH, (int*)&pInfo->titleLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pTitle returned =(%s), pInfo->titleLen(%d)\n", pInfo->pTitle, pInfo->titleLen);
- #endif
+ if (pInfo->tagV2Info.bTitleMarked == false) {
+ pFullStr = mmfile_string_convert((const char *)&buffer[3], MP3_ID3_TITLE_LENGTH, "UTF-8", locale, NULL, (unsigned int *)&pInfo->titleLen);
+ if (pFullStr != NULL) {
+ pInfo->pTitle = rtrimN(pFullStr);
+ free(pFullStr);
}
+
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pTitle returned =(%s), pInfo->titleLen(%d)\n", pInfo->pTitle, pInfo->titleLen);
+#endif
}
- if(pInfo->tagV2Info.bArtistMarked == false) {
- pInfo->pArtist = mmfile_string_convert ((const char*)&buffer[33], MP3_ID3_ARTIST_LENGTH, "UTF-8", locale, NULL, (unsigned int*)&pInfo->artistLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pArtist returned =(%s), pInfo->artistLen(%d)\n", pInfo->pArtist, pInfo->artistLen);
- #endif
-
- if(pInfo->pArtist == NULL) { /*Use same logic with ffmpeg*/
- pInfo->pArtist = get_string((const char*)&buffer[33], MP3_ID3_ARTIST_LENGTH, (int*)&pInfo->artistLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pArtist returned =(%s), pInfo->artistLen(%d)\n", pInfo->pArtist, pInfo->artistLen);
- #endif
+ if (pInfo->tagV2Info.bArtistMarked == false) {
+ pFullStr = mmfile_string_convert((const char *)&buffer[33], MP3_ID3_ARTIST_LENGTH, "UTF-8", locale, NULL, (unsigned int *)&pInfo->artistLen);
+ if (pFullStr != NULL) {
+ pInfo->pArtist = rtrimN(pFullStr);
+ free(pFullStr);
}
+
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pArtist returned =(%s), pInfo->artistLen(%d)\n", pInfo->pArtist, pInfo->artistLen);
+#endif
}
- if(pInfo->tagV2Info.bAlbumMarked == false) {
- pInfo->pAlbum = mmfile_string_convert ((const char*)&buffer[63], MP3_ID3_ALBUM_LENGTH, "UTF-8", locale, NULL, (unsigned int*)&pInfo->albumLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pAlbum returned =(%s), pInfo->albumLen(%d)\n", pInfo->pAlbum, pInfo->albumLen);
- #endif
-
- if(pInfo->pAlbum == NULL) { /*Use same logic with ffmpeg*/
- pInfo->pAlbum = get_string((const char*)&buffer[63], MP3_ID3_ALBUM_LENGTH, (int*)&pInfo->albumLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pAlbum returned =(%s), pInfo->albumLen(%d)\n", pInfo->pAlbum, pInfo->albumLen);
- #endif
+ if (pInfo->tagV2Info.bAlbumMarked == false) {
+ pFullStr = mmfile_string_convert((const char *)&buffer[63], MP3_ID3_ALBUM_LENGTH, "UTF-8", locale, NULL, (unsigned int *)&pInfo->albumLen);
+ if (pFullStr != NULL) {
+ pInfo->pAlbum = rtrimN(pFullStr);
+ free(pFullStr);
}
+
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pAlbum returned =(%s), pInfo->albumLen(%d)\n", pInfo->pAlbum, pInfo->albumLen);
+#endif
}
- if(pInfo->tagV2Info.bYearMarked == false) {
+ if (pInfo->tagV2Info.bYearMarked == false) {
- pInfo->pYear = mmfile_string_convert ((const char*)&buffer[93], MP3_ID3_YEAR_LENGTH, "UTF-8", locale, NULL, (unsigned int*)&pInfo->yearLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pYear returned =(%s), pInfo->yearLen(%d)\n", pInfo->pYear, pInfo->yearLen);
- #endif
+ pInfo->pYear = mmfile_string_convert((const char *)&buffer[93], MP3_ID3_YEAR_LENGTH, "UTF-8", locale, NULL, (unsigned int *)&pInfo->yearLen);
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pYear returned =(%s), pInfo->yearLen(%d)\n", pInfo->pYear, pInfo->yearLen);
+#endif
- if(pInfo->pYear == NULL) { /*Use same logic with ffmpeg*/
- pInfo->pYear = get_string((const char*)&buffer[93], MP3_ID3_YEAR_LENGTH, (int*)&pInfo->yearLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pYear returned =(%s), pInfo->yearLen(%d)\n", pInfo->pYear, pInfo->yearLen);
- #endif
+ if (pInfo->pYear == NULL) { /*Use same logic with ffmpeg*/
+ pInfo->pYear = get_string((const char *)&buffer[93], MP3_ID3_YEAR_LENGTH, (int *)&pInfo->yearLen);
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pYear returned =(%s), pInfo->yearLen(%d)\n", pInfo->pYear, pInfo->yearLen);
+#endif
}
}
- if(pInfo->tagV2Info.bDescriptionMarked == false) {
- pInfo->pComment = mmfile_string_convert ((const char*)&buffer[97], MP3_ID3_DESCRIPTION_LENGTH, "UTF-8", locale, NULL, (unsigned int*)&pInfo->commentLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pComment returned =(%s), pInfo->commentLen(%d)\n", pInfo->pComment, pInfo->commentLen);
- #endif
-
- if(pInfo->pComment == NULL) { /*Use same logic with ffmpeg*/
- pInfo->pComment = get_string((const char*)&buffer[97], MP3_ID3_DESCRIPTION_LENGTH, (int*)&pInfo->commentLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pComment returned =(%s), pInfo->commentLen(%d)\n", pInfo->pComment, pInfo->commentLen);
- #endif
+ if (pInfo->tagV2Info.bDescriptionMarked == false) {
+ pInfo->pComment = mmfile_string_convert((const char *)&buffer[97], MP3_ID3_DESCRIPTION_LENGTH, "UTF-8", locale, NULL, (unsigned int *)&pInfo->commentLen);
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pComment returned =(%s), pInfo->commentLen(%d)\n", pInfo->pComment, pInfo->commentLen);
+#endif
+
+ if (pInfo->pComment == NULL) { /*Use same logic with ffmpeg*/
+ pInfo->pComment = get_string((const char *)&buffer[97], MP3_ID3_DESCRIPTION_LENGTH, (int *)&pInfo->commentLen);
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pComment returned =(%s), pInfo->commentLen(%d)\n", pInfo->pComment, pInfo->commentLen);
+#endif
}
}
- if(pInfo->tagV2Info.bTrackNumMarked== false) {
- pInfo->pTrackNum = mmfile_malloc (5);
- if(pInfo->pTrackNum != NULL) {
+ if (pInfo->tagV2Info.bTrackNumMarked == false) {
+ pInfo->pTrackNum = mmfile_malloc(5);
+ if (pInfo->pTrackNum != NULL) {
pInfo->pTrackNum[4] = 0;
snprintf(pInfo->pTrackNum, 4, "%04d", (int)buffer[126]);
pInfo->tracknumLen = strlen(pInfo->pTrackNum);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pTrackNum returned =(%s), pInfo->tracknumLen(%d)\n", pInfo->pTrackNum, pInfo->tracknumLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pTrackNum returned =(%s), pInfo->tracknumLen(%d)\n", pInfo->pTrackNum, pInfo->tracknumLen);
+#endif
}
}
- if(pInfo->tagV2Info.bGenreMarked == false) {
+ if (pInfo->tagV2Info.bGenreMarked == false) {
pInfo->genre = buffer[127];
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->genre returned genre number (%d)\n", pInfo->genre);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->genre returned genre number (%d)\n", pInfo->genre);
+#endif
}
return true;
}
EXPORT_API
-bool mm_file_id3tag_parse_v222(AvFileContentInfo* pInfo, unsigned char *buffer)
+bool mm_file_id3tag_parse_v222(AvFileContentInfo *pInfo, unsigned char *buffer)
{
unsigned long taglen = 0;
unsigned long needToloopv2taglen;
@@ -1697,11 +1695,12 @@ bool mm_file_id3tag_parse_v222(AvFileContentInfo* pInfo, unsigned char *buffer)
unsigned long v2numOfFrames = 0;
unsigned long curPos = 0;
char CompTmp[4];
- char *pExtContent = NULL;
+ unsigned char *pExtContent = NULL;
unsigned long purelyFramelen = 0;
- int inx=0, encodingOffSet=0, realCpyFrameNum=0,
- checkImgMimeTypeMax=0, checkImgExtMax=0,
- imgstartOffset=0, tmp = 0;
+ unsigned int encodingOffSet = 0;
+ int inx = 0, realCpyFrameNum = 0,
+ /*checkImgMimeTypeMax = 0, */checkImgExtMax = 0,
+ imgstartOffset = 0, tmp = 0;
int textEncodingType = 0;
@@ -1714,191 +1713,168 @@ bool mm_file_id3tag_parse_v222(AvFileContentInfo* pInfo, unsigned char *buffer)
taglen = pInfo->tagV2Info.tagLen;
needToloopv2taglen = taglen - MP3_TAGv2_HEADER_LEN;
curPos = MP3_TAGv2_HEADER_LEN;
-
+
#ifdef __MMFILE_TEST_MODE__
- debug_msg ("ID3tag v222--------------------------------------------------------------\n");
+ debug_msg("ID3tag v222--------------------------------------------------------------\n");
#endif
- if(needToloopv2taglen -MP3_TAGv2_22_TXT_HEADER_LEN > MP3_TAGv2_22_TXT_HEADER_LEN) {
+ if (needToloopv2taglen - MP3_TAGv2_22_TXT_HEADER_LEN > MP3_TAGv2_22_TXT_HEADER_LEN) {
v2numOfFrames = 1;
- while(needToloopv2taglen > MP3_TAGv2_22_TXT_HEADER_LEN)
- {
- if((buffer[curPos] < '0' || buffer[curPos] > 'Z') || (buffer[curPos+1] < '0' || buffer[curPos+1] > 'Z')
- || (buffer[curPos+2] < '0' || buffer[curPos+2] > 'Z'))
+ while (needToloopv2taglen > MP3_TAGv2_22_TXT_HEADER_LEN) {
+ if ((buffer[curPos] < '0' || buffer[curPos] > 'Z') || (buffer[curPos + 1] < '0' || buffer[curPos + 1] > 'Z')
+ || (buffer[curPos + 2] < '0' || buffer[curPos + 2] > 'Z'))
break;
memcpy(CompTmp, &buffer[curPos], 3);
CompTmp[3] = 0;
oneFrameLen = MP3_TAGv2_22_TXT_HEADER_LEN;
- oneFrameLen += (unsigned long)buffer[3+curPos] << 16 | (unsigned long)buffer[4+curPos] << 8
- | (unsigned long)buffer[5+curPos];
- if(oneFrameLen > taglen-curPos)
+ oneFrameLen += (unsigned long)buffer[3 + curPos] << 16 | (unsigned long)buffer[4 + curPos] << 8
+ | (unsigned long)buffer[5 + curPos];
+ if (oneFrameLen > taglen - curPos)
break;
purelyFramelen = oneFrameLen - MP3_TAGv2_22_TXT_HEADER_LEN;
- curPos +=MP3_TAGv2_22_TXT_HEADER_LEN;
+ curPos += MP3_TAGv2_22_TXT_HEADER_LEN;
- if(oneFrameLen > MP3_TAGv2_22_TXT_HEADER_LEN && purelyFramelen <= taglen-curPos)
- {
+ if (oneFrameLen > MP3_TAGv2_22_TXT_HEADER_LEN && purelyFramelen <= taglen - curPos) {
curPos += purelyFramelen;
- if(buffer[curPos-purelyFramelen] == 0x00)
- {
+ if (buffer[curPos - purelyFramelen] == 0x00) {
encodingOffSet = 1;
textEncodingType = AV_ID3V2_ISO_8859;
- }
- else if(buffer[curPos-purelyFramelen] == 0x01)
- {
+ } else if (buffer[curPos - purelyFramelen] == 0x01) {
encodingOffSet = 1;
textEncodingType = AV_ID3V2_UTF16;
}
if (textEncodingType > AV_ID3V2_MAX) {
- debug_msg ( "WRONG ENCOIDNG TYPE [%d], FRAME[%s]\n", textEncodingType, (char*)CompTmp);
+ debug_msg("WRONG ENCOIDNG TYPE [%d], FRAME[%s]\n", textEncodingType, (char *)CompTmp);
continue;
}
- //in order to deliver valid string to MP
- while((buffer[curPos-purelyFramelen+encodingOffSet] < 0x20) && (encodingOffSet < purelyFramelen))
+ /*in order to deliver valid string to MP */
+ while ((buffer[curPos - purelyFramelen + encodingOffSet] < 0x20) && (encodingOffSet < purelyFramelen))
encodingOffSet++;
- if(encodingOffSet < purelyFramelen)
- {
+ if (encodingOffSet < purelyFramelen) {
realCpyFrameNum = purelyFramelen - encodingOffSet;
- pExtContent = mmfile_malloc (realCpyFrameNum+3);
- memset(pExtContent, '\0', realCpyFrameNum+3);
+ pExtContent = mmfile_malloc(realCpyFrameNum + 3);
+
+ if (pExtContent == NULL) {
+ debug_error("out of memory for pExtContent\n");
+ continue;
+ }
+
+ memset(pExtContent, '\0', realCpyFrameNum + 3);
- memcpy(pExtContent, &buffer[curPos-purelyFramelen+encodingOffSet], purelyFramelen-encodingOffSet);
+ memcpy(pExtContent, &buffer[curPos - purelyFramelen + encodingOffSet], purelyFramelen - encodingOffSet);
- if(realCpyFrameNum > 0)
- {
- if(strncmp((char *)CompTmp, "TT2", 3) == 0 && pInfo->tagV2Info.bTitleMarked == false)
- {
- pInfo->pTitle = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->titleLen);
+ if (realCpyFrameNum > 0) {
+ if (strncmp((char *)CompTmp, "TT2", 3) == 0 && pInfo->tagV2Info.bTitleMarked == false) {
+ pInfo->pTitle = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->titleLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pTitle returned = (%s), pInfo->titleLen(%d)\n", pInfo->pTitle, pInfo->titleLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pTitle returned = (%s), pInfo->titleLen(%d)\n", pInfo->pTitle, pInfo->titleLen);
+#endif
pInfo->tagV2Info.bTitleMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TP1", 3) == 0 && pInfo->tagV2Info.bArtistMarked == false)
- {
- pInfo->pArtist = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->artistLen);
+ } else if (strncmp((char *)CompTmp, "TP1", 3) == 0 && pInfo->tagV2Info.bArtistMarked == false) {
+ pInfo->pArtist = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->artistLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pArtist returned = (%s), pInfo->artistLen(%d)\n", pInfo->pArtist, pInfo->artistLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pArtist returned = (%s), pInfo->artistLen(%d)\n", pInfo->pArtist, pInfo->artistLen);
+#endif
pInfo->tagV2Info.bArtistMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TP2", 3) == 0 && pInfo->tagV2Info.bAlbum_ArtistMarked == false)
- {
- pInfo->pAlbum_Artist = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->album_artistLen);
+ } else if (strncmp((char *)CompTmp, "TP2", 3) == 0 && pInfo->tagV2Info.bAlbum_ArtistMarked == false) {
+ pInfo->pAlbum_Artist = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->album_artistLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pAlbum_Artist returned = (%s), pInfo->album_artistLen(%d)\n", pInfo->pAlbum_Artist, pInfo->album_artistLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pAlbum_Artist returned = (%s), pInfo->album_artistLen(%d)\n", pInfo->pAlbum_Artist, pInfo->album_artistLen);
+#endif
pInfo->tagV2Info.bAlbum_ArtistMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TP3", 3) == 0 && pInfo->tagV2Info.bConductorMarked == false)
- {
- pInfo->pConductor = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->conductorLen);
+ } else if (strncmp((char *)CompTmp, "TP3", 3) == 0 && pInfo->tagV2Info.bConductorMarked == false) {
+ pInfo->pConductor = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->conductorLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pConductor returned = (%s), pInfo->conductorLen(%d)\n", pInfo->pConductor, pInfo->conductorLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pConductor returned = (%s), pInfo->conductorLen(%d)\n", pInfo->pConductor, pInfo->conductorLen);
+#endif
pInfo->tagV2Info.bConductorMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TAL", 3) == 0 && pInfo->tagV2Info.bAlbumMarked == false)
- {
- pInfo->pAlbum = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->albumLen);
+ } else if (strncmp((char *)CompTmp, "TAL", 3) == 0 && pInfo->tagV2Info.bAlbumMarked == false) {
+ pInfo->pAlbum = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->albumLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pAlbum returned = (%s), pInfo->albumLen(%d)\n", pInfo->pAlbum, pInfo->albumLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pAlbum returned = (%s), pInfo->albumLen(%d)\n", pInfo->pAlbum, pInfo->albumLen);
+#endif
pInfo->tagV2Info.bAlbumMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TYE", 3) == 0 && pInfo->tagV2Info.bYearMarked == false)
- {
- pInfo->pYear = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->yearLen);
+ } else if (strncmp((char *)CompTmp, "TYE", 3) == 0 && pInfo->tagV2Info.bYearMarked == false) {
+ pInfo->pYear = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->yearLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pYear returned = (%s), pInfo->yearLen(%d)\n", pInfo->pYear, pInfo->yearLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pYear returned = (%s), pInfo->yearLen(%d)\n", pInfo->pYear, pInfo->yearLen);
+#endif
pInfo->tagV2Info.bYearMarked = true;
- }
- else if(strncmp((char *)CompTmp, "COM", 3) == 0 && pInfo->tagV2Info.bDescriptionMarked == false)
- {
- //skip language data!
- if(realCpyFrameNum > 4)
- {
+ } else if (strncmp((char *)CompTmp, "COM", 3) == 0 && pInfo->tagV2Info.bDescriptionMarked == false) {
+ /*skip language data! */
+ if (realCpyFrameNum > 4) {
realCpyFrameNum -= 4;
tmp = 4;
- //pExtContent[tmp+1] value should't have encoding value
- if(pExtContent[tmp] > 0x20 && (pExtContent[tmp - 1] == 0x00 || pExtContent[tmp - 1] == 0x01))
- {
- if(pExtContent[tmp - 1] == 0x00)
+ /*pExtContent[tmp+1] value should't have encoding value */
+ if (pExtContent[tmp] > 0x20 && (pExtContent[tmp - 1] == 0x00 || pExtContent[tmp - 1] == 0x01)) {
+ if (pExtContent[tmp - 1] == 0x00)
textEncodingType = AV_ID3V2_ISO_8859;
else
textEncodingType = AV_ID3V2_UTF16;
- pInfo->pComment = mmfile_string_convert ((char*)&pExtContent[tmp], realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->commentLen);
+ pInfo->pComment = mmfile_string_convert((char *)&pExtContent[tmp], realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->commentLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pComment returned = (%s), pInfo->commentLen(%d)\n", pInfo->pComment, pInfo->commentLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pComment returned = (%s), pInfo->commentLen(%d)\n", pInfo->pComment, pInfo->commentLen);
+#endif
pInfo->tagV2Info.bDescriptionMarked = true;
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("mmf_file_id3tag_parse_v222: failed to get Comment Info tmp(%d), purelyFramelen - encodingOffSet(%d)\n", tmp, purelyFramelen - encodingOffSet);
+#endif
}
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "mmf_file_id3tag_parse_v222: failed to get Comment Info tmp(%d), purelyFramelen - encodingOffSet(%d)\n", tmp, purelyFramelen - encodingOffSet );
- #endif
- }
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "mmf_file_id3tag_parse_v222: Description info too small to parse realCpyFrameNum(%d)\n", realCpyFrameNum );
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("mmf_file_id3tag_parse_v222: Description info too small to parse realCpyFrameNum(%d)\n", realCpyFrameNum);
+#endif
}
tmp = 0;
- }
- else if(strncmp((char *)CompTmp, "TCO", 3) == 0 && pInfo->tagV2Info.bGenreMarked == false)
- {
- pInfo->pGenre = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->genreLen);
+ } else if (strncmp((char *)CompTmp, "TCO", 3) == 0 && pInfo->tagV2Info.bGenreMarked == false) {
+ pInfo->pGenre = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->genreLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pGenre returned = (%s), pInfo->genreLen(%d)\n", pInfo->pGenre, pInfo->genreLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pGenre returned = (%s), pInfo->genreLen(%d)\n", pInfo->pGenre, pInfo->genreLen);
+#endif
- if((pInfo->pGenre != NULL) && (pInfo->genreLen > 0)) {
+ if ((pInfo->pGenre != NULL) && (pInfo->genreLen > 0)) {
bool ret = FALSE;
int int_genre = -1;
ret = is_numeric(pInfo->pGenre, pInfo->genreLen);
- if(ret == TRUE) {
- sscanf( pInfo->pGenre, "%d", &int_genre);
- #ifdef __MMFILE_TEST_MODE__
+ if (ret == TRUE) {
+ sscanf(pInfo->pGenre, "%d", &int_genre);
+#ifdef __MMFILE_TEST_MODE__
debug_msg("genre information is inteager [%d]\n", int_genre);
- #endif
+#endif
- //Change int to string
- if((0 <= int_genre) && (int_genre < GENRE_COUNT-1)) {
+ /*Change int to string */
+ if ((0 <= int_genre) && (int_genre < GENRE_COUNT - 1)) {
/*save genreinfo like "(123)". mm_file_id3tag_restore_content_info convert it to string*/
- char tmp_genre[6] = {0,}; /*ex. "(123)+NULL"*/
+ char tmp_genre[6] = {0, }; /*ex. "(123)+NULL"*/
int tmp_genre_len = 0;
- memset (tmp_genre, 0, 6);
+ memset(tmp_genre, 0, 6);
snprintf(tmp_genre, sizeof(tmp_genre), "(%d)", int_genre);
tmp_genre_len = strlen(tmp_genre);
- if(tmp_genre_len > 0) {
- if(pInfo->pGenre) _FREE_EX(pInfo->pGenre);
- pInfo->pGenre = mmfile_malloc (sizeof(char) * (tmp_genre_len + 1) );
- if (pInfo->pGenre)
- {
+ if (tmp_genre_len > 0) {
+ if (pInfo->pGenre) _FREE_EX(pInfo->pGenre);
+ pInfo->pGenre = mmfile_malloc(sizeof(char) * (tmp_genre_len + 1));
+ if (pInfo->pGenre) {
strncpy(pInfo->pGenre, tmp_genre, tmp_genre_len);
pInfo->pGenre[tmp_genre_len] = 0;
}
@@ -1908,235 +1884,200 @@ bool mm_file_id3tag_parse_v222(AvFileContentInfo* pInfo, unsigned char *buffer)
}
pInfo->tagV2Info.bGenreMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TRK", 3) == 0 && pInfo->tagV2Info.bTrackNumMarked == false)
- {
- pInfo->pTrackNum = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->tracknumLen);
+ } else if (strncmp((char *)CompTmp, "TRK", 3) == 0 && pInfo->tagV2Info.bTrackNumMarked == false) {
+ pInfo->pTrackNum = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->tracknumLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pTrackNum returned = (%s), pInfo->tracknumLen(%d)\n", pInfo->pTrackNum, pInfo->tracknumLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pTrackNum returned = (%s), pInfo->tracknumLen(%d)\n", pInfo->pTrackNum, pInfo->tracknumLen);
+#endif
pInfo->tagV2Info.bTrackNumMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TEN", 3) == 0 && pInfo->tagV2Info.bEncByMarked == false)
- {
- pInfo->pEncBy = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->encbyLen);
+ } else if (strncmp((char *)CompTmp, "TEN", 3) == 0 && pInfo->tagV2Info.bEncByMarked == false) {
+ pInfo->pEncBy = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->encbyLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pEncBy returned = (%s), pInfo->encbyLen(%d)\n", pInfo->pEncBy, pInfo->encbyLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pEncBy returned = (%s), pInfo->encbyLen(%d)\n", pInfo->pEncBy, pInfo->encbyLen);
+#endif
pInfo->tagV2Info.bEncByMarked = true;
- }
- else if(strncmp((char *)CompTmp, "WXX", 3) == 0 && pInfo->tagV2Info.bURLMarked == false)
- {
- if(realCpyFrameNum > 4)
- {
- //skip language data!
+ } else if (strncmp((char *)CompTmp, "WXX", 3) == 0 && pInfo->tagV2Info.bURLMarked == false) {
+ if (realCpyFrameNum > 4) {
+ /*skip language data! */
realCpyFrameNum -= 4;
tmp = 4;
- //pExtContent[tmp+1] value should't have null value
- if(pExtContent[tmp] > 0x20 && (pExtContent[tmp - 1] == 0x00 || pExtContent[tmp - 1] == 0x01))
- {
- if(pExtContent[tmp - 1] == 0x00)
+ /*pExtContent[tmp+1] value should't have null value */
+ if (pExtContent[tmp] > 0x20 && (pExtContent[tmp - 1] == 0x00 || pExtContent[tmp - 1] == 0x01)) {
+ if (pExtContent[tmp - 1] == 0x00)
textEncodingType = AV_ID3V2_ISO_8859;
else
textEncodingType = AV_ID3V2_UTF16;
- pInfo->pURL = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->urlLen);
+ pInfo->pURL = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->urlLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pURL returned = (%s), pInfo->urlLen(%d)\n", pInfo->pURL, pInfo->urlLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pURL returned = (%s), pInfo->urlLen(%d)\n", pInfo->pURL, pInfo->urlLen);
+#endif
pInfo->tagV2Info.bURLMarked = true;
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("mmf_file_id3tag_parse_v222: failed to get URL Info tmp(%d), purelyFramelen - encodingOffSet(%d)\n", tmp, purelyFramelen - encodingOffSet);
+#endif
}
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "mmf_file_id3tag_parse_v222: failed to get URL Info tmp(%d), purelyFramelen - encodingOffSet(%d)\n", tmp, purelyFramelen - encodingOffSet );
- #endif
- }
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "mmf_file_id3tag_parse_v222: URL info too small to parse realCpyFrameNum(%d)\n", realCpyFrameNum );
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("mmf_file_id3tag_parse_v222: URL info too small to parse realCpyFrameNum(%d)\n", realCpyFrameNum);
+#endif
}
tmp = 0;
- }
- else if(strncmp((char *)CompTmp, "TCR", 3) == 0 && pInfo->tagV2Info.bCopyRightMarked == false)
- {
- pInfo->pCopyright = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->copyrightLen);
+ } else if (strncmp((char *)CompTmp, "TCR", 3) == 0 && pInfo->tagV2Info.bCopyRightMarked == false) {
+ pInfo->pCopyright = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->copyrightLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pCopyright returned = (%s), pInfo->copyrightLen(%d)\n", pInfo->pCopyright, pInfo->copyrightLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pCopyright returned = (%s), pInfo->copyrightLen(%d)\n", pInfo->pCopyright, pInfo->copyrightLen);
+#endif
pInfo->tagV2Info.bCopyRightMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TOA", 3) == 0 && pInfo->tagV2Info.bOriginArtistMarked == false)
- {
- pInfo->pOriginArtist = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->originartistLen);
+ } else if (strncmp((char *)CompTmp, "TOA", 3) == 0 && pInfo->tagV2Info.bOriginArtistMarked == false) {
+ pInfo->pOriginArtist = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->originartistLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pOriginArtist returned = (%s), pInfo->originartistLen(%d)\n", pInfo->pOriginArtist, pInfo->originartistLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pOriginArtist returned = (%s), pInfo->originartistLen(%d)\n", pInfo->pOriginArtist, pInfo->originartistLen);
+#endif
pInfo->tagV2Info.bOriginArtistMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TCM", 3) == 0 && pInfo->tagV2Info.bComposerMarked == false)
- {
- pInfo->pComposer = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->composerLen);
+ } else if (strncmp((char *)CompTmp, "TCM", 3) == 0 && pInfo->tagV2Info.bComposerMarked == false) {
+ pInfo->pComposer = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->composerLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pComposer returned = (%s), pInfo->originartistLen(%d)\n", pInfo->pComposer, pInfo->composerLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pComposer returned = (%s), pInfo->originartistLen(%d)\n", pInfo->pComposer, pInfo->composerLen);
+#endif
pInfo->tagV2Info.bComposerMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TRD", 3) == 0 && pInfo->tagV2Info.bRecDateMarked== false)
- {
- pInfo->pRecDate = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->recdateLen);
+ } else if (strncmp((char *)CompTmp, "TRD", 3) == 0 && pInfo->tagV2Info.bRecDateMarked == false) {
+ pInfo->pRecDate = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->recdateLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pRecDate returned = (%s), pInfo->recdateLen(%d)\n", pInfo->pRecDate, pInfo->recdateLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pRecDate returned = (%s), pInfo->recdateLen(%d)\n", pInfo->pRecDate, pInfo->recdateLen);
+#endif
pInfo->tagV2Info.bRecDateMarked = true;
- }
- else if(strncmp((char *)CompTmp, "PIC", 3) == 0 && pInfo->tagV2Info.bImageMarked == false && realCpyFrameNum <= 2000000)
- {
- if(pExtContent[0] != 0)
- {
- for(inx = 0; inx < MP3_ID3_IMAGE_EXT_MAX_LENGTH; inx++)
- pInfo->imageInfo.imageExt[inx] = '\0';//ini mimetype variable
-
- while((checkImgExtMax < MP3_ID3_IMAGE_EXT_MAX_LENGTH-1) && pExtContent[checkImgExtMax] != '\0')
- {
+ } else if (strncmp((char *)CompTmp, "PIC", 3) == 0 && pInfo->tagV2Info.bImageMarked == false && realCpyFrameNum <= 2000000) {
+ if (pExtContent[0] != 0) {
+ for (inx = 0; inx < MP3_ID3_IMAGE_EXT_MAX_LENGTH; inx++)
+ pInfo->imageInfo.imageExt[inx] = '\0';/*ini mimetype variable */
+
+ while ((checkImgExtMax < MP3_ID3_IMAGE_EXT_MAX_LENGTH - 1) && pExtContent[checkImgExtMax] != '\0') {
pInfo->imageInfo.imageExt[checkImgExtMax] = pExtContent[checkImgExtMax];
checkImgExtMax++;
}
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "mmf_file_id3tag_parse_v222: PIC image's not included to image Extention\n");
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("mmf_file_id3tag_parse_v222: PIC image's not included to image Extention\n");
+#endif
}
imgstartOffset += checkImgExtMax;
- if(pExtContent[imgstartOffset] < AV_ID3V2_PICTURE_TYPE_MAX)
- {
+ if (pExtContent[imgstartOffset] < AV_ID3V2_PICTURE_TYPE_MAX) {
pInfo->imageInfo.pictureType = pExtContent[imgstartOffset];
}
- imgstartOffset++;//PictureType(1byte)
+ imgstartOffset++;/*PictureType(1byte) */
- if(pExtContent[imgstartOffset] != 0x0)
- {
+ if (pExtContent[imgstartOffset] != 0x0) {
int cur_pos = 0;
int dis_len = 0;
int new_dis_len = 0;
- char jpg_sign[3] = {0xff, 0xd8, 0xff};
- char png_sign[8] = {0x80, 0x50, 0x4e, 0x47,0x0d, 0x0a, 0x1a, 0x0a};
+ unsigned char jpg_sign[3] = {0xff, 0xd8, 0xff};
+ unsigned char png_sign[8] = {0x80, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a};
char *tmp_desc = NULL;
while (1) {
if (pExtContent[imgstartOffset + cur_pos] == '\0') {
if (realCpyFrameNum < imgstartOffset + cur_pos) {
- debug_error("End of APIC Tag %d %d %d\n", realCpyFrameNum, imgstartOffset, cur_pos);
- break;
+ debug_error("End of APIC Tag %d %d %d\n", realCpyFrameNum, imgstartOffset, cur_pos);
+ break;
}
/*check end of image description*/
if ((pExtContent[imgstartOffset + cur_pos + 1] == jpg_sign[0]) ||
- (pExtContent[imgstartOffset + cur_pos + 1] == png_sign[0])) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "length of description (%d)", cur_pos);
- #endif
+ (pExtContent[imgstartOffset + cur_pos + 1] == png_sign[0])) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("length of description (%d)", cur_pos);
+#endif
break;
}
}
- cur_pos ++;
+ cur_pos++;
}
dis_len = cur_pos + 1;
tmp_desc = mmfile_malloc(sizeof(char) * dis_len);
- memcpy(tmp_desc, pExtContent + imgstartOffset, dis_len);
- /*convert description*/
- pInfo->imageInfo.imageDescription = mmfile_string_convert (tmp_desc, dis_len, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&new_dis_len);
- mmfile_free(tmp_desc);
+ if(tmp_desc != NULL) {
+ memcpy(tmp_desc, pExtContent + imgstartOffset, dis_len);
+
+ /*convert description*/
+ pInfo->imageInfo.imageDescription = mmfile_string_convert(tmp_desc, dis_len, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&new_dis_len);
+ mmfile_free(tmp_desc);
+
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("new_desc %s(%d)\n", pInfo->imageInfo.imageDescription, new_dis_len);
+#endif
+ pInfo->imageInfo.imgDesLen = new_dis_len; /**/
+ }
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "new_desc %s(%d)\n", pInfo->imageInfo.imageDescription, new_dis_len);
- #endif
- pInfo->imageInfo.imgDesLen = new_dis_len; /**/
imgstartOffset += cur_pos;
- }
- else
- {
- pInfo->imageInfo.imgDesLen= 0;
+ } else {
+ pInfo->imageInfo.imgDesLen = 0;
}
- if((pExtContent[imgstartOffset] == '\0') && (realCpyFrameNum - imgstartOffset > 0))
- {
- imgstartOffset ++; // endofDesceriptionType(1byte)
+ if ((pExtContent[imgstartOffset] == '\0') && (realCpyFrameNum - imgstartOffset > 0)) {
+ imgstartOffset++; /* endofDesceriptionType(1byte) */
- while(pExtContent[imgstartOffset] == '\0') //some content has useless '\0' in front of picture data
- {
- imgstartOffset ++;
+ while (pExtContent[imgstartOffset] == '\0') { /*some content has useless '\0' in front of picture data */
+ imgstartOffset++;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "after scaning imgDescription imgstartOffset(%d) value!\n", imgstartOffset);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("after scaning imgDescription imgstartOffset(%d) value!\n", imgstartOffset);
+#endif
- if(realCpyFrameNum - imgstartOffset > 0)
- {
+ if (realCpyFrameNum - imgstartOffset > 0) {
pInfo->imageInfo.imageLen = realCpyFrameNum - imgstartOffset;
- pInfo->imageInfo.pImageBuf= mmfile_malloc (pInfo->imageInfo.imageLen + 1);
+ pInfo->imageInfo.pImageBuf = mmfile_malloc(pInfo->imageInfo.imageLen + 1);
- if(pInfo->imageInfo.pImageBuf != NULL) {
- memcpy(pInfo->imageInfo.pImageBuf, pExtContent+ imgstartOffset, pInfo->imageInfo.imageLen);
+ if (pInfo->imageInfo.pImageBuf != NULL) {
+ memcpy(pInfo->imageInfo.pImageBuf, pExtContent + imgstartOffset, pInfo->imageInfo.imageLen);
pInfo->imageInfo.pImageBuf[pInfo->imageInfo.imageLen] = 0;
}
- if(IS_INCLUDE_URL(pInfo->imageInfo.imageMIMEType))
- pInfo->imageInfo.bURLInfo = true; //if mimetype is "-->", image date has an URL
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "No APIC image!! realCpyFrameNum(%d) - imgstartOffset(%d)\n", realCpyFrameNum, imgstartOffset);
- #endif
+ if (IS_INCLUDE_URL(pInfo->imageInfo.imageMIMEType))
+ pInfo->imageInfo.bURLInfo = true; /*if mimetype is "-->", image date has an URL */
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("No APIC image!! realCpyFrameNum(%d) - imgstartOffset(%d)\n", realCpyFrameNum, imgstartOffset);
+#endif
}
}
- checkImgMimeTypeMax = 0;
+ /*checkImgMimeTypeMax = 0;*/
checkImgExtMax = 0;
inx = 0;
imgstartOffset = 0;
- pInfo->tagV2Info.bImageMarked= true;
+ pInfo->tagV2Info.bImageMarked = true;
}
}
}
- }
- else
- {
+ } else {
curPos += purelyFramelen;
- if(purelyFramelen != 0)
+ if (purelyFramelen != 0)
needToloopv2taglen = MP3_TAGv2_22_TXT_HEADER_LEN;
}
- if(pExtContent) _FREE_EX(pExtContent);
+ if (pExtContent) _FREE_EX(pExtContent);
memset(CompTmp, 0, 4);
- if(curPos < taglen)
- {
+ if (curPos < taglen) {
needToloopv2taglen -= oneFrameLen;
v2numOfFrames++;
- }
- else
+ } else
needToloopv2taglen = MP3_TAGv2_22_TXT_HEADER_LEN;
oneFrameLen = 0;
encodingOffSet = 0;
@@ -2149,7 +2090,7 @@ bool mm_file_id3tag_parse_v222(AvFileContentInfo* pInfo, unsigned char *buffer)
release_characterset_array(charset_array);
- if(taglen) {
+ if (taglen) {
return true;
} else {
return false;
@@ -2157,7 +2098,7 @@ bool mm_file_id3tag_parse_v222(AvFileContentInfo* pInfo, unsigned char *buffer)
}
EXPORT_API
-bool mm_file_id3tag_parse_v223(AvFileContentInfo* pInfo, unsigned char *buffer)
+bool mm_file_id3tag_parse_v223(AvFileContentInfo *pInfo, unsigned char *buffer)
{
unsigned long taglen = 0;
unsigned long needToloopv2taglen;
@@ -2167,10 +2108,11 @@ bool mm_file_id3tag_parse_v223(AvFileContentInfo* pInfo, unsigned char *buffer)
char CompTmp[5];
unsigned char *pExtContent = NULL;
unsigned long purelyFramelen = 0;
- int inx=0, encodingOffSet=0, realCpyFrameNum=0, checkImgMimeTypeMax=0, imgstartOffset=0, tmp = 0;
+ unsigned int encodingOffSet = 0;
+ int inx = 0, realCpyFrameNum = 0, checkImgMimeTypeMax = 0, imgstartOffset = 0, tmp = 0;
int textEncodingType = 0;
char **charset_array = NULL;
- char *MIME_PRFIX = "image/";
+ const char *MIME_PRFIX = "image/";
make_characterset_array(&charset_array);
@@ -2181,436 +2123,349 @@ bool mm_file_id3tag_parse_v223(AvFileContentInfo* pInfo, unsigned char *buffer)
curPos = MP3_TAGv2_HEADER_LEN;
#ifdef __MMFILE_TEST_MODE__
- debug_msg ("ID3tag v223--------------------------------------------------------------\n");
+ debug_msg("ID3tag v223--------------------------------------------------------------\n");
#endif
/* check Extended Header */
- if (buffer[5] & 0x40)
- {
+ if (buffer[5] & 0x40) {
/* if extended header exists, skip it*/
int extendedHeaderLen = (unsigned long)buffer[10] << 21 | (unsigned long)buffer[11] << 14 | (unsigned long)buffer[12] << 7 | (unsigned long)buffer[13];
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("--------------- extendedHeaderLen = %d\n", extendedHeaderLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("--------------- extendedHeaderLen = %d\n", extendedHeaderLen);
+#endif
curPos += extendedHeaderLen;
curPos += 4;
}
- if(needToloopv2taglen -MP3_TAGv2_23_TXT_HEADER_LEN > MP3_TAGv2_23_TXT_HEADER_LEN)
- {
+ if (needToloopv2taglen - MP3_TAGv2_23_TXT_HEADER_LEN > MP3_TAGv2_23_TXT_HEADER_LEN) {
v2numOfFrames = 1;
- while(needToloopv2taglen > MP3_TAGv2_23_TXT_HEADER_LEN)
- {
- if((buffer[curPos] < '0' || buffer[curPos] > 'Z') || (buffer[curPos+1] < '0' || buffer[curPos+1] > 'Z')
- || (buffer[curPos+2] < '0' || buffer[curPos+2] > 'Z')|| (buffer[curPos+3] < '0' || buffer[curPos+3] > 'Z'))
+ while (needToloopv2taglen > MP3_TAGv2_23_TXT_HEADER_LEN) {
+ if ((buffer[curPos] < '0' || buffer[curPos] > 'Z') || (buffer[curPos + 1] < '0' || buffer[curPos + 1] > 'Z')
+ || (buffer[curPos + 2] < '0' || buffer[curPos + 2] > 'Z') || (buffer[curPos + 3] < '0' || buffer[curPos + 3] > 'Z'))
break;
memcpy(CompTmp, &buffer[curPos], 4);
CompTmp[4] = 0;
oneFrameLen = MP3_TAGv2_23_TXT_HEADER_LEN;
- oneFrameLen += (unsigned long)buffer[4+curPos] << 24 | (unsigned long)buffer[5+curPos] << 16
- | (unsigned long)buffer[6+curPos] << 8 | (unsigned long)buffer[7+curPos];
-
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("----------------------------------------------------------------------------------------------------\n");
- #endif
-
- if(oneFrameLen > taglen-curPos)
+ oneFrameLen += (unsigned long)buffer[4 + curPos] << 24 | (unsigned long)buffer[5 + curPos] << 16
+ | (unsigned long)buffer[6 + curPos] << 8 | (unsigned long)buffer[7 + curPos];
+
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("----------------------------------------------------------------------------------------------------\n");
+#endif
+
+ if (oneFrameLen > taglen - curPos)
break;
purelyFramelen = oneFrameLen - MP3_TAGv2_23_TXT_HEADER_LEN;
- curPos +=MP3_TAGv2_23_TXT_HEADER_LEN;
+ curPos += MP3_TAGv2_23_TXT_HEADER_LEN;
- if(oneFrameLen > MP3_TAGv2_23_TXT_HEADER_LEN && purelyFramelen <= taglen-curPos)
- {
+ if (oneFrameLen > MP3_TAGv2_23_TXT_HEADER_LEN && purelyFramelen <= taglen - curPos) {
curPos += purelyFramelen;
- if( IS_ENCODEDBY_UTF16(buffer+(curPos-purelyFramelen)) )
- {
+ if (IS_ENCODEDBY_UTF16(buffer + (curPos - purelyFramelen))) {
encodingOffSet = 2;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "this text string(%s) encoded by UTF16 encodingOffSet(%d)\n", CompTmp, encodingOffSet);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("this text string(%s) encoded by UTF16 encodingOffSet(%d)\n", CompTmp, encodingOffSet);
+#endif
textEncodingType = AV_ID3V2_UTF16;
- }
- else if ( IS_ENCODEDBY_UTF16_R(buffer+(curPos-purelyFramelen)) )
- {
+ } else if (IS_ENCODEDBY_UTF16_R(buffer + (curPos - purelyFramelen))) {
encodingOffSet = 2;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "this text string(%s) encoded by UTF16 encodingOffSet(%d)\n", CompTmp, encodingOffSet);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("this text string(%s) encoded by UTF16 encodingOffSet(%d)\n", CompTmp, encodingOffSet);
+#endif
textEncodingType = AV_ID3V2_UTF16_BE;
- }
- else if( IS_ENCODEDBY_UTF16(buffer+(curPos-purelyFramelen+1)) )
- {
+ } else if (IS_ENCODEDBY_UTF16(buffer + (curPos - purelyFramelen + 1))) {
encodingOffSet = 3;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "this text string(%s) encoded by UTF16 encodingOffSet(%d)\n", CompTmp, encodingOffSet);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("this text string(%s) encoded by UTF16 encodingOffSet(%d)\n", CompTmp, encodingOffSet);
+#endif
textEncodingType = AV_ID3V2_UTF16;
- }
- else if ( IS_ENCODEDBY_UTF16_R(buffer+(curPos-purelyFramelen+1)) )
- {
+ } else if (IS_ENCODEDBY_UTF16_R(buffer + (curPos - purelyFramelen + 1))) {
encodingOffSet = 3;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "this text string(%s) encoded by UTF16 encodingOffSet(%d)\n", CompTmp, encodingOffSet);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("this text string(%s) encoded by UTF16 encodingOffSet(%d)\n", CompTmp, encodingOffSet);
+#endif
textEncodingType = AV_ID3V2_UTF16_BE;
- }
- else
- {
- if (buffer[curPos-purelyFramelen+encodingOffSet] == 0x00)
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("encodingOffset will be set to 1\n");
- #endif
-
- encodingOffSet=1;
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("Finding encodingOffset\n");
- #endif
+ } else {
+ if (buffer[curPos - purelyFramelen + encodingOffSet] == 0x00) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("encodingOffset will be set to 1\n");
+#endif
+
+ encodingOffSet = 1;
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Finding encodingOffset\n");
+#endif
- while((buffer[curPos-purelyFramelen+encodingOffSet] < 0x20) && (encodingOffSet < purelyFramelen)) // text string encoded by ISO-8859-1
+ while ((buffer[curPos - purelyFramelen + encodingOffSet] < 0x20) && (encodingOffSet < purelyFramelen)) /* text string encoded by ISO-8859-1 */
encodingOffSet++;
}
textEncodingType = AV_ID3V2_ISO_8859;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "this text string(%s) encoded by ISO-8859-1 encodingOffSet(%d)\n", CompTmp, encodingOffSet);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("this text string(%s) encoded by ISO-8859-1 encodingOffSet(%d)\n", CompTmp, encodingOffSet);
+#endif
}
- if(encodingOffSet < purelyFramelen)
- {
+ if (encodingOffSet < purelyFramelen) {
realCpyFrameNum = purelyFramelen - encodingOffSet;
- pExtContent = mmfile_malloc (realCpyFrameNum+3);
- memset(pExtContent, '\0', realCpyFrameNum+3);
+ pExtContent = mmfile_malloc(realCpyFrameNum + 3);
+ memset(pExtContent, '\0', realCpyFrameNum + 3);
if (textEncodingType != AV_ID3V2_UTF16 && textEncodingType != AV_ID3V2_UTF16_BE) {
- if (CompTmp[0] == 'T' ||(strcmp(CompTmp, "APIC")==0)) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "get the new text ecoding type\n");
- #endif
- textEncodingType = buffer[curPos-purelyFramelen+encodingOffSet -1];
+ if (CompTmp[0] == 'T' || (strcmp(CompTmp, "APIC") == 0)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("get the new text ecoding type\n");
+#endif
+ textEncodingType = buffer[curPos - purelyFramelen + encodingOffSet - 1];
}
}
if (textEncodingType > AV_ID3V2_MAX) {
- debug_msg ( "WRONG ENCOIDNG TYPE [%d], FRAME[%s]\n", textEncodingType, (char*)CompTmp);
+ debug_msg("WRONG ENCOIDNG TYPE [%d], FRAME[%s]\n", textEncodingType, (char *)CompTmp);
continue;
}
- memcpy(pExtContent, &buffer[curPos-purelyFramelen+encodingOffSet], purelyFramelen-encodingOffSet);
- if(realCpyFrameNum > 0)
- {
- if(strncmp((char *)CompTmp, "TIT2", 4) == 0 && pInfo->tagV2Info.bTitleMarked == false)
- {
- pInfo->pTitle = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->titleLen);
+ memcpy(pExtContent, &buffer[curPos - purelyFramelen + encodingOffSet], purelyFramelen - encodingOffSet);
+ if (realCpyFrameNum > 0) {
+ if (strncmp((char *)CompTmp, "TIT2", 4) == 0 && pInfo->tagV2Info.bTitleMarked == false) {
+ pInfo->pTitle = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->titleLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pTitle returned = (%s), pInfo->titleLen(%d)\n", pInfo->pTitle, pInfo->titleLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pTitle returned = (%s), pInfo->titleLen(%d)\n", pInfo->pTitle, pInfo->titleLen);
+#endif
pInfo->tagV2Info.bTitleMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TPE1", 4) == 0 && pInfo->tagV2Info.bArtistMarked == false)
- {
- pInfo->pArtist = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->artistLen);
+ } else if (strncmp((char *)CompTmp, "TPE1", 4) == 0 && pInfo->tagV2Info.bArtistMarked == false) {
+ pInfo->pArtist = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->artistLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pArtist returned = (%s), pInfo->artistLen(%d)\n", pInfo->pArtist, pInfo->artistLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pArtist returned = (%s), pInfo->artistLen(%d)\n", pInfo->pArtist, pInfo->artistLen);
+#endif
pInfo->tagV2Info.bArtistMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TPE2", 4) == 0 && pInfo->tagV2Info.bAlbum_ArtistMarked == false)
- {
- pInfo->pAlbum_Artist = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->album_artistLen);
+ } else if (strncmp((char *)CompTmp, "TPE2", 4) == 0 && pInfo->tagV2Info.bAlbum_ArtistMarked == false) {
+ pInfo->pAlbum_Artist = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->album_artistLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pAlbum_Artist returned = (%s), pInfo->album_artistLen(%d)\n", pInfo->pAlbum_Artist, pInfo->album_artistLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pAlbum_Artist returned = (%s), pInfo->album_artistLen(%d)\n", pInfo->pAlbum_Artist, pInfo->album_artistLen);
+#endif
pInfo->tagV2Info.bAlbum_ArtistMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TPE3", 4) == 0 && pInfo->tagV2Info.bConductorMarked == false)
- {
- pInfo->pConductor = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->conductorLen);
+ } else if (strncmp((char *)CompTmp, "TPE3", 4) == 0 && pInfo->tagV2Info.bConductorMarked == false) {
+ pInfo->pConductor = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->conductorLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pConductor returned = (%s), pInfo->conductorLen(%d)\n", pInfo->pConductor, pInfo->conductorLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pConductor returned = (%s), pInfo->conductorLen(%d)\n", pInfo->pConductor, pInfo->conductorLen);
+#endif
pInfo->tagV2Info.bConductorMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TALB", 4) == 0 && pInfo->tagV2Info.bAlbumMarked == false)
- {
- pInfo->pAlbum = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->albumLen);
+ } else if (strncmp((char *)CompTmp, "TALB", 4) == 0 && pInfo->tagV2Info.bAlbumMarked == false) {
+ pInfo->pAlbum = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->albumLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pAlbum returned = (%s), pInfo->albumLen(%d)\n", pInfo->pAlbum, pInfo->albumLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pAlbum returned = (%s), pInfo->albumLen(%d)\n", pInfo->pAlbum, pInfo->albumLen);
+#endif
pInfo->tagV2Info.bAlbumMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TYER", 4) == 0 && pInfo->tagV2Info.bYearMarked == false)
- {
- pInfo->pYear = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->yearLen);
+ } else if (strncmp((char *)CompTmp, "TYER", 4) == 0 && pInfo->tagV2Info.bYearMarked == false) {
+ pInfo->pYear = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->yearLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pYear returned = (%s), pInfo->yearLen(%d)\n", pInfo->pYear, pInfo->yearLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pYear returned = (%s), pInfo->yearLen(%d)\n", pInfo->pYear, pInfo->yearLen);
+#endif
pInfo->tagV2Info.bYearMarked = true;
- }
- else if(strncmp((char *)CompTmp, "COMM", 4) == 0 && pInfo->tagV2Info.bDescriptionMarked == false)
- {
- if(realCpyFrameNum > 3)
- {
+ } else if (strncmp((char *)CompTmp, "COMM", 4) == 0 && pInfo->tagV2Info.bDescriptionMarked == false) {
+ if (realCpyFrameNum > 3) {
realCpyFrameNum -= 3;
tmp = 3;
- //pExtContent[tmp+1] value should't have encoding value
- if(pExtContent[tmp] == 0x00 || pExtContent[tmp] == 0xFF|| pExtContent[tmp] == 0xFE)
- {
- if((IS_ENCODEDBY_UTF16(pExtContent+tmp) || IS_ENCODEDBY_UTF16_R(pExtContent+tmp)) && realCpyFrameNum > 2)
- {
- while((NEWLINE_OF_UTF16(pExtContent + tmp) || NEWLINE_OF_UTF16_R(pExtContent + tmp))&& realCpyFrameNum > 4)
- {
+ /*pExtContent[tmp+1] value should't have encoding value */
+ if (pExtContent[tmp] == 0x00 || pExtContent[tmp] == 0xFF || pExtContent[tmp] == 0xFE) {
+ if ((IS_ENCODEDBY_UTF16(pExtContent + tmp) || IS_ENCODEDBY_UTF16_R(pExtContent + tmp)) && realCpyFrameNum > 2) {
+ while ((NEWLINE_OF_UTF16(pExtContent + tmp) || NEWLINE_OF_UTF16_R(pExtContent + tmp)) && realCpyFrameNum > 4) {
realCpyFrameNum -= 4;
tmp += 4;
}
- if(IS_ENCODEDBY_UTF16(pExtContent+tmp) && (realCpyFrameNum > 2))
- {
+ if (IS_ENCODEDBY_UTF16(pExtContent + tmp) && (realCpyFrameNum > 2)) {
realCpyFrameNum -= 2;
tmp += 2;
textEncodingType = AV_ID3V2_UTF16;
- }
- else if (IS_ENCODEDBY_UTF16_R(pExtContent+tmp) && (realCpyFrameNum > 2))
- {
+ } else if (IS_ENCODEDBY_UTF16_R(pExtContent + tmp) && (realCpyFrameNum > 2)) {
realCpyFrameNum -= 2;
tmp += 2;
textEncodingType = AV_ID3V2_UTF16_BE;
- }
- else if(IS_ENCODEDBY_UTF16(pExtContent+tmp+1) && (realCpyFrameNum > 3))
- {
+ } else if (IS_ENCODEDBY_UTF16(pExtContent + tmp + 1) && (realCpyFrameNum > 3)) {
realCpyFrameNum -= 3;
tmp += 3;
textEncodingType = AV_ID3V2_UTF16;
- }
- else if (IS_ENCODEDBY_UTF16_R(pExtContent+tmp+1) && (realCpyFrameNum > 3))
- {
+ } else if (IS_ENCODEDBY_UTF16_R(pExtContent + tmp + 1) && (realCpyFrameNum > 3)) {
realCpyFrameNum -= 3;
tmp += 3;
textEncodingType = AV_ID3V2_UTF16_BE;
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pComment Never Get Here!!\n");
+#endif
}
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pComment Never Get Here!!\n");
- #endif
- }
- }
- else
- {
- while((pExtContent[tmp] < 0x20) && (tmp < realCpyFrameNum)) // text string encoded by ISO-8859-1
- {
- realCpyFrameNum --;
+ } else {
+ while ((pExtContent[tmp] < 0x20) && (tmp < realCpyFrameNum)) { /* text string encoded by ISO-8859-1 */
+ realCpyFrameNum--;
tmp++;
}
textEncodingType = AV_ID3V2_ISO_8859;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "tmp(%d) textEncodingType(%d), realCpyFrameNum(%d)\n", tmp, textEncodingType, realCpyFrameNum);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("tmp(%d) textEncodingType(%d), realCpyFrameNum(%d)\n", tmp, textEncodingType, realCpyFrameNum);
+#endif
- pInfo->pComment = mmfile_string_convert ((const char*)&pExtContent[tmp], realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->commentLen);
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "failed to get Comment Info tmp(%d), purelyFramelen - encodingOffSet(%d)\n", tmp, purelyFramelen - encodingOffSet);
- #endif
+ pInfo->pComment = mmfile_string_convert((const char *)&pExtContent[tmp], realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->commentLen);
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("failed to get Comment Info tmp(%d), purelyFramelen - encodingOffSet(%d)\n", tmp, purelyFramelen - encodingOffSet);
+#endif
pInfo->commentLen = 0;
}
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Description info too small to parse realCpyFrameNum(%d)\n", realCpyFrameNum);
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Description info too small to parse realCpyFrameNum(%d)\n", realCpyFrameNum);
+#endif
pInfo->commentLen = 0;
}
tmp = 0;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pComment returned = (%s), pInfo->commentLen(%d)\n", pInfo->pComment, pInfo->commentLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pComment returned = (%s), pInfo->commentLen(%d)\n", pInfo->pComment, pInfo->commentLen);
+#endif
pInfo->tagV2Info.bDescriptionMarked = true;
- }
- else if(strncmp((char *)CompTmp, "SYLT", 4) == 0 && pInfo->tagV2Info.bSyncLyricsMarked == false)
- {
+ } else if (strncmp((char *)CompTmp, "SYLT", 4) == 0 && pInfo->tagV2Info.bSyncLyricsMarked == false) {
int idx = 0;
int copy_len = 0;
int copy_start_pos = tmp;
AvSynclyricsInfo *synclyrics_info = NULL;
GList *synclyrics_info_list = NULL;
-
- if(realCpyFrameNum > 5)
- {
+
+ if (realCpyFrameNum > 5) {
realCpyFrameNum -= 5;
tmp = 5;
- //pExtContent[tmp+1] value should't have encoding value
- if(pExtContent[tmp] == 0x00 || pExtContent[tmp] == 0xFF|| pExtContent[tmp] == 0xFE)
- {
- if((IS_ENCODEDBY_UTF16(pExtContent+tmp) || IS_ENCODEDBY_UTF16_R(pExtContent+tmp)) && realCpyFrameNum > 2)
- {
- while((NEWLINE_OF_UTF16(pExtContent + tmp) || NEWLINE_OF_UTF16_R(pExtContent + tmp))&& realCpyFrameNum > 4)
- {
+ /*pExtContent[tmp+1] value should't have encoding value */
+ if (pExtContent[tmp] == 0x00 || pExtContent[tmp] == 0xFF || pExtContent[tmp] == 0xFE) {
+ if ((IS_ENCODEDBY_UTF16(pExtContent + tmp) || IS_ENCODEDBY_UTF16_R(pExtContent + tmp)) && realCpyFrameNum > 2) {
+ while ((NEWLINE_OF_UTF16(pExtContent + tmp) || NEWLINE_OF_UTF16_R(pExtContent + tmp)) && realCpyFrameNum > 4) {
realCpyFrameNum -= 4;
tmp += 4;
}
- if(IS_ENCODEDBY_UTF16(pExtContent+tmp) && (realCpyFrameNum > 2))
- {
+ if (IS_ENCODEDBY_UTF16(pExtContent + tmp) && (realCpyFrameNum > 2)) {
realCpyFrameNum -= 2;
tmp += 2;
textEncodingType = AV_ID3V2_UTF16;
- }
- else if (IS_ENCODEDBY_UTF16_R(pExtContent+tmp) && (realCpyFrameNum > 2))
- {
+ } else if (IS_ENCODEDBY_UTF16_R(pExtContent + tmp) && (realCpyFrameNum > 2)) {
realCpyFrameNum -= 2;
tmp += 2;
textEncodingType = AV_ID3V2_UTF16_BE;
- }
- else if(IS_ENCODEDBY_UTF16(pExtContent+tmp+1) && (realCpyFrameNum > 3))
- {
+ } else if (IS_ENCODEDBY_UTF16(pExtContent + tmp + 1) && (realCpyFrameNum > 3)) {
realCpyFrameNum -= 3;
tmp += 3;
textEncodingType = AV_ID3V2_UTF16;
- }
- else if (IS_ENCODEDBY_UTF16_R(pExtContent+tmp+1) && (realCpyFrameNum > 3))
- {
+ } else if (IS_ENCODEDBY_UTF16_R(pExtContent + tmp + 1) && (realCpyFrameNum > 3)) {
realCpyFrameNum -= 3;
tmp += 3;
textEncodingType = AV_ID3V2_UTF16_BE;
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pSyncLyrics Never Get Here!!\n");
+#endif
}
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pSyncLyrics Never Get Here!!\n");
- #endif
- }
- }
- else
- {
- while((pExtContent[tmp] < 0x20) && (tmp < realCpyFrameNum)) // text string encoded by ISO-8859-1
- {
- realCpyFrameNum --;
+ } else {
+ while ((pExtContent[tmp] < 0x20) && (tmp < realCpyFrameNum)) { /* text string encoded by ISO-8859-1 */
+ realCpyFrameNum--;
tmp++;
}
textEncodingType = AV_ID3V2_ISO_8859;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "tmp(%d) textEncodingType(%d), realCpyFrameNum(%d)\n", tmp, textEncodingType, realCpyFrameNum);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("tmp(%d) textEncodingType(%d), realCpyFrameNum(%d)\n", tmp, textEncodingType, realCpyFrameNum);
+#endif
- if(realCpyFrameNum < MMFILE_SYNC_LYRIC_INFO_MIN_LEN)
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "failed to get Synchronised lyrics Info realCpyFramNum(%d)\n", realCpyFrameNum);
- #endif
+ if (realCpyFrameNum < MMFILE_SYNC_LYRIC_INFO_MIN_LEN) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("failed to get Synchronised lyrics Info realCpyFramNum(%d)\n", realCpyFrameNum);
+#endif
pInfo->syncLyricsNum = 0;
- }
- else
- {
- if(textEncodingType == AV_ID3V2_UTF16)
- {
- debug_warning ("[AV_ID3V2_UTF16] not implemented\n");
- }
- else if (textEncodingType == AV_ID3V2_UTF16_BE)
- {
- debug_warning ("[AV_ID3V2_UTF16_BE] not implemented\n");
- }
- else
- {
- for(idx = 0; idx < realCpyFrameNum; idx++)
- {
- if(pExtContent[tmp+idx] == 0x00)
- {
+ } else {
+ if (textEncodingType == AV_ID3V2_UTF16) {
+ debug_warning("[AV_ID3V2_UTF16] not implemented\n");
+ } else if (textEncodingType == AV_ID3V2_UTF16_BE) {
+ debug_warning("[AV_ID3V2_UTF16_BE] not implemented\n");
+ } else {
+ for (idx = 0; idx < realCpyFrameNum; idx++) {
+ if (pExtContent[tmp + idx] == 0x00) {
synclyrics_info = (AvSynclyricsInfo *)malloc(sizeof(AvSynclyricsInfo));
- if(synclyrics_info != NULL) {
- if(textEncodingType == AV_ID3V2_UTF8) {
- synclyrics_info->lyric_info= mmfile_malloc(copy_len+1);
- if(synclyrics_info->lyric_info != NULL) {
- memset(synclyrics_info->lyric_info, 0, copy_len+1);
- memcpy(synclyrics_info->lyric_info, pExtContent+copy_start_pos, copy_len);
- synclyrics_info->lyric_info[copy_len+1] = '\0';
+ if (synclyrics_info != NULL) {
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ synclyrics_info->lyric_info = mmfile_malloc(copy_len + 1);
+ if (synclyrics_info->lyric_info != NULL) {
+ memset(synclyrics_info->lyric_info, 0, copy_len + 1);
+ memcpy(synclyrics_info->lyric_info, pExtContent + copy_start_pos, copy_len);
+ synclyrics_info->lyric_info[copy_len + 1] = '\0';
}
- }
- else {
- synclyrics_info->lyric_info = mmfile_string_convert ((const char*)&pExtContent[copy_start_pos], copy_len, "UTF-8", charset_array[AV_ID3V2_ISO_8859], NULL, NULL);
+ } else {
+ synclyrics_info->lyric_info = mmfile_string_convert((const char *)&pExtContent[copy_start_pos], copy_len, "UTF-8", charset_array[AV_ID3V2_ISO_8859], NULL, NULL);
}
- synclyrics_info->time_info= (unsigned long)pExtContent[tmp+idx+1] << 24 | (unsigned long)pExtContent[tmp+idx+2] << 16 | (unsigned long)pExtContent[tmp+idx+3] << 8 | (unsigned long)pExtContent[tmp+idx+4];
+ synclyrics_info->time_info = (unsigned long)pExtContent[tmp + idx + 1] << 24 | (unsigned long)pExtContent[tmp + idx + 2] << 16 | (unsigned long)pExtContent[tmp + idx + 3] << 8 | (unsigned long)pExtContent[tmp + idx + 4];
idx += 4;
copy_start_pos = tmp + idx + 1;
- #ifdef __MMFILE_TEST_MODE__
+#ifdef __MMFILE_TEST_MODE__
debug_msg("[%d][%s] idx[%d], copy_len[%d] copy_start_pos[%d]", synclyrics_info->time_info, synclyrics_info->lyric_info, idx, copy_len, copy_start_pos);
- #endif
+#endif
copy_len = 0;
synclyrics_info_list = g_list_append(synclyrics_info_list, synclyrics_info);
}
}
- copy_len ++;
+ copy_len++;
}
pInfo->pSyncLyrics = synclyrics_info_list;
pInfo->syncLyricsNum = g_list_length(pInfo->pSyncLyrics);
}
}
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "failed to get Synchronised lyrics Info tmp(%d), purelyFramelen - encodingOffSet(%d)\n", tmp, purelyFramelen - encodingOffSet);
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("failed to get Synchronised lyrics Info tmp(%d), purelyFramelen - encodingOffSet(%d)\n", tmp, purelyFramelen - encodingOffSet);
+#endif
pInfo->syncLyricsNum = 0;
}
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Synchronised lyrics too small to parse realCpyFrameNum(%d)\n", realCpyFrameNum);
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Synchronised lyrics too small to parse realCpyFrameNum(%d)\n", realCpyFrameNum);
+#endif
pInfo->syncLyricsNum = 0;
}
tmp = 0;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pSyncLyrics returned = (%s), pInfo->syncLyricsNum(%d)\n", pInfo->pSyncLyrics, pInfo->syncLyricsNum);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pSyncLyrics returned = (%s), pInfo->syncLyricsNum(%d)\n", pInfo->pSyncLyrics, pInfo->syncLyricsNum);
+#endif
pInfo->tagV2Info.bSyncLyricsMarked = true;
- }
- else if(strncmp((char *)CompTmp, "USLT", 4) == 0 && pInfo->tagV2Info.bUnsyncLyricsMarked == false)
- {
- char *lang_info = strndup((char*)pExtContent, 3);
+ } else if (strncmp((char *)CompTmp, "USLT", 4) == 0 && pInfo->tagV2Info.bUnsyncLyricsMarked == false) {
+ char *lang_info = strndup((char *)pExtContent, 3);
- if(realCpyFrameNum > 3)
- {
+ if (realCpyFrameNum > 3) {
realCpyFrameNum -= 3;
tmp = 3;
/*find start of lyrics */
- while(1) {
+ while (1) {
if (pExtContent[tmp] == 0x00) {
- if (pExtContent[tmp+1] == 0x00) {
- realCpyFrameNum -=2;
- tmp +=2;
+ if (pExtContent[tmp + 1] == 0x00) {
+ realCpyFrameNum -= 2;
+ tmp += 2;
}
break;
} else {
@@ -2619,139 +2474,118 @@ bool mm_file_id3tag_parse_v223(AvFileContentInfo* pInfo, unsigned char *buffer)
}
}
- //pExtContent[tmp+1] value should't have encoding value
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "tpExtContent[%d] %x\n", tmp, pExtContent[tmp]);
- #endif
- if(pExtContent[tmp] == 0x00 || pExtContent[tmp] == 0xFF|| pExtContent[tmp] == 0xFE)
- {
- if((IS_ENCODEDBY_UTF16(pExtContent+tmp) || IS_ENCODEDBY_UTF16_R(pExtContent+tmp)) && realCpyFrameNum > 2)
- {
- while((NEWLINE_OF_UTF16(pExtContent + tmp) || NEWLINE_OF_UTF16_R(pExtContent + tmp))&& realCpyFrameNum > 4)
- {
+ /*pExtContent[tmp+1] value should't have encoding value */
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("tpExtContent[%d] %x\n", tmp, pExtContent[tmp]);
+#endif
+ if (pExtContent[tmp] == 0x00 || pExtContent[tmp] == 0xFF || pExtContent[tmp] == 0xFE) {
+ if ((IS_ENCODEDBY_UTF16(pExtContent + tmp) || IS_ENCODEDBY_UTF16_R(pExtContent + tmp)) && realCpyFrameNum > 2) {
+ while ((NEWLINE_OF_UTF16(pExtContent + tmp) || NEWLINE_OF_UTF16_R(pExtContent + tmp)) && realCpyFrameNum > 4) {
realCpyFrameNum -= 4;
tmp += 4;
}
- if(IS_ENCODEDBY_UTF16(pExtContent+tmp) && (realCpyFrameNum > 2))
- {
+ if (IS_ENCODEDBY_UTF16(pExtContent + tmp) && (realCpyFrameNum > 2)) {
realCpyFrameNum -= 2;
tmp += 2;
textEncodingType = AV_ID3V2_UTF16;
- }
- else if (IS_ENCODEDBY_UTF16_R(pExtContent+tmp) && (realCpyFrameNum > 2))
- {
+ } else if (IS_ENCODEDBY_UTF16_R(pExtContent + tmp) && (realCpyFrameNum > 2)) {
realCpyFrameNum -= 2;
tmp += 2;
textEncodingType = AV_ID3V2_UTF16_BE;
- }
- else if(IS_ENCODEDBY_UTF16(pExtContent+tmp+1) && (realCpyFrameNum > 3))
- {
+ } else if (IS_ENCODEDBY_UTF16(pExtContent + tmp + 1) && (realCpyFrameNum > 3)) {
realCpyFrameNum -= 3;
tmp += 3;
textEncodingType = AV_ID3V2_UTF16;
- }
- else if (IS_ENCODEDBY_UTF16_R(pExtContent+tmp+1) && (realCpyFrameNum > 3))
- {
+ } else if (IS_ENCODEDBY_UTF16_R(pExtContent + tmp + 1) && (realCpyFrameNum > 3)) {
realCpyFrameNum -= 3;
tmp += 3;
textEncodingType = AV_ID3V2_UTF16_BE;
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pUnsyncLyrics Never Get Here!!\n");
+#endif
}
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pUnsyncLyrics Never Get Here!!\n");
- #endif
- }
- }
- else
- {
- while((pExtContent[tmp] < 0x20) && (tmp < realCpyFrameNum)) // text string encoded by ISO-8859-1
- {
- realCpyFrameNum --;
+ } else {
+ while ((pExtContent[tmp] < 0x20) && (tmp < realCpyFrameNum)) { /* text string encoded by ISO-8859-1 */
+ realCpyFrameNum--;
tmp++;
}
textEncodingType = AV_ID3V2_ISO_8859;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "tmp(%d) textEncodingType(%d), realCpyFrameNum(%d)\n", tmp, textEncodingType, realCpyFrameNum);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("tmp(%d) textEncodingType(%d), realCpyFrameNum(%d)\n", tmp, textEncodingType, realCpyFrameNum);
+#endif
char *char_set = NULL;
if (textEncodingType == AV_ID3V2_ISO_8859) {
if (lang_info != NULL && !strcasecmp(lang_info, "KOR")) {
char_set = strdup("EUC-KR");
} else {
- char_set = mmfile_get_charset((const char*)&pExtContent[tmp]);
+ char_set = mmfile_get_charset((const char *)&pExtContent[tmp]);
}
+ _FREE_EX(lang_info);
}
if (char_set == NULL) {
- pInfo->pUnsyncLyrics = mmfile_string_convert ((const char*)&pExtContent[tmp], realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->unsynclyricsLen);
+ pInfo->pUnsyncLyrics = mmfile_string_convert((const char *)&pExtContent[tmp], realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->unsynclyricsLen);
} else {
- pInfo->pUnsyncLyrics = mmfile_string_convert ((const char*)&pExtContent[tmp], realCpyFrameNum, "UTF-8", char_set, NULL, (unsigned int*)&pInfo->unsynclyricsLen);
+ pInfo->pUnsyncLyrics = mmfile_string_convert((const char *)&pExtContent[tmp], realCpyFrameNum, "UTF-8", char_set, NULL, (unsigned int *)&pInfo->unsynclyricsLen);
_FREE_EX(char_set);
}
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "failed to get Unsynchronised lyrics Info tmp(%d), purelyFramelen - encodingOffSet(%d)\n", tmp, purelyFramelen - encodingOffSet);
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("failed to get Unsynchronised lyrics Info tmp(%d), purelyFramelen - encodingOffSet(%d)\n", tmp, purelyFramelen - encodingOffSet);
+#endif
pInfo->unsynclyricsLen = 0;
}
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Unsynchronised lyrics too small to parse realCpyFrameNum(%d)\n", realCpyFrameNum);
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Unsynchronised lyrics too small to parse realCpyFrameNum(%d)\n", realCpyFrameNum);
+#endif
pInfo->unsynclyricsLen = 0;
}
tmp = 0;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pUnsyncLyrics returned = (%s), pInfo->unsynclyricsLen(%d)\n", pInfo->pUnsyncLyrics, pInfo->unsynclyricsLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pUnsyncLyrics returned = (%s), pInfo->unsynclyricsLen(%d)\n", pInfo->pUnsyncLyrics, pInfo->unsynclyricsLen);
+#endif
pInfo->tagV2Info.bUnsyncLyricsMarked = true;
mmfile_free(lang_info);
- }
- else if(strncmp((char *)CompTmp, "TCON", 4) == 0 && pInfo->tagV2Info.bGenreMarked == false)
- {
- pInfo->pGenre = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->genreLen);
+ } else if (strncmp((char *)CompTmp, "TCON", 4) == 0 && pInfo->tagV2Info.bGenreMarked == false) {
+ pInfo->pGenre = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->genreLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pGenre returned = (%s), pInfo->genreLen(%d)\n", pInfo->pGenre, pInfo->genreLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pGenre returned = (%s), pInfo->genreLen(%d)\n", pInfo->pGenre, pInfo->genreLen);
+#endif
- if((pInfo->pGenre != NULL) && (pInfo->genreLen > 0)) {
+ if ((pInfo->pGenre != NULL) && (pInfo->genreLen > 0)) {
bool ret = FALSE;
int int_genre = -1;
ret = is_numeric(pInfo->pGenre, pInfo->genreLen);
- if(ret == TRUE) {
- sscanf( pInfo->pGenre, "%d", &int_genre);
- #ifdef __MMFILE_TEST_MODE__
+ if (ret == TRUE) {
+ sscanf(pInfo->pGenre, "%d", &int_genre);
+#ifdef __MMFILE_TEST_MODE__
debug_msg("genre information is inteager [%d]\n", int_genre);
- #endif
+#endif
- //Change int to string
- if((0 <= int_genre) && (int_genre < GENRE_COUNT-1)) {
+ /*Change int to string */
+ if ((0 <= int_genre) && (int_genre < GENRE_COUNT - 1)) {
/*save genreinfo like "(123)". mm_file_id3tag_restore_content_info convert it to string*/
- char tmp_genre[6] = {0,}; /*ex. "(123)+NULL"*/
+ char tmp_genre[6] = {0, }; /*ex. "(123)+NULL"*/
int tmp_genre_len = 0;
- memset (tmp_genre, 0, 6);
+ memset(tmp_genre, 0, 6);
snprintf(tmp_genre, sizeof(tmp_genre), "(%d)", int_genre);
tmp_genre_len = strlen(tmp_genre);
- if(tmp_genre_len > 0) {
- if(pInfo->pGenre) _FREE_EX(pInfo->pGenre);
- pInfo->pGenre = mmfile_malloc (sizeof(char) * (tmp_genre_len + 1) );
- if (pInfo->pGenre)
- {
+ if (tmp_genre_len > 0) {
+ if (pInfo->pGenre) _FREE_EX(pInfo->pGenre);
+ pInfo->pGenre = mmfile_malloc(sizeof(char) * (tmp_genre_len + 1));
+ if (pInfo->pGenre) {
strncpy(pInfo->pGenre, tmp_genre, tmp_genre_len);
pInfo->pGenre[tmp_genre_len] = 0;
}
@@ -2761,92 +2595,72 @@ bool mm_file_id3tag_parse_v223(AvFileContentInfo* pInfo, unsigned char *buffer)
}
pInfo->tagV2Info.bGenreMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TRCK", 4) == 0 && pInfo->tagV2Info.bTrackNumMarked == false)
- {
- pInfo->pTrackNum = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->tracknumLen);
+ } else if (strncmp((char *)CompTmp, "TRCK", 4) == 0 && pInfo->tagV2Info.bTrackNumMarked == false) {
+ pInfo->pTrackNum = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->tracknumLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pTrackNum returned = (%s), pInfo->tracknumLen(%d)\n", pInfo->pTrackNum, pInfo->tracknumLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pTrackNum returned = (%s), pInfo->tracknumLen(%d)\n", pInfo->pTrackNum, pInfo->tracknumLen);
+#endif
pInfo->tagV2Info.bTrackNumMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TENC", 4) == 0 && pInfo->tagV2Info.bEncByMarked == false)
- {
- pInfo->pEncBy = mmfile_string_convert ((char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->encbyLen);
+ } else if (strncmp((char *)CompTmp, "TENC", 4) == 0 && pInfo->tagV2Info.bEncByMarked == false) {
+ pInfo->pEncBy = mmfile_string_convert((char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->encbyLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pEncBy returned = (%s), pInfo->encbyLen(%d)\n", pInfo->pEncBy, pInfo->encbyLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pEncBy returned = (%s), pInfo->encbyLen(%d)\n", pInfo->pEncBy, pInfo->encbyLen);
+#endif
pInfo->tagV2Info.bEncByMarked = true;
- }
- else if(strncmp((char *)CompTmp, "WXXX", 4) == 0 && pInfo->tagV2Info.bURLMarked == false)
- {
- pInfo->pURL = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->urlLen);
+ } else if (strncmp((char *)CompTmp, "WXXX", 4) == 0 && pInfo->tagV2Info.bURLMarked == false) {
+ pInfo->pURL = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->urlLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pURL returned = (%s), pInfo->urlLen(%d)\n", pInfo->pURL, pInfo->urlLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pURL returned = (%s), pInfo->urlLen(%d)\n", pInfo->pURL, pInfo->urlLen);
+#endif
pInfo->tagV2Info.bURLMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TCOP", 4) == 0 && pInfo->tagV2Info.bCopyRightMarked == false)
- {
- pInfo->pCopyright = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->copyrightLen);
+ } else if (strncmp((char *)CompTmp, "TCOP", 4) == 0 && pInfo->tagV2Info.bCopyRightMarked == false) {
+ pInfo->pCopyright = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->copyrightLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pCopyright returned = (%s), pInfo->copyrightLen(%d)\n", pInfo->pCopyright, pInfo->copyrightLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pCopyright returned = (%s), pInfo->copyrightLen(%d)\n", pInfo->pCopyright, pInfo->copyrightLen);
+#endif
pInfo->tagV2Info.bCopyRightMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TOPE", 4) == 0 && pInfo->tagV2Info.bOriginArtistMarked == false)
- {
- pInfo->pOriginArtist = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->originartistLen);
+ } else if (strncmp((char *)CompTmp, "TOPE", 4) == 0 && pInfo->tagV2Info.bOriginArtistMarked == false) {
+ pInfo->pOriginArtist = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->originartistLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pOriginArtist returned = (%s), pInfo->originartistLen(%d)\n", pInfo->pOriginArtist, pInfo->originartistLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pOriginArtist returned = (%s), pInfo->originartistLen(%d)\n", pInfo->pOriginArtist, pInfo->originartistLen);
+#endif
pInfo->tagV2Info.bOriginArtistMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TCOM", 4) == 0 && pInfo->tagV2Info.bComposerMarked == false)
- {
- pInfo->pComposer = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->composerLen);
+ } else if (strncmp((char *)CompTmp, "TCOM", 4) == 0 && pInfo->tagV2Info.bComposerMarked == false) {
+ pInfo->pComposer = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->composerLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pComposer returned = (%s), pInfo->composerLen(%d)\n", pInfo->pComposer, pInfo->composerLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pComposer returned = (%s), pInfo->composerLen(%d)\n", pInfo->pComposer, pInfo->composerLen);
+#endif
pInfo->tagV2Info.bComposerMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TRDA", 4) == 0 && pInfo->tagV2Info.bRecDateMarked== false)
- {
- pInfo->pRecDate = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->recdateLen);
+ } else if (strncmp((char *)CompTmp, "TRDA", 4) == 0 && pInfo->tagV2Info.bRecDateMarked == false) {
+ pInfo->pRecDate = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->recdateLen);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pRecDate returned = (%s), pInfo->recdateLen(%d)\n", pInfo->pRecDate, pInfo->recdateLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pRecDate returned = (%s), pInfo->recdateLen(%d)\n", pInfo->pRecDate, pInfo->recdateLen);
+#endif
pInfo->tagV2Info.bRecDateMarked = true;
- }
- else if(strncmp((char *)CompTmp, "APIC", 4) == 0 && pInfo->tagV2Info.bImageMarked == false && realCpyFrameNum <= 2000000)
- {
- debug_msg ( "text encoding %d \n", textEncodingType);
+ } else if (strncmp((char *)CompTmp, "APIC", 4) == 0 && pInfo->tagV2Info.bImageMarked == false && realCpyFrameNum <= 2000000) {
+ debug_msg("text encoding %d \n", textEncodingType);
- if(pExtContent[0] != '\0')
- {
- for(inx = 0; inx < MP3_ID3_IMAGE_MIME_TYPE_MAX_LENGTH-1; inx++)
- pInfo->imageInfo.imageMIMEType[inx] = '\0';//ini mimetype variable
+ if (pExtContent[0] != '\0') {
+ for (inx = 0; inx < MP3_ID3_IMAGE_MIME_TYPE_MAX_LENGTH - 1; inx++)
+ pInfo->imageInfo.imageMIMEType[inx] = '\0';/*ini mimetype variable */
- while((checkImgMimeTypeMax < MP3_ID3_IMAGE_MIME_TYPE_MAX_LENGTH-1) && pExtContent[checkImgMimeTypeMax] != '\0')
- {
+ while ((checkImgMimeTypeMax < MP3_ID3_IMAGE_MIME_TYPE_MAX_LENGTH - 1) && pExtContent[checkImgMimeTypeMax] != '\0') {
pInfo->imageInfo.imageMIMEType[checkImgMimeTypeMax] = pExtContent[checkImgMimeTypeMax];
checkImgMimeTypeMax++;
}
pInfo->imageInfo.imgMimetypeLen = checkImgMimeTypeMax;
- }
- else
- {
+ } else {
pInfo->imageInfo.imgMimetypeLen = 0;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "APIC image's not included to MIME type\n");
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("APIC image's not included to MIME type\n");
+#endif
}
imgstartOffset += checkImgMimeTypeMax;
@@ -2857,35 +2671,30 @@ bool mm_file_id3tag_parse_v223(AvFileContentInfo* pInfo, unsigned char *buffer)
continue;
}
- if((pExtContent[imgstartOffset] == '\0') && (realCpyFrameNum - imgstartOffset > 0))
- {
- imgstartOffset++;//endofMIME(1byte)
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "after scaning Mime type imgstartOffset(%d) value!\n", imgstartOffset);
- #endif
+ if ((pExtContent[imgstartOffset] == '\0') && (realCpyFrameNum - imgstartOffset > 0)) {
+ imgstartOffset++;/*endofMIME(1byte) */
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("after scaning Mime type imgstartOffset(%d) value!\n", imgstartOffset);
+#endif
- if(pExtContent[imgstartOffset] < AV_ID3V2_PICTURE_TYPE_MAX)
- {
+ if (pExtContent[imgstartOffset] < AV_ID3V2_PICTURE_TYPE_MAX) {
pInfo->imageInfo.pictureType = pExtContent[imgstartOffset];
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("APIC image has invalid picture type(0x%x)\n", pExtContent[imgstartOffset]);
+#endif
}
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "APIC image has invalid picture type(0x%x)\n", pExtContent[imgstartOffset]);
- #endif
- }
- imgstartOffset++;//PictureType(1byte)
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "after scaning PictureType imgstartOffset(%d) value!\n", imgstartOffset);
- #endif
+ imgstartOffset++;/*PictureType(1byte) */
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("after scaning PictureType imgstartOffset(%d) value!\n", imgstartOffset);
+#endif
- if(pExtContent[imgstartOffset] != 0x0)
- {
+ if (pExtContent[imgstartOffset] != 0x0) {
int cur_pos = 0;
int dis_len = 0;
int new_dis_len = 0;
- char jpg_sign[3] = {0xff, 0xd8, 0xff};
- char png_sign[8] = {0x80, 0x50, 0x4e, 0x47,0x0d, 0x0a, 0x1a, 0x0a};
+ unsigned char jpg_sign[3] = {0xff, 0xd8, 0xff};
+ unsigned char png_sign[8] = {0x80, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a};
char *tmp_desc = NULL;
while (1) {
@@ -2896,15 +2705,15 @@ bool mm_file_id3tag_parse_v223(AvFileContentInfo* pInfo, unsigned char *buffer)
}
/*check end of image description*/
if ((pExtContent[imgstartOffset + cur_pos + 1] == jpg_sign[0]) ||
- (pExtContent[imgstartOffset + cur_pos + 1] == png_sign[0])) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "length of description (%d)", cur_pos);
- #endif
+ (pExtContent[imgstartOffset + cur_pos + 1] == png_sign[0])) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("length of description (%d)", cur_pos);
+#endif
break;
}
}
- cur_pos ++;
+ cur_pos++;
}
dis_len = cur_pos + 1;
@@ -2913,116 +2722,97 @@ bool mm_file_id3tag_parse_v223(AvFileContentInfo* pInfo, unsigned char *buffer)
memcpy(tmp_desc, pExtContent + imgstartOffset, dis_len);
/*convert description*/
- pInfo->imageInfo.imageDescription = mmfile_string_convert (tmp_desc, dis_len, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&new_dis_len);
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "new_desc %s(%d)\n", pInfo->imageInfo.imageDescription, new_dis_len);
- #endif
+ pInfo->imageInfo.imageDescription = mmfile_string_convert(tmp_desc, dis_len, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&new_dis_len);
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("new_desc %s(%d)\n", pInfo->imageInfo.imageDescription, new_dis_len);
+#endif
mmfile_free(tmp_desc);
pInfo->imageInfo.imgDesLen = new_dis_len; /**/
imgstartOffset += cur_pos;
- }
- else
- {
- pInfo->imageInfo.imgDesLen= 0;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "APIC image's not included to Description!!!\n");
- #endif
+ } else {
+ pInfo->imageInfo.imgDesLen = 0;
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("APIC image's not included to Description!!!\n");
+#endif
}
- if((pExtContent[imgstartOffset] == '\0') && (realCpyFrameNum - imgstartOffset > 0))
- {
- imgstartOffset ++; // endofDesceriptionType(1byte)
+ if ((pExtContent[imgstartOffset] == '\0') && (realCpyFrameNum - imgstartOffset > 0)) {
+ imgstartOffset++; /* endofDesceriptionType(1byte) */
- while(pExtContent[imgstartOffset] == '\0') //some content has useless '\0' in front of picture data
- {
- imgstartOffset ++;
+ while (pExtContent[imgstartOffset] == '\0') { /*some content has useless '\0' in front of picture data */
+ imgstartOffset++;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "after scaning imgDescription imgstartOffset(%d) value!\n", imgstartOffset);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("after scaning imgDescription imgstartOffset(%d) value!\n", imgstartOffset);
+#endif
- if(realCpyFrameNum - imgstartOffset > 0)
- {
+ if (realCpyFrameNum - imgstartOffset > 0) {
pInfo->imageInfo.imageLen = realCpyFrameNum - imgstartOffset;
- pInfo->imageInfo.pImageBuf = mmfile_malloc (pInfo->imageInfo.imageLen + 1);
+ pInfo->imageInfo.pImageBuf = mmfile_malloc(pInfo->imageInfo.imageLen + 1);
- if(pInfo->imageInfo.pImageBuf != NULL ) {
- memcpy(pInfo->imageInfo.pImageBuf, pExtContent+ imgstartOffset, pInfo->imageInfo.imageLen);
+ if (pInfo->imageInfo.pImageBuf != NULL) {
+ memcpy(pInfo->imageInfo.pImageBuf, pExtContent + imgstartOffset, pInfo->imageInfo.imageLen);
pInfo->imageInfo.pImageBuf[pInfo->imageInfo.imageLen] = 0;
}
- if(IS_INCLUDE_URL(pInfo->imageInfo.imageMIMEType))
- pInfo->imageInfo.bURLInfo = true; //if mimetype is "-->", image date has an URL
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "No APIC image!! realCpyFrameNum(%d) - imgstartOffset(%d)\n", realCpyFrameNum, imgstartOffset);
- #endif
+ if (IS_INCLUDE_URL(pInfo->imageInfo.imageMIMEType))
+ pInfo->imageInfo.bURLInfo = true; /*if mimetype is "-->", image date has an URL */
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("No APIC image!! realCpyFrameNum(%d) - imgstartOffset(%d)\n", realCpyFrameNum, imgstartOffset);
+#endif
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->imageInfo.imageLen(%d), imgstartOffset(%d)!\n", pInfo->imageInfo.imageLen, imgstartOffset);
- #endif
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pExtContent[imgstartOffset](%d) value should setted NULL value for end of description! realCpyFrameNum - imgstartOffset(%d)\n",
- pExtContent[imgstartOffset], realCpyFrameNum - imgstartOffset);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->imageInfo.imageLen(%d), imgstartOffset(%d)!\n", pInfo->imageInfo.imageLen, imgstartOffset);
+#endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pExtContent[imgstartOffset](%d) value should setted NULL value for end of description! realCpyFrameNum - imgstartOffset(%d)\n",
+ pExtContent[imgstartOffset], realCpyFrameNum - imgstartOffset);
+#endif
}
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pExtContent[imgstartOffset](%d) value should setted NULL value for end of mimetype! realCpyFrameNum - imgstartOffset(%d)\n",
- pExtContent[imgstartOffset], realCpyFrameNum - imgstartOffset);
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pExtContent[imgstartOffset](%d) value should setted NULL value for end of mimetype! realCpyFrameNum - imgstartOffset(%d)\n",
+ pExtContent[imgstartOffset], realCpyFrameNum - imgstartOffset);
+#endif
}
checkImgMimeTypeMax = 0;
inx = 0;
imgstartOffset = 0;
- pInfo->tagV2Info.bImageMarked= true;
+ pInfo->tagV2Info.bImageMarked = true;
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "CompTmp(%s) This Frame ID currently not Supports!!\n", CompTmp);
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("CompTmp(%s) This Frame ID currently not Supports!!\n", CompTmp);
+#endif
}
}
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("All of the pExtContent Values are NULL\n");
+#endif
}
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "All of the pExtContent Values are NULL\n");
- #endif
- }
- }
- else
- {
+ } else {
curPos += purelyFramelen;
- if(purelyFramelen != 0)
+ if (purelyFramelen != 0)
needToloopv2taglen = MP3_TAGv2_23_TXT_HEADER_LEN;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "This Frame's size is Zero! purelyFramelen(%d)\n", purelyFramelen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("This Frame's size is Zero! purelyFramelen(%d)\n", purelyFramelen);
+#endif
}
- if(pExtContent) _FREE_EX(pExtContent);
+ if (pExtContent) _FREE_EX(pExtContent);
memset(CompTmp, 0, 4);
- if(curPos < taglen)
- {
+ if (curPos < taglen) {
needToloopv2taglen -= oneFrameLen;
v2numOfFrames++;
- }
- else
+ } else
needToloopv2taglen = MP3_TAGv2_23_TXT_HEADER_LEN;
oneFrameLen = 0;
encodingOffSet = 0;
@@ -3035,7 +2825,7 @@ bool mm_file_id3tag_parse_v223(AvFileContentInfo* pInfo, unsigned char *buffer)
release_characterset_array(charset_array);
- if(taglen)
+ if (taglen)
return true;
else
return false;
@@ -3043,7 +2833,7 @@ bool mm_file_id3tag_parse_v223(AvFileContentInfo* pInfo, unsigned char *buffer)
}
EXPORT_API
-bool mm_file_id3tag_parse_v224(AvFileContentInfo* pInfo, unsigned char *buffer)
+bool mm_file_id3tag_parse_v224(AvFileContentInfo *pInfo, unsigned char *buffer)
{
unsigned long taglen = 0;
unsigned long needToloopv2taglen;
@@ -3053,10 +2843,11 @@ bool mm_file_id3tag_parse_v224(AvFileContentInfo* pInfo, unsigned char *buffer)
char CompTmp[5];
unsigned char *pExtContent = NULL;
unsigned long purelyFramelen = 0;
- int inx=0, encodingOffSet=0, realCpyFrameNum=0, checkImgMimeTypeMax=0, imgstartOffset=0, tmp = 0;
+ unsigned int encodingOffSet = 0;
+ int inx = 0, realCpyFrameNum = 0, checkImgMimeTypeMax = 0, imgstartOffset = 0, tmp = 0;
int textEncodingType = 0;
char **charset_array = NULL;
- char *MIME_PRFIX = "image/";
+ const char *MIME_PRFIX = "image/";
make_characterset_array(&charset_array);
@@ -3067,578 +2858,471 @@ bool mm_file_id3tag_parse_v224(AvFileContentInfo* pInfo, unsigned char *buffer)
curPos = MP3_TAGv2_HEADER_LEN;
#ifdef __MMFILE_TEST_MODE__
- debug_msg ("ID3tag v224--------------------------------------------------------------\n");
+ debug_msg("ID3tag v224--------------------------------------------------------------\n");
#endif
/* check Extended Header */
- if (buffer[5] & 0x40)
- {
+ if (buffer[5] & 0x40) {
/* if extended header exists, skip it*/
int extendedHeaderLen = (unsigned long)buffer[10] << 21 | (unsigned long)buffer[11] << 14 | (unsigned long)buffer[12] << 7 | (unsigned long)buffer[13];
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("--------------- extendedHeaderLen = %d\n", extendedHeaderLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("--------------- extendedHeaderLen = %d\n", extendedHeaderLen);
+#endif
curPos += extendedHeaderLen;
}
- if(needToloopv2taglen -MP3_TAGv2_23_TXT_HEADER_LEN > MP3_TAGv2_23_TXT_HEADER_LEN)
- {
+ if (needToloopv2taglen - MP3_TAGv2_23_TXT_HEADER_LEN > MP3_TAGv2_23_TXT_HEADER_LEN) {
v2numOfFrames = 1;
- while(needToloopv2taglen > MP3_TAGv2_23_TXT_HEADER_LEN)
- {
- if((buffer[curPos] < '0' || buffer[curPos] > 'Z') || (buffer[curPos+1] < '0' || buffer[curPos+1] > 'Z')
- || (buffer[curPos+2] < '0' || buffer[curPos+2] > 'Z')|| (buffer[curPos+3] < '0' || buffer[curPos+3] > 'Z'))
+ while (needToloopv2taglen > MP3_TAGv2_23_TXT_HEADER_LEN) {
+ if ((buffer[curPos] < '0' || buffer[curPos] > 'Z') || (buffer[curPos + 1] < '0' || buffer[curPos + 1] > 'Z')
+ || (buffer[curPos + 2] < '0' || buffer[curPos + 2] > 'Z') || (buffer[curPos + 3] < '0' || buffer[curPos + 3] > 'Z'))
break;
memcpy(CompTmp, &buffer[curPos], 4);
CompTmp[4] = 0;
oneFrameLen = MP3_TAGv2_23_TXT_HEADER_LEN;
- oneFrameLen += (unsigned long)buffer[4+curPos] << 21 | (unsigned long)buffer[5+curPos] << 14
- | (unsigned long)buffer[6+curPos] << 7 | (unsigned long)buffer[7+curPos];
- if(oneFrameLen > taglen-curPos)
+ oneFrameLen += (unsigned long)buffer[4 + curPos] << 21 | (unsigned long)buffer[5 + curPos] << 14
+ | (unsigned long)buffer[6 + curPos] << 7 | (unsigned long)buffer[7 + curPos];
+ if (oneFrameLen > taglen - curPos)
break;
purelyFramelen = oneFrameLen - MP3_TAGv2_23_TXT_HEADER_LEN;
- curPos +=MP3_TAGv2_23_TXT_HEADER_LEN;
+ curPos += MP3_TAGv2_23_TXT_HEADER_LEN;
#ifdef __MMFILE_TEST_MODE__
- debug_msg ("-----------------------------------------------------------------------------------\n");
+ debug_msg("-----------------------------------------------------------------------------------\n");
#endif
- if(oneFrameLen > MP3_TAGv2_23_TXT_HEADER_LEN && purelyFramelen <= taglen-curPos)
- {
+ if (oneFrameLen > MP3_TAGv2_23_TXT_HEADER_LEN && purelyFramelen <= taglen - curPos) {
curPos += purelyFramelen;
- //in case of UTF 16 encoding
- //buffer+(curPos-purelyFramelen) data should '0x01' but in order to expansion, we don't accurately check the value.
- if(IS_ENCODEDBY_UTF16(buffer+(curPos-purelyFramelen)))
- {
+ /*in case of UTF 16 encoding */
+ /*buffer+(curPos-purelyFramelen) data should '0x01' but in order to expansion, we don't accurately check the value. */
+ if (IS_ENCODEDBY_UTF16(buffer + (curPos - purelyFramelen))) {
encodingOffSet = 2;
textEncodingType = AV_ID3V2_UTF16;
- }
- else if (IS_ENCODEDBY_UTF16_R(buffer+(curPos-purelyFramelen)))
- {
+ } else if (IS_ENCODEDBY_UTF16_R(buffer + (curPos - purelyFramelen))) {
encodingOffSet = 2;
textEncodingType = AV_ID3V2_UTF16_BE;
- }
- else if(IS_ENCODEDBY_UTF16(buffer+(curPos-purelyFramelen+1)))
- {
+ } else if (IS_ENCODEDBY_UTF16(buffer + (curPos - purelyFramelen + 1))) {
encodingOffSet = 3;
textEncodingType = AV_ID3V2_UTF16;
- }
- else if(IS_ENCODEDBY_UTF16_R(buffer+(curPos-purelyFramelen+1)))
- {
+ } else if (IS_ENCODEDBY_UTF16_R(buffer + (curPos - purelyFramelen + 1))) {
encodingOffSet = 3;
textEncodingType = AV_ID3V2_UTF16_BE;
- }
- else
- {
- //in case of UTF-16 BE encoding
- if(buffer[curPos-purelyFramelen] == 0x02)
- {
+ } else {
+ /*in case of UTF-16 BE encoding */
+ if (buffer[curPos - purelyFramelen] == 0x02) {
encodingOffSet = 1;
- while((buffer[curPos-purelyFramelen+encodingOffSet] == '\0') && (encodingOffSet < purelyFramelen))
- encodingOffSet++;//null skip!
+ while ((buffer[curPos - purelyFramelen + encodingOffSet] == '\0') && (encodingOffSet < purelyFramelen))
+ encodingOffSet++;/*null skip! */
textEncodingType = AV_ID3V2_UTF16_BE;
}
- //in case of UTF8 encoding
- else if (buffer[curPos-purelyFramelen] == 0x03)
- {
+ /*in case of UTF8 encoding */
+ else if (buffer[curPos - purelyFramelen] == 0x03) {
encodingOffSet = 1;
- while((buffer[curPos-purelyFramelen+encodingOffSet] == '\0') && (encodingOffSet < purelyFramelen))
- encodingOffSet++;//null skip!
+ while ((buffer[curPos - purelyFramelen + encodingOffSet] == '\0') && (encodingOffSet < purelyFramelen))
+ encodingOffSet++;/*null skip! */
textEncodingType = AV_ID3V2_UTF8;
}
- //in case of ISO-8859-1 encoding
- else
- {
- //buffer+(curPos-purelyFramelen) data should 0x00 but in order to expansion, we don't accurately check the value.
+ /*in case of ISO-8859-1 encoding */
+ else {
+ /*buffer+(curPos-purelyFramelen) data should 0x00 but in order to expansion, we don't accurately check the value. */
encodingOffSet = 1;
- while((buffer[curPos-purelyFramelen+encodingOffSet] < 0x20) && (encodingOffSet < purelyFramelen))
- encodingOffSet++;//less than 0x20 value skip!
+ while ((buffer[curPos - purelyFramelen + encodingOffSet] < 0x20) && (encodingOffSet < purelyFramelen))
+ encodingOffSet++;/*less than 0x20 value skip! */
textEncodingType = AV_ID3V2_ISO_8859;
}
}
- if(encodingOffSet < purelyFramelen)
- {
+ if (encodingOffSet < purelyFramelen) {
realCpyFrameNum = purelyFramelen - encodingOffSet;
- pExtContent = mmfile_malloc (realCpyFrameNum+3);
- memset(pExtContent, '\0', realCpyFrameNum+3);
+ pExtContent = mmfile_malloc(realCpyFrameNum + 3);
+
+ if (pExtContent == NULL) {
+ debug_error("out of memoryu for id3tag parse\n");
+ continue;
+ }
+
+ memset(pExtContent, '\0', realCpyFrameNum + 3);
if (textEncodingType != AV_ID3V2_UTF16 && textEncodingType != AV_ID3V2_UTF16_BE) {
- if (CompTmp[0] == 'T' ||(strcmp(CompTmp, "APIC")==0)) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "get the new text ecoding type\n");
- #endif
- textEncodingType = buffer[curPos-purelyFramelen+encodingOffSet -1];
+ if (CompTmp[0] == 'T' || (strcmp(CompTmp, "APIC") == 0)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("get the new text ecoding type\n");
+#endif
+ textEncodingType = buffer[curPos - purelyFramelen + encodingOffSet - 1];
}
}
if (textEncodingType > AV_ID3V2_MAX) {
- debug_msg ( "WRONG ENCOIDNG TYPE [%d], FRAME[%s]\n", textEncodingType, (char*)CompTmp);
+ debug_msg("WRONG ENCOIDNG TYPE [%d], FRAME[%s]\n", textEncodingType, (char *)CompTmp);
continue;
}
- memcpy(pExtContent, &buffer[curPos-purelyFramelen+encodingOffSet], purelyFramelen-encodingOffSet);
+ memcpy(pExtContent, &buffer[curPos - purelyFramelen + encodingOffSet], purelyFramelen - encodingOffSet);
- if(realCpyFrameNum > 0)
- {
- if(strncmp((char *)CompTmp, "TIT2", 4) == 0 && pInfo->tagV2Info.bTitleMarked == false)
- {
- if(textEncodingType == AV_ID3V2_UTF8)
- {
- pInfo->pTitle= mmfile_malloc (realCpyFrameNum+2);//Ignore NULL char for UTF16
+ if (realCpyFrameNum > 0) {
+ if (strncmp((char *)CompTmp, "TIT2", 4) == 0 && pInfo->tagV2Info.bTitleMarked == false) {
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ pInfo->pTitle = mmfile_malloc(realCpyFrameNum + 2); /*Ignore NULL char for UTF16 */
memcpy(pInfo->pTitle, pExtContent, realCpyFrameNum);
pInfo->pTitle[realCpyFrameNum] = '\0';
/*string copy with '\0'*/
pInfo->titleLen = realCpyFrameNum;
- _STRNCPY_EX (pInfo->pTitle, pExtContent, pInfo->titleLen);
- }
- else
- {
- pInfo->pTitle = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->titleLen);
+ _STRNCPY_EX(pInfo->pTitle, pExtContent, pInfo->titleLen);
+ } else {
+ pInfo->pTitle = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->titleLen);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pTitle returned = (%s), pInfo->titleLen(%d)\n", pInfo->pTitle, pInfo->titleLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pTitle returned = (%s), pInfo->titleLen(%d)\n", pInfo->pTitle, pInfo->titleLen);
+#endif
pInfo->tagV2Info.bTitleMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TPE1", 4) == 0 && pInfo->tagV2Info.bArtistMarked == false)
- {
- if(textEncodingType == AV_ID3V2_UTF8)
- {
- pInfo->pArtist= mmfile_malloc (realCpyFrameNum+2);//Ignore NULL char for UTF16
+ } else if (strncmp((char *)CompTmp, "TPE1", 4) == 0 && pInfo->tagV2Info.bArtistMarked == false) {
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ pInfo->pArtist = mmfile_malloc(realCpyFrameNum + 2); /*Ignore NULL char for UTF16 */
memcpy(pInfo->pArtist, pExtContent, realCpyFrameNum);
pInfo->pArtist[realCpyFrameNum] = '\0';
/*string copy with '\0'*/
pInfo->artistLen = realCpyFrameNum;
- _STRNCPY_EX (pInfo->pArtist, pExtContent, pInfo->artistLen);
- }
- else
- {
- pInfo->pArtist = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->artistLen);
+ _STRNCPY_EX(pInfo->pArtist, pExtContent, pInfo->artistLen);
+ } else {
+ pInfo->pArtist = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->artistLen);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pArtist returned = (%s), pInfo->artistLen(%d)\n", pInfo->pArtist, pInfo->artistLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pArtist returned = (%s), pInfo->artistLen(%d)\n", pInfo->pArtist, pInfo->artistLen);
+#endif
pInfo->tagV2Info.bArtistMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TPE2", 4) == 0 && pInfo->tagV2Info.bAlbum_ArtistMarked == false)
- {
- if(textEncodingType == AV_ID3V2_UTF8)
- {
- pInfo->pAlbum_Artist= mmfile_malloc (realCpyFrameNum+2);//Ignore NULL char for UTF16
+ } else if (strncmp((char *)CompTmp, "TPE2", 4) == 0 && pInfo->tagV2Info.bAlbum_ArtistMarked == false) {
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ pInfo->pAlbum_Artist = mmfile_malloc(realCpyFrameNum + 2); /*Ignore NULL char for UTF16 */
memcpy(pInfo->pAlbum_Artist, pExtContent, realCpyFrameNum);
pInfo->pAlbum_Artist[realCpyFrameNum] = '\0';
/*string copy with '\0'*/
pInfo->album_artistLen = realCpyFrameNum;
- _STRNCPY_EX (pInfo->pAlbum_Artist, pExtContent, pInfo->album_artistLen);
- }
- else
- {
- pInfo->pAlbum_Artist = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->album_artistLen);
+ _STRNCPY_EX(pInfo->pAlbum_Artist, pExtContent, pInfo->album_artistLen);
+ } else {
+ pInfo->pAlbum_Artist = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->album_artistLen);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pAlbum_Artist returned = (%s), pInfo->album_artistLen(%d)\n", pInfo->pAlbum_Artist, pInfo->album_artistLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pAlbum_Artist returned = (%s), pInfo->album_artistLen(%d)\n", pInfo->pAlbum_Artist, pInfo->album_artistLen);
+#endif
pInfo->tagV2Info.bAlbum_ArtistMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TPE3", 4) == 0 && pInfo->tagV2Info.bConductorMarked == false)
- {
- if(textEncodingType == AV_ID3V2_UTF8)
- {
- pInfo->pConductor= mmfile_malloc (realCpyFrameNum+2);//Ignore NULL char for UTF16
+ } else if (strncmp((char *)CompTmp, "TPE3", 4) == 0 && pInfo->tagV2Info.bConductorMarked == false) {
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ pInfo->pConductor = mmfile_malloc(realCpyFrameNum + 2); /*Ignore NULL char for UTF16 */
memcpy(pInfo->pConductor, pExtContent, realCpyFrameNum);
pInfo->pConductor[realCpyFrameNum] = '\0';
/*string copy with '\0'*/
pInfo->conductorLen = realCpyFrameNum;
- _STRNCPY_EX (pInfo->pConductor, pExtContent, pInfo->conductorLen);
- }
- else
- {
- pInfo->pConductor = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->conductorLen);
+ _STRNCPY_EX(pInfo->pConductor, pExtContent, pInfo->conductorLen);
+ } else {
+ pInfo->pConductor = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->conductorLen);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pConductor returned = (%s), pInfo->conductorLen(%d)\n", pInfo->pConductor, pInfo->conductorLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pConductor returned = (%s), pInfo->conductorLen(%d)\n", pInfo->pConductor, pInfo->conductorLen);
+#endif
pInfo->tagV2Info.bConductorMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TALB", 4) == 0 && pInfo->tagV2Info.bAlbumMarked == false)
- {
- if(textEncodingType == AV_ID3V2_UTF8)
- {
- pInfo->pAlbum= mmfile_malloc (realCpyFrameNum+2);//Ignore NULL char for UTF16
+ } else if (strncmp((char *)CompTmp, "TALB", 4) == 0 && pInfo->tagV2Info.bAlbumMarked == false) {
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ pInfo->pAlbum = mmfile_malloc(realCpyFrameNum + 2); /*Ignore NULL char for UTF16 */
memcpy(pInfo->pAlbum, pExtContent, realCpyFrameNum);
pInfo->pAlbum[realCpyFrameNum] = '\0';
/*string copy with '\0'*/
pInfo->albumLen = realCpyFrameNum;
- _STRNCPY_EX (pInfo->pAlbum, pExtContent, pInfo->albumLen);
- }
- else
- {
- pInfo->pAlbum = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->albumLen);
+ _STRNCPY_EX(pInfo->pAlbum, pExtContent, pInfo->albumLen);
+ } else {
+ pInfo->pAlbum = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->albumLen);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pAlbum returned = (%s), pInfo->albumLen(%d)\n", pInfo->pAlbum, pInfo->albumLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pAlbum returned = (%s), pInfo->albumLen(%d)\n", pInfo->pAlbum, pInfo->albumLen);
+#endif
pInfo->tagV2Info.bAlbumMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TYER", 4) == 0 && pInfo->tagV2Info.bYearMarked == false) //TODO. TYER is replaced by the TDRC. but many files use TYER in v2.4
- {
- if(textEncodingType == AV_ID3V2_UTF8)
- {
- pInfo->pYear= mmfile_malloc (realCpyFrameNum+2);//Ignore NULL char for UTF16
+ } else if (strncmp((char *)CompTmp, "TYER", 4) == 0 && pInfo->tagV2Info.bYearMarked == false) { /*TODO. TYER is replaced by the TDRC. but many files use TYER in v2.4 */
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ pInfo->pYear = mmfile_malloc(realCpyFrameNum + 2); /*Ignore NULL char for UTF16 */
memcpy(pInfo->pYear, pExtContent, realCpyFrameNum);
pInfo->pYear[realCpyFrameNum] = '\0';
/*string copy with '\0'*/
pInfo->yearLen = realCpyFrameNum;
- _STRNCPY_EX (pInfo->pYear, pExtContent, pInfo->yearLen);
- }
- else
- {
- pInfo->pYear = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->yearLen);
+ _STRNCPY_EX(pInfo->pYear, pExtContent, pInfo->yearLen);
+ } else {
+ pInfo->pYear = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->yearLen);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pYear returned = (%s), pInfo->yearLen(%d)\n", pInfo->pYear, pInfo->yearLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pYear returned = (%s), pInfo->yearLen(%d)\n", pInfo->pYear, pInfo->yearLen);
+#endif
pInfo->tagV2Info.bYearMarked = true;
- }
- else if(strncmp((char *)CompTmp, "COMM", 4) == 0 && pInfo->tagV2Info.bDescriptionMarked == false)
- {
- if(realCpyFrameNum > 3)
- {
+ } else if (strncmp((char *)CompTmp, "COMM", 4) == 0 && pInfo->tagV2Info.bDescriptionMarked == false) {
+ if (realCpyFrameNum > 3) {
realCpyFrameNum -= 3;
tmp = 3;
- if(textEncodingType == AV_ID3V2_UTF16 || textEncodingType == AV_ID3V2_UTF16_BE)
- {
- while((NEWLINE_OF_UTF16(pExtContent + tmp) || NEWLINE_OF_UTF16_R(pExtContent + tmp))&& realCpyFrameNum > 4)
- {
+ if (textEncodingType == AV_ID3V2_UTF16 || textEncodingType == AV_ID3V2_UTF16_BE) {
+ while ((NEWLINE_OF_UTF16(pExtContent + tmp) || NEWLINE_OF_UTF16_R(pExtContent + tmp)) && realCpyFrameNum > 4) {
realCpyFrameNum -= 4;
tmp += 4;
}
- if((IS_ENCODEDBY_UTF16(pExtContent+tmp) || IS_ENCODEDBY_UTF16_R(pExtContent+tmp)) && realCpyFrameNum > 2)
- {
+ if ((IS_ENCODEDBY_UTF16(pExtContent + tmp) || IS_ENCODEDBY_UTF16_R(pExtContent + tmp)) && realCpyFrameNum > 2) {
realCpyFrameNum -= 2;
tmp += 2;
textEncodingType = AV_ID3V2_UTF16;
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pComment Never Get Here!!\n");
+#endif
}
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pComment Never Get Here!!\n");
- #endif
- }
- }
- else if(textEncodingType == AV_ID3V2_UTF8)
- {
- while(pExtContent[tmp] < 0x20 && (tmp < realCpyFrameNum)) // text string encoded by ISO-8859-1
- {
- realCpyFrameNum --;
+ } else if (textEncodingType == AV_ID3V2_UTF8) {
+ while (pExtContent[tmp] < 0x20 && (tmp < realCpyFrameNum)) { /* text string encoded by ISO-8859-1 */
+ realCpyFrameNum--;
tmp++;
}
textEncodingType = AV_ID3V2_UTF8;
- }
- else
- {
- while(pExtContent[tmp] < 0x20 && (tmp < realCpyFrameNum)) // text string encoded by ISO-8859-1
- {
- realCpyFrameNum --;
+ } else {
+ while (pExtContent[tmp] < 0x20 && (tmp < realCpyFrameNum)) { /* text string encoded by ISO-8859-1 */
+ realCpyFrameNum--;
tmp++;
}
textEncodingType = AV_ID3V2_ISO_8859;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "tmp(%d) textEncodingType(%d), realCpyFrameNum(%d)\n", tmp, textEncodingType, realCpyFrameNum);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("tmp(%d) textEncodingType(%d), realCpyFrameNum(%d)\n", tmp, textEncodingType, realCpyFrameNum);
+#endif
- if(textEncodingType == AV_ID3V2_UTF8)
- {
- pInfo->pComment= mmfile_malloc (realCpyFrameNum+2);//Ignore NULL char for UTF16
- memset(pInfo->pComment, 0, (realCpyFrameNum+2));
- memcpy(pInfo->pComment, pExtContent+tmp, realCpyFrameNum);
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ pInfo->pComment = mmfile_malloc(realCpyFrameNum + 2); /*Ignore NULL char for UTF16 */
+ memset(pInfo->pComment, 0, (realCpyFrameNum + 2));
+ memcpy(pInfo->pComment, pExtContent + tmp, realCpyFrameNum);
pInfo->pComment[realCpyFrameNum] = '\0';
/*string copy with '\0'*/
pInfo->commentLen = realCpyFrameNum;
- _STRNCPY_EX (pInfo->pComment, pExtContent, pInfo->commentLen);
+ _STRNCPY_EX(pInfo->pComment, pExtContent, pInfo->commentLen);
+ } else {
+ pInfo->pComment = mmfile_string_convert((const char *)&pExtContent[tmp], realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->commentLen);
}
- else
- {
- pInfo->pComment = mmfile_string_convert ((const char*)&pExtContent[tmp], realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->commentLen);
- }
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Description info too small to parse realCpyFrameNum(%d)\n", realCpyFrameNum);
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Description info too small to parse realCpyFrameNum(%d)\n", realCpyFrameNum);
+#endif
}
tmp = 0;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pComment returned = (%s), pInfo->commentLen(%d)\n", pInfo->pComment, pInfo->commentLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pComment returned = (%s), pInfo->commentLen(%d)\n", pInfo->pComment, pInfo->commentLen);
+#endif
pInfo->tagV2Info.bDescriptionMarked = true;
- }
- else if(strncmp((char *)CompTmp, "SYLT", 4) == 0 && pInfo->tagV2Info.bSyncLyricsMarked == false)
- {
+ } else if (strncmp((char *)CompTmp, "SYLT", 4) == 0 && pInfo->tagV2Info.bSyncLyricsMarked == false) {
int idx = 0;
int copy_len = 0;
int copy_start_pos = tmp;
AvSynclyricsInfo *synclyrics_info = NULL;
GList *synclyrics_info_list = NULL;
-
- if(realCpyFrameNum > 5)
- {
+
+ if (realCpyFrameNum > 5) {
realCpyFrameNum -= 5;
tmp = 5;
- if(textEncodingType == AV_ID3V2_UTF16 || textEncodingType == AV_ID3V2_UTF16_BE)
- {
- while((NEWLINE_OF_UTF16(pExtContent + tmp) || NEWLINE_OF_UTF16_R(pExtContent + tmp))&& realCpyFrameNum > 4)
- {
+ if (textEncodingType == AV_ID3V2_UTF16 || textEncodingType == AV_ID3V2_UTF16_BE) {
+ while ((NEWLINE_OF_UTF16(pExtContent + tmp) || NEWLINE_OF_UTF16_R(pExtContent + tmp)) && realCpyFrameNum > 4) {
realCpyFrameNum -= 4;
tmp += 4;
}
- if((IS_ENCODEDBY_UTF16(pExtContent+tmp) || IS_ENCODEDBY_UTF16_R(pExtContent+tmp)) && realCpyFrameNum > 2)
- {
+ if ((IS_ENCODEDBY_UTF16(pExtContent + tmp) || IS_ENCODEDBY_UTF16_R(pExtContent + tmp)) && realCpyFrameNum > 2) {
realCpyFrameNum -= 2;
tmp += 2;
textEncodingType = AV_ID3V2_UTF16;
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pSyncLyrics Never Get Here!!\n");
+#endif
}
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pSyncLyrics Never Get Here!!\n");
- #endif
- }
- }
- else if(textEncodingType == AV_ID3V2_UTF8)
- {
- while(pExtContent[tmp] < 0x20 && (tmp < realCpyFrameNum)) // text string encoded by ISO-8859-1
- {
- realCpyFrameNum --;
+ } else if (textEncodingType == AV_ID3V2_UTF8) {
+ while (pExtContent[tmp] < 0x20 && (tmp < realCpyFrameNum)) { /* text string encoded by ISO-8859-1 */
+ realCpyFrameNum--;
tmp++;
}
textEncodingType = AV_ID3V2_UTF8;
- }
- else
- {
- while(pExtContent[tmp] < 0x20 && (tmp < realCpyFrameNum)) // text string encoded by ISO-8859-1
- {
- realCpyFrameNum --;
+ } else {
+ while (pExtContent[tmp] < 0x20 && (tmp < realCpyFrameNum)) { /* text string encoded by ISO-8859-1 */
+ realCpyFrameNum--;
tmp++;
}
textEncodingType = AV_ID3V2_ISO_8859;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "tmp(%d) textEncodingType(%d), realCpyFrameNum(%d)\n", tmp, textEncodingType, realCpyFrameNum);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("tmp(%d) textEncodingType(%d), realCpyFrameNum(%d)\n", tmp, textEncodingType, realCpyFrameNum);
+#endif
- if(realCpyFrameNum < MMFILE_SYNC_LYRIC_INFO_MIN_LEN)
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "failed to get Synchronised lyrics Info realCpyFramNum(%d)\n", realCpyFrameNum);
- #endif
+ if (realCpyFrameNum < MMFILE_SYNC_LYRIC_INFO_MIN_LEN) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("failed to get Synchronised lyrics Info realCpyFramNum(%d)\n", realCpyFrameNum);
+#endif
pInfo->syncLyricsNum = 0;
- }
- else
- {
- if(textEncodingType == AV_ID3V2_UTF16)
- {
- debug_warning ("[AV_ID3V2_UTF16] not implemented\n");
- }
- else if(textEncodingType == AV_ID3V2_UTF16_BE)
- {
- debug_warning ("[AV_ID3V2_UTF16_BE] not implemented\n");
- }
- else
- {
- for(idx = 0; idx < realCpyFrameNum; idx++)
- {
- if(pExtContent[tmp+idx] == 0x00)
- {
+ } else {
+ if (textEncodingType == AV_ID3V2_UTF16) {
+ debug_warning("[AV_ID3V2_UTF16] not implemented\n");
+ } else if (textEncodingType == AV_ID3V2_UTF16_BE) {
+ debug_warning("[AV_ID3V2_UTF16_BE] not implemented\n");
+ } else {
+ for (idx = 0; idx < realCpyFrameNum; idx++) {
+ if (pExtContent[tmp + idx] == 0x00) {
synclyrics_info = (AvSynclyricsInfo *)malloc(sizeof(AvSynclyricsInfo));
- if(textEncodingType == AV_ID3V2_UTF8) {
- synclyrics_info->lyric_info= mmfile_malloc(copy_len+1);
- memset(synclyrics_info->lyric_info, 0, copy_len+1);
- memcpy(synclyrics_info->lyric_info, pExtContent+copy_start_pos, copy_len);
- synclyrics_info->lyric_info[copy_len+1] = '\0';
- }
- else {
- synclyrics_info->lyric_info = mmfile_string_convert ((const char*)&pExtContent[copy_start_pos], copy_len, "UTF-8", charset_array[textEncodingType], NULL, NULL);
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ synclyrics_info->lyric_info = mmfile_malloc(copy_len + 1);
+ memset(synclyrics_info->lyric_info, 0, copy_len + 1);
+ memcpy(synclyrics_info->lyric_info, pExtContent + copy_start_pos, copy_len);
+ synclyrics_info->lyric_info[copy_len + 1] = '\0';
+ } else {
+ synclyrics_info->lyric_info = mmfile_string_convert((const char *)&pExtContent[copy_start_pos], copy_len, "UTF-8", charset_array[textEncodingType], NULL, NULL);
}
- synclyrics_info->time_info= (unsigned long)pExtContent[tmp+idx+1] << 24 | (unsigned long)pExtContent[tmp+idx+2] << 16 | (unsigned long)pExtContent[tmp+idx+3] << 8 | (unsigned long)pExtContent[tmp+idx+4];
+ synclyrics_info->time_info = (unsigned long)pExtContent[tmp + idx + 1] << 24 | (unsigned long)pExtContent[tmp + idx + 2] << 16 | (unsigned long)pExtContent[tmp + idx + 3] << 8 | (unsigned long)pExtContent[tmp + idx + 4];
idx += 4;
copy_start_pos = tmp + idx + 1;
- #ifdef __MMFILE_TEST_MODE__
+#ifdef __MMFILE_TEST_MODE__
debug_msg("[%d][%s] idx[%d], copy_len[%d] copy_start_pos[%d]", synclyrics_info->time_info, synclyrics_info->lyric_info, idx, copy_len, copy_start_pos);
- #endif
+#endif
copy_len = 0;
synclyrics_info_list = g_list_append(synclyrics_info_list, synclyrics_info);
}
- copy_len ++;
+ copy_len++;
}
pInfo->pSyncLyrics = synclyrics_info_list;
pInfo->syncLyricsNum = g_list_length(pInfo->pSyncLyrics);
}
}
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "SyncLyrics info too small to parse realCpyFrameNum(%d)\n", realCpyFrameNum);
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("SyncLyrics info too small to parse realCpyFrameNum(%d)\n", realCpyFrameNum);
+#endif
}
tmp = 0;
pInfo->tagV2Info.bSyncLyricsMarked = true;
- }
- else if(strncmp((char *)CompTmp, "USLT", 4) == 0 && pInfo->tagV2Info.bUnsyncLyricsMarked == false)
- {
- if(realCpyFrameNum > 3)
- {
+ } else if (strncmp((char *)CompTmp, "USLT", 4) == 0 && pInfo->tagV2Info.bUnsyncLyricsMarked == false) {
+ if (realCpyFrameNum > 3) {
realCpyFrameNum -= 3;
tmp = 3;
- if(textEncodingType == AV_ID3V2_UTF16 || textEncodingType == AV_ID3V2_UTF16_BE)
- {
- while((NEWLINE_OF_UTF16(pExtContent + tmp) || NEWLINE_OF_UTF16_R(pExtContent + tmp))&& realCpyFrameNum > 4)
- {
+ if (textEncodingType == AV_ID3V2_UTF16 || textEncodingType == AV_ID3V2_UTF16_BE) {
+ while ((NEWLINE_OF_UTF16(pExtContent + tmp) || NEWLINE_OF_UTF16_R(pExtContent + tmp)) && realCpyFrameNum > 4) {
realCpyFrameNum -= 4;
tmp += 4;
}
- if((IS_ENCODEDBY_UTF16(pExtContent+tmp) || IS_ENCODEDBY_UTF16_R(pExtContent+tmp)) && realCpyFrameNum > 2)
- {
+ if ((IS_ENCODEDBY_UTF16(pExtContent + tmp) || IS_ENCODEDBY_UTF16_R(pExtContent + tmp)) && realCpyFrameNum > 2) {
realCpyFrameNum -= 2;
tmp += 2;
textEncodingType = AV_ID3V2_UTF16;
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pUnsyncLyrics Never Get Here!!\n");
+#endif
}
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pUnsyncLyrics Never Get Here!!\n");
- #endif
- }
- }
- else if(textEncodingType == AV_ID3V2_UTF8)
- {
- while(pExtContent[tmp] < 0x20 && (tmp < realCpyFrameNum)) // text string encoded by ISO-8859-1
- {
- realCpyFrameNum --;
+ } else if (textEncodingType == AV_ID3V2_UTF8) {
+ while (pExtContent[tmp] < 0x20 && (tmp < realCpyFrameNum)) { /* text string encoded by ISO-8859-1 */
+ realCpyFrameNum--;
tmp++;
}
textEncodingType = AV_ID3V2_UTF8;
- }
- else
- {
- while(pExtContent[tmp] < 0x20 && (tmp < realCpyFrameNum)) // text string encoded by ISO-8859-1
- {
- realCpyFrameNum --;
+ } else {
+ while (pExtContent[tmp] < 0x20 && (tmp < realCpyFrameNum)) { /* text string encoded by ISO-8859-1 */
+ realCpyFrameNum--;
tmp++;
}
textEncodingType = AV_ID3V2_ISO_8859;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "tmp(%d) textEncodingType(%d), realCpyFrameNum(%d)\n", tmp, textEncodingType, realCpyFrameNum);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("tmp(%d) textEncodingType(%d), realCpyFrameNum(%d)\n", tmp, textEncodingType, realCpyFrameNum);
+#endif
- if(textEncodingType == AV_ID3V2_UTF8)
- {
- pInfo->pUnsyncLyrics= mmfile_malloc (realCpyFrameNum+2);//Ignore NULL char for UTF16
- memset(pInfo->pUnsyncLyrics, 0, (realCpyFrameNum+2));
- memcpy(pInfo->pUnsyncLyrics, pExtContent+tmp, realCpyFrameNum);
- pInfo->pUnsyncLyrics[realCpyFrameNum] = '\0';
- /*string copy with '\0'*/
- pInfo->unsynclyricsLen = realCpyFrameNum;
- _STRNCPY_EX (pInfo->pUnsyncLyrics, pExtContent, pInfo->unsynclyricsLen);
- }
- else
- {
- pInfo->pUnsyncLyrics = mmfile_string_convert ((const char*)&pExtContent[tmp], realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->unsynclyricsLen);
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ pInfo->pUnsyncLyrics = mmfile_malloc(realCpyFrameNum + 2); /*Ignore NULL char for UTF16 */
+
+ if (pInfo->pUnsyncLyrics != NULL) {
+ memset(pInfo->pUnsyncLyrics, 0, (realCpyFrameNum + 2));
+ memcpy(pInfo->pUnsyncLyrics, pExtContent + tmp, realCpyFrameNum);
+ pInfo->pUnsyncLyrics[realCpyFrameNum] = '\0';
+ /*string copy with '\0'*/
+ pInfo->unsynclyricsLen = realCpyFrameNum;
+ _STRNCPY_EX(pInfo->pUnsyncLyrics, pExtContent, pInfo->unsynclyricsLen);
+ } else {
+ debug_error("out of memoryu for SyncLyrics\n");
+ }
+ } else {
+ pInfo->pUnsyncLyrics = mmfile_string_convert((const char *)&pExtContent[tmp], realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->unsynclyricsLen);
}
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Description info too small to parse realCpyFrameNum(%d)\n", realCpyFrameNum);
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Description info too small to parse realCpyFrameNum(%d)\n", realCpyFrameNum);
+#endif
}
tmp = 0;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pUnsyncLyrics returned = (%s), pInfo->unsynclyricsLen(%d)\n", pInfo->pUnsyncLyrics, pInfo->unsynclyricsLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pUnsyncLyrics returned = (%s), pInfo->unsynclyricsLen(%d)\n", pInfo->pUnsyncLyrics, pInfo->unsynclyricsLen);
+#endif
pInfo->tagV2Info.bDescriptionMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TCON", 4) == 0 && pInfo->tagV2Info.bGenreMarked == false)
- {
- if(textEncodingType == AV_ID3V2_UTF8)
- {
- pInfo->pGenre= mmfile_malloc (realCpyFrameNum+2);//Ignore NULL char for UTF16
+ } else if (strncmp((char *)CompTmp, "TCON", 4) == 0 && pInfo->tagV2Info.bGenreMarked == false) {
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ pInfo->pGenre = mmfile_malloc(realCpyFrameNum + 2); /*Ignore NULL char for UTF16 */
memcpy(pInfo->pGenre, pExtContent, realCpyFrameNum);
pInfo->pGenre[realCpyFrameNum] = '\0';
/*string copy with '\0'*/
pInfo->genreLen = realCpyFrameNum;
- _STRNCPY_EX (pInfo->pGenre, pExtContent, pInfo->genreLen);
- }
- else
- {
- pInfo->pGenre = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->genreLen);
+ _STRNCPY_EX(pInfo->pGenre, pExtContent, pInfo->genreLen);
+ } else {
+ pInfo->pGenre = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->genreLen);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pGenre returned = (%s), pInfo->genreLen(%d)\n", pInfo->pGenre, pInfo->genreLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pGenre returned = (%s), pInfo->genreLen(%d)\n", pInfo->pGenre, pInfo->genreLen);
+#endif
- if((pInfo->pGenre != NULL) && (pInfo->genreLen > 0)) {
+ if ((pInfo->pGenre != NULL) && (pInfo->genreLen > 0)) {
bool ret = FALSE;
int int_genre = -1;
ret = is_numeric(pInfo->pGenre, pInfo->genreLen);
- if(ret == TRUE) {
- sscanf( pInfo->pGenre, "%d", &int_genre);
- #ifdef __MMFILE_TEST_MODE__
+ if (ret == TRUE) {
+ sscanf(pInfo->pGenre, "%d", &int_genre);
+#ifdef __MMFILE_TEST_MODE__
debug_msg("genre information is inteager [%d]\n", int_genre);
- #endif
+#endif
- //Change int to string
- if((0 <= int_genre) && (int_genre < GENRE_COUNT-1)) {
+ /*Change int to string */
+ if ((0 <= int_genre) && (int_genre < GENRE_COUNT - 1)) {
/*save genreinfo like "(123)". mm_file_id3tag_restore_content_info convert it to string*/
- char tmp_genre[6] = {0,}; /*ex. "(123)+NULL"*/
+ char tmp_genre[6] = {0, }; /*ex. "(123)+NULL"*/
int tmp_genre_len = 0;
- memset (tmp_genre, 0, 6);
+ memset(tmp_genre, 0, 6);
snprintf(tmp_genre, sizeof(tmp_genre), "(%d)", int_genre);
tmp_genre_len = strlen(tmp_genre);
- if(tmp_genre_len > 0) {
- if(pInfo->pGenre) _FREE_EX(pInfo->pGenre);
- pInfo->pGenre = mmfile_malloc (sizeof(char) * (tmp_genre_len + 1) );
- if (pInfo->pGenre)
- {
+ if (tmp_genre_len > 0) {
+ if (pInfo->pGenre) _FREE_EX(pInfo->pGenre);
+ pInfo->pGenre = mmfile_malloc(sizeof(char) * (tmp_genre_len + 1));
+ if (pInfo->pGenre) {
strncpy(pInfo->pGenre, tmp_genre, tmp_genre_len);
pInfo->pGenre[tmp_genre_len] = 0;
}
@@ -3648,191 +3332,145 @@ bool mm_file_id3tag_parse_v224(AvFileContentInfo* pInfo, unsigned char *buffer)
}
pInfo->tagV2Info.bGenreMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TRCK", 4) == 0 && pInfo->tagV2Info.bTrackNumMarked == false)
- {
- if(textEncodingType == AV_ID3V2_UTF8)
- {
- pInfo->pTrackNum= mmfile_malloc (realCpyFrameNum+2);//Ignore NULL char for UTF16
+ } else if (strncmp((char *)CompTmp, "TRCK", 4) == 0 && pInfo->tagV2Info.bTrackNumMarked == false) {
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ pInfo->pTrackNum = mmfile_malloc(realCpyFrameNum + 2); /*Ignore NULL char for UTF16 */
memcpy(pInfo->pTrackNum, pExtContent, realCpyFrameNum);
pInfo->pTrackNum[realCpyFrameNum] = '\0';
/*string copy with '\0'*/
pInfo->tracknumLen = realCpyFrameNum;
- _STRNCPY_EX (pInfo->pTrackNum, pExtContent, pInfo->tracknumLen);
- }
- else
- {
- pInfo->pTrackNum = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->tracknumLen);
+ _STRNCPY_EX(pInfo->pTrackNum, pExtContent, pInfo->tracknumLen);
+ } else {
+ pInfo->pTrackNum = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->tracknumLen);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pTrackNum returned = (%s), pInfo->tracknumLen(%d)\n", pInfo->pTrackNum, pInfo->tracknumLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pTrackNum returned = (%s), pInfo->tracknumLen(%d)\n", pInfo->pTrackNum, pInfo->tracknumLen);
+#endif
pInfo->tagV2Info.bTrackNumMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TENC", 4) == 0 && pInfo->tagV2Info.bEncByMarked == false)
- {
- if(textEncodingType == AV_ID3V2_UTF8)
- {
- pInfo->pEncBy= mmfile_malloc (realCpyFrameNum+2);//Ignore NULL char for UTF16
+ } else if (strncmp((char *)CompTmp, "TENC", 4) == 0 && pInfo->tagV2Info.bEncByMarked == false) {
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ pInfo->pEncBy = mmfile_malloc(realCpyFrameNum + 2); /*Ignore NULL char for UTF16 */
memcpy(pInfo->pEncBy, pExtContent, realCpyFrameNum);
pInfo->pEncBy[realCpyFrameNum] = '\0';
/*string copy with '\0'*/
pInfo->encbyLen = realCpyFrameNum;
- _STRNCPY_EX (pInfo->pEncBy, pExtContent, pInfo->encbyLen);
- }
- else
- {
- pInfo->pEncBy = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->encbyLen);
+ _STRNCPY_EX(pInfo->pEncBy, pExtContent, pInfo->encbyLen);
+ } else {
+ pInfo->pEncBy = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->encbyLen);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pEncBy returned = (%s), pInfo->encbyLen(%d)\n", pInfo->pEncBy, pInfo->encbyLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pEncBy returned = (%s), pInfo->encbyLen(%d)\n", pInfo->pEncBy, pInfo->encbyLen);
+#endif
pInfo->tagV2Info.bEncByMarked = true;
- }
- else if(strncmp((char *)CompTmp, "WXXX", 4) == 0 && pInfo->tagV2Info.bURLMarked == false)
- {
- if(textEncodingType == AV_ID3V2_UTF8)
- {
- pInfo->pURL= mmfile_malloc (realCpyFrameNum+2);//Ignore NULL char for UTF16
+ } else if (strncmp((char *)CompTmp, "WXXX", 4) == 0 && pInfo->tagV2Info.bURLMarked == false) {
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ pInfo->pURL = mmfile_malloc(realCpyFrameNum + 2); /*Ignore NULL char for UTF16 */
memcpy(pInfo->pURL, pExtContent, realCpyFrameNum);
pInfo->pURL[realCpyFrameNum] = '\0';
/*string copy with '\0'*/
pInfo->urlLen = realCpyFrameNum;
- _STRNCPY_EX (pInfo->pURL, pExtContent, pInfo->urlLen);
- }
- else
- {
- pInfo->pURL = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->urlLen);
+ _STRNCPY_EX(pInfo->pURL, pExtContent, pInfo->urlLen);
+ } else {
+ pInfo->pURL = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->urlLen);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pURL returned = (%s), pInfo->urlLen(%d)\n", pInfo->pURL, pInfo->urlLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pURL returned = (%s), pInfo->urlLen(%d)\n", pInfo->pURL, pInfo->urlLen);
+#endif
pInfo->tagV2Info.bURLMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TCOP", 4) == 0 && pInfo->tagV2Info.bCopyRightMarked == false)
- {
- if(textEncodingType == AV_ID3V2_UTF8)
- {
- pInfo->pCopyright= mmfile_malloc (realCpyFrameNum+2);//Ignore NULL char for UTF16
+ } else if (strncmp((char *)CompTmp, "TCOP", 4) == 0 && pInfo->tagV2Info.bCopyRightMarked == false) {
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ pInfo->pCopyright = mmfile_malloc(realCpyFrameNum + 2); /*Ignore NULL char for UTF16 */
memcpy(pInfo->pCopyright, pExtContent, realCpyFrameNum);
pInfo->pCopyright[realCpyFrameNum] = '\0';
/*string copy with '\0'*/
pInfo->copyrightLen = realCpyFrameNum;
- _STRNCPY_EX (pInfo->pCopyright, pExtContent, pInfo->copyrightLen);
- }
- else
- {
- pInfo->pCopyright = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->copyrightLen);
+ _STRNCPY_EX(pInfo->pCopyright, pExtContent, pInfo->copyrightLen);
+ } else {
+ pInfo->pCopyright = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->copyrightLen);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pCopyright returned = (%s), pInfo->copyrightLen(%d)\n", pInfo->pCopyright, pInfo->copyrightLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pCopyright returned = (%s), pInfo->copyrightLen(%d)\n", pInfo->pCopyright, pInfo->copyrightLen);
+#endif
pInfo->tagV2Info.bCopyRightMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TOPE", 4) == 0 && pInfo->tagV2Info.bOriginArtistMarked == false)
- {
- if(textEncodingType == AV_ID3V2_UTF8)
- {
- pInfo->pOriginArtist= mmfile_malloc (realCpyFrameNum+2);//Ignore NULL char for UTF16
+ } else if (strncmp((char *)CompTmp, "TOPE", 4) == 0 && pInfo->tagV2Info.bOriginArtistMarked == false) {
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ pInfo->pOriginArtist = mmfile_malloc(realCpyFrameNum + 2); /*Ignore NULL char for UTF16 */
memcpy(pInfo->pOriginArtist, pExtContent, realCpyFrameNum);
pInfo->pOriginArtist[realCpyFrameNum] = '\0';
/*string copy with '\0'*/
pInfo->originartistLen = realCpyFrameNum;
- _STRNCPY_EX (pInfo->pOriginArtist, pExtContent, pInfo->originartistLen);
- }
- else
- {
- pInfo->pOriginArtist = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->originartistLen);
+ _STRNCPY_EX(pInfo->pOriginArtist, pExtContent, pInfo->originartistLen);
+ } else {
+ pInfo->pOriginArtist = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->originartistLen);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pOriginArtist returned = (%s), pInfo->originartistLen(%d)\n", pInfo->pOriginArtist, pInfo->originartistLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pOriginArtist returned = (%s), pInfo->originartistLen(%d)\n", pInfo->pOriginArtist, pInfo->originartistLen);
+#endif
pInfo->tagV2Info.bOriginArtistMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TCOM", 4) == 0 && pInfo->tagV2Info.bComposerMarked == false)
- {
- if(textEncodingType == AV_ID3V2_UTF8)
- {
- pInfo->pComposer= mmfile_malloc (realCpyFrameNum+2);//Ignore NULL char for UTF16
+ } else if (strncmp((char *)CompTmp, "TCOM", 4) == 0 && pInfo->tagV2Info.bComposerMarked == false) {
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ pInfo->pComposer = mmfile_malloc(realCpyFrameNum + 2); /*Ignore NULL char for UTF16 */
memcpy(pInfo->pComposer, pExtContent, realCpyFrameNum);
pInfo->pComposer[realCpyFrameNum] = '\0';
/*string copy with '\0'*/
pInfo->composerLen = realCpyFrameNum;
- _STRNCPY_EX (pInfo->pComposer, pExtContent, pInfo->composerLen);
- }
- else
- {
- pInfo->pComposer = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->composerLen);
+ _STRNCPY_EX(pInfo->pComposer, pExtContent, pInfo->composerLen);
+ } else {
+ pInfo->pComposer = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->composerLen);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pComposer returned = (%s), pInfo->originartistLen(%d)\n", pInfo->pComposer, pInfo->composerLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pComposer returned = (%s), pInfo->originartistLen(%d)\n", pInfo->pComposer, pInfo->composerLen);
+#endif
pInfo->tagV2Info.bComposerMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TDRC", 4) == 0 && pInfo->tagV2Info.bRecDateMarked== false) //TYER(year) and TRDA are replaced by the TDRC
- {
- if(textEncodingType == AV_ID3V2_UTF8)
- {
- pInfo->pRecDate= mmfile_malloc (realCpyFrameNum+2);//Ignore NULL char for UTF16
+ } else if (strncmp((char *)CompTmp, "TDRC", 4) == 0 && pInfo->tagV2Info.bRecDateMarked == false) { /*TYER(year) and TRDA are replaced by the TDRC */
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ pInfo->pRecDate = mmfile_malloc(realCpyFrameNum + 2); /*Ignore NULL char for UTF16 */
memcpy(pInfo->pRecDate, pExtContent, realCpyFrameNum);
pInfo->pRecDate[realCpyFrameNum] = '\0';
/*string copy with '\0'*/
pInfo->recdateLen = realCpyFrameNum;
- _STRNCPY_EX (pInfo->pRecDate, pExtContent, pInfo->recdateLen);
- }
- else
- {
- pInfo->pRecDate = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->recdateLen);
+ _STRNCPY_EX(pInfo->pRecDate, pExtContent, pInfo->recdateLen);
+ } else {
+ pInfo->pRecDate = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->recdateLen);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pRecDate returned = (%s), pInfo->recdateLen(%d)\n", pInfo->pRecDate, pInfo->recdateLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pRecDate returned = (%s), pInfo->recdateLen(%d)\n", pInfo->pRecDate, pInfo->recdateLen);
+#endif
pInfo->tagV2Info.bRecDateMarked = true;
- }
- else if(strncmp((char *)CompTmp, "TIT1", 4) == 0 && pInfo->tagV2Info.bContentGroupMarked== false)
- {
- if(textEncodingType == AV_ID3V2_UTF8)
- {
- pInfo->pContentGroup= mmfile_malloc (realCpyFrameNum+2);//Ignore NULL char for UTF16
+ } else if (strncmp((char *)CompTmp, "TIT1", 4) == 0 && pInfo->tagV2Info.bContentGroupMarked == false) {
+ if (textEncodingType == AV_ID3V2_UTF8) {
+ pInfo->pContentGroup = mmfile_malloc(realCpyFrameNum + 2); /*Ignore NULL char for UTF16 */
memcpy(pInfo->pContentGroup, pExtContent, realCpyFrameNum);
pInfo->pContentGroup[realCpyFrameNum] = '\0';
/*string copy with '\0'*/
pInfo->contentGroupLen = realCpyFrameNum;
- _STRNCPY_EX (pInfo->pContentGroup, pExtContent, pInfo->contentGroupLen);
- }
- else
- {
- pInfo->pContentGroup = mmfile_string_convert ((const char*)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&pInfo->contentGroupLen);
+ _STRNCPY_EX(pInfo->pContentGroup, pExtContent, pInfo->contentGroupLen);
+ } else {
+ pInfo->pContentGroup = mmfile_string_convert((const char *)pExtContent, realCpyFrameNum, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&pInfo->contentGroupLen);
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pContentGroup returned = (%s), pInfo->contentGroupLen(%d)\n", pInfo->pContentGroup, pInfo->contentGroupLen);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pContentGroup returned = (%s), pInfo->contentGroupLen(%d)\n", pInfo->pContentGroup, pInfo->contentGroupLen);
+#endif
pInfo->tagV2Info.bContentGroupMarked = true;
- }
- else if(strncmp((char *)CompTmp, "APIC", 4) == 0 && pInfo->tagV2Info.bImageMarked == false && realCpyFrameNum <= 2000000)
- {
- if(pExtContent[0] != '\0')
- {
- for(inx = 0; inx < MP3_ID3_IMAGE_MIME_TYPE_MAX_LENGTH-1; inx++)
- pInfo->imageInfo.imageMIMEType[inx] = '\0';//ini mimetype variable
-
- while((checkImgMimeTypeMax < MP3_ID3_IMAGE_MIME_TYPE_MAX_LENGTH-1) && pExtContent[checkImgMimeTypeMax] != '\0')
- {
+ } else if (strncmp((char *)CompTmp, "APIC", 4) == 0 && pInfo->tagV2Info.bImageMarked == false && realCpyFrameNum <= 2000000) {
+ if (pExtContent[0] != '\0') {
+ for (inx = 0; inx < MP3_ID3_IMAGE_MIME_TYPE_MAX_LENGTH - 1; inx++)
+ pInfo->imageInfo.imageMIMEType[inx] = '\0';/*ini mimetype variable */
+
+ while ((checkImgMimeTypeMax < MP3_ID3_IMAGE_MIME_TYPE_MAX_LENGTH - 1) && pExtContent[checkImgMimeTypeMax] != '\0') {
pInfo->imageInfo.imageMIMEType[checkImgMimeTypeMax] = pExtContent[checkImgMimeTypeMax];
checkImgMimeTypeMax++;
}
pInfo->imageInfo.imgMimetypeLen = checkImgMimeTypeMax;
- }
- else
- {
+ } else {
pInfo->imageInfo.imgMimetypeLen = 0;
}
@@ -3844,23 +3482,20 @@ bool mm_file_id3tag_parse_v224(AvFileContentInfo* pInfo, unsigned char *buffer)
continue;
}
- if((pExtContent[imgstartOffset] == '\0') && (realCpyFrameNum - imgstartOffset > 0))
- {
- imgstartOffset++;//endofMIME(1byte)
+ if ((pExtContent[imgstartOffset] == '\0') && (realCpyFrameNum - imgstartOffset > 0)) {
+ imgstartOffset++;/*endofMIME(1byte) */
- if(pExtContent[imgstartOffset] < AV_ID3V2_PICTURE_TYPE_MAX)
- {
+ if (pExtContent[imgstartOffset] < AV_ID3V2_PICTURE_TYPE_MAX) {
pInfo->imageInfo.pictureType = pExtContent[imgstartOffset];
}
- imgstartOffset++;//PictureType(1byte)
+ imgstartOffset++;/*PictureType(1byte) */
- if(pExtContent[imgstartOffset] != 0x0)
- {
+ if (pExtContent[imgstartOffset] != 0x0) {
int cur_pos = 0;
int dis_len = 0;
int new_dis_len = 0;
- char jpg_sign[3] = {0xff, 0xd8, 0xff};
- char png_sign[8] = {0x80, 0x50, 0x4e, 0x47,0x0d, 0x0a, 0x1a, 0x0a};
+ unsigned char jpg_sign[3] = {0xff, 0xd8, 0xff};
+ unsigned char png_sign[8] = {0x80, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a};
char *tmp_desc = NULL;
while (1) {
@@ -3871,67 +3506,64 @@ bool mm_file_id3tag_parse_v224(AvFileContentInfo* pInfo, unsigned char *buffer)
}
/*check end of image description*/
if ((pExtContent[imgstartOffset + cur_pos + 1] == jpg_sign[0]) ||
- (pExtContent[imgstartOffset + cur_pos + 1] == png_sign[0])) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "length of description (%d)", cur_pos);
- #endif
+ (pExtContent[imgstartOffset + cur_pos + 1] == png_sign[0])) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("length of description (%d)", cur_pos);
+#endif
break;
}
}
- cur_pos ++;
+ cur_pos++;
}
dis_len = cur_pos + 1;
tmp_desc = mmfile_malloc(sizeof(char) * dis_len);
- memcpy(tmp_desc, pExtContent + imgstartOffset, dis_len);
- debug_msg ( "tmp_desc %s\n", tmp_desc);
- /*convert description*/
- pInfo->imageInfo.imageDescription = mmfile_string_convert (tmp_desc, dis_len, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int*)&new_dis_len);
- debug_msg ( "new_desc %s(%d)\n", pInfo->imageInfo.imageDescription, new_dis_len);
- mmfile_free(tmp_desc);
+ if(tmp_desc != NULL) {
+ memcpy(tmp_desc, pExtContent + imgstartOffset, dis_len);
+ debug_msg("tmp_desc %s\n", tmp_desc);
+
+ /*convert description*/
+ pInfo->imageInfo.imageDescription = mmfile_string_convert(tmp_desc, dis_len, "UTF-8", charset_array[textEncodingType], NULL, (unsigned int *)&new_dis_len);
+ debug_msg("new_desc %s(%d)\n", pInfo->imageInfo.imageDescription, new_dis_len);
+ mmfile_free(tmp_desc);
+
+ pInfo->imageInfo.imgDesLen = new_dis_len; /**/
+ }
- pInfo->imageInfo.imgDesLen = new_dis_len; /**/
imgstartOffset += cur_pos;
- }
- else
- {
- pInfo->imageInfo.imgDesLen= 0;
+ } else {
+ pInfo->imageInfo.imgDesLen = 0;
}
- if((pExtContent[imgstartOffset] == '\0') && (realCpyFrameNum - imgstartOffset > 0))
- {
- imgstartOffset ++; // endofDesceriptionType(1byte)
+ if ((pExtContent[imgstartOffset] == '\0') && (realCpyFrameNum - imgstartOffset > 0)) {
+ imgstartOffset++; /* endofDesceriptionType(1byte) */
- while(pExtContent[imgstartOffset] == '\0') //some content has useless '\0' in front of picture data
- {
- imgstartOffset ++;
+ while (pExtContent[imgstartOffset] == '\0') { /*some content has useless '\0' in front of picture data */
+ imgstartOffset++;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "after scaning imgDescription imgstartOffset(%d) value!\n", imgstartOffset);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("after scaning imgDescription imgstartOffset(%d) value!\n", imgstartOffset);
+#endif
- if(realCpyFrameNum - imgstartOffset > 0)
- {
+ if (realCpyFrameNum - imgstartOffset > 0) {
pInfo->imageInfo.imageLen = realCpyFrameNum - imgstartOffset;
- pInfo->imageInfo.pImageBuf= mmfile_malloc (pInfo->imageInfo.imageLen+1);
+ pInfo->imageInfo.pImageBuf = mmfile_malloc(pInfo->imageInfo.imageLen + 1);
- if(pInfo->imageInfo.pImageBuf != NULL) {
- memcpy(pInfo->imageInfo.pImageBuf, pExtContent+ imgstartOffset, pInfo->imageInfo.imageLen);
+ if (pInfo->imageInfo.pImageBuf != NULL) {
+ memcpy(pInfo->imageInfo.pImageBuf, pExtContent + imgstartOffset, pInfo->imageInfo.imageLen);
pInfo->imageInfo.pImageBuf[pInfo->imageInfo.imageLen] = 0;
}
- if(IS_INCLUDE_URL(pInfo->imageInfo.imageMIMEType))
- pInfo->imageInfo.bURLInfo = true; //if mimetype is "-->", image date has an URL
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "No APIC image!! realCpyFrameNum(%d) - imgstartOffset(%d)\n", realCpyFrameNum, imgstartOffset);
- #endif
+ if (IS_INCLUDE_URL(pInfo->imageInfo.imageMIMEType))
+ pInfo->imageInfo.bURLInfo = true; /*if mimetype is "-->", image date has an URL */
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("No APIC image!! realCpyFrameNum(%d) - imgstartOffset(%d)\n", realCpyFrameNum, imgstartOffset);
+#endif
}
}
}
@@ -3939,40 +3571,32 @@ bool mm_file_id3tag_parse_v224(AvFileContentInfo* pInfo, unsigned char *buffer)
checkImgMimeTypeMax = 0;
inx = 0;
imgstartOffset = 0;
- pInfo->tagV2Info.bImageMarked= true;
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "CompTmp(%s) This Frame ID currently not Supports!!\n", CompTmp);
- #endif
+ pInfo->tagV2Info.bImageMarked = true;
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("CompTmp(%s) This Frame ID currently not Supports!!\n", CompTmp);
+#endif
}
}
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "mmf_file_id3tag_parse_v224: All of the pExtContent Values are NULL\n");
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("mmf_file_id3tag_parse_v224: All of the pExtContent Values are NULL\n");
+#endif
}
- }
- else
- {
+ } else {
curPos += purelyFramelen;
- if(purelyFramelen != 0)
+ if (purelyFramelen != 0)
needToloopv2taglen = MP3_TAGv2_23_TXT_HEADER_LEN;
}
- if(pExtContent) _FREE_EX(pExtContent);
+ if (pExtContent) _FREE_EX(pExtContent);
memset(CompTmp, 0, 4);
- if(curPos < taglen)
- {
+ if (curPos < taglen) {
needToloopv2taglen -= oneFrameLen;
v2numOfFrames++;
- }
- else
+ } else
needToloopv2taglen = MP3_TAGv2_23_TXT_HEADER_LEN;
oneFrameLen = 0;
@@ -3986,7 +3610,7 @@ bool mm_file_id3tag_parse_v224(AvFileContentInfo* pInfo, unsigned char *buffer)
release_characterset_array(charset_array);
- if(taglen)
+ if (taglen)
return true;
else
return false;
@@ -3994,76 +3618,61 @@ bool mm_file_id3tag_parse_v224(AvFileContentInfo* pInfo, unsigned char *buffer)
}
EXPORT_API
-void mm_file_id3tag_restore_content_info(AvFileContentInfo* pInfo)
+void mm_file_id3tag_restore_content_info(AvFileContentInfo *pInfo)
{
- char *mpegAudioGenre=NULL, *tmpGenreForV1Tag = NULL;
- bool bAdditionGenre= false /*, bMpegAudioFrame = false*/;
- int mpegAudioFileLen=0, idv2IntGenre=148, tmpinx=0/*, tmpinx2=0*/;
+ char *mpegAudioGenre = NULL/*, *tmpGenreForV1Tag = NULL*/;
+ bool bAdditionGenre = false /*, bMpegAudioFrame = false*/;
+ int mpegAudioFileLen = 0, idv2IntGenre = 148/*, tmpinx = 0, tmpinx2=0*/;
+#ifdef _SM_ONLY
char *pGenreForUTF16;
+#endif
+ unsigned char genre = pInfo->genre;
- // for Genre Info
- if(pInfo->tagV2Info.bGenreMarked == false)
- {
- if(pInfo->bV1tagFound == true)
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Genre: %d\n", pInfo->genre);
- #endif
- if(pInfo->genre > 147)
- {
- mpegAudioGenre = MpegAudio_Genre[148];
- }
- else
- {
- mpegAudioGenre = MpegAudio_Genre[pInfo->genre];
- }
-
- if(mpegAudioGenre!=NULL)
- {
- pInfo->genreLen = strlen(mpegAudioGenre);
- if (pInfo->genreLen > 0)
- {
- // Give space for NULL character. Hence added "+1"
- pInfo->pGenre = mmfile_malloc (sizeof(char) * (pInfo->genreLen + 1) );
- if (pInfo->pGenre)
- {
- strncpy(pInfo->pGenre, mpegAudioGenre, pInfo->genreLen);
+ /* for Genre Info */
+ if (pInfo->tagV2Info.bGenreMarked == false) {
+ if (pInfo->bV1tagFound == true) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Genre: %d\n", genre);
+#endif
+ if (genre > 147)
+ genre = 148;
+
+ if (MpegAudio_Genre[genre] != NULL) {
+ pInfo->genreLen = strlen(MpegAudio_Genre[genre]);
+ if (pInfo->genreLen > 0) {
+ /* Give space for NULL character. Hence added "+1" */
+ pInfo->pGenre = mmfile_malloc(sizeof(char) * (pInfo->genreLen + 1));
+ if (pInfo->pGenre) {
+ strncpy(pInfo->pGenre, MpegAudio_Genre[genre], pInfo->genreLen);
pInfo->pGenre[pInfo->genreLen] = '\0';
}
}
}
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Genre was not Found.\n");
+#endif
}
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Genre was not Found.\n");
- #endif
- }
- }
- else if(pInfo->tagV2Info.bGenreMarked == true)
- {
- if(pInfo->genreLen && pInfo->tagV2Info.bGenreUTF16)
- {
- pInfo->pGenre[pInfo->genreLen+1] = '\0';
- mpegAudioGenre = mmfile_malloc (sizeof(char) * (pInfo->genreLen*AV_WM_LOCALCODE_SIZE_MAX + 1) );
- pGenreForUTF16 = (char *)pInfo->pGenre;
+ } else if (pInfo->tagV2Info.bGenreMarked == true) {
+ if (pInfo->genreLen && pInfo->tagV2Info.bGenreUTF16) {
+ pInfo->pGenre[pInfo->genreLen + 1] = '\0';
+ mpegAudioGenre = mmfile_malloc(sizeof(char) * (pInfo->genreLen * AV_WM_LOCALCODE_SIZE_MAX + 1));
#ifdef _SM_ONLY
- if(WmConvert2LCode(mpegAudioGenre, sizeof ( char ) * AV_WM_LOCALCODE_SIZE_MAX * ( pInfo->genreLen + 1 ), pGenreForUTF16))
- {
+ pGenreForUTF16 = (char *)pInfo->pGenre;
+
+ if (WmConvert2LCode(mpegAudioGenre, sizeof(char) * AV_WM_LOCALCODE_SIZE_MAX * (pInfo->genreLen + 1), pGenreForUTF16)) {
pInfo->genreLen = strlen(mpegAudioGenre);
mpegAudioGenre[pInfo->genreLen] = '\0';
}
#endif
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->genreLen size is Zero Or not UTF16 code! genreLen[%d] genre[%s]\n",pInfo->genreLen,pInfo->pGenre);
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->genreLen size is Zero Or not UTF16 code! genreLen[%d] genre[%s]\n", pInfo->genreLen, pInfo->pGenre);
+#endif
if (pInfo->pGenre) {
pInfo->genreLen = strlen(pInfo->pGenre);
- mpegAudioGenre = mmfile_malloc (sizeof(char) * (pInfo->genreLen + 1) );
- if(mpegAudioGenre != NULL) {
+ mpegAudioGenre = mmfile_malloc(sizeof(char) * (pInfo->genreLen + 1));
+ if (mpegAudioGenre != NULL) {
mpegAudioGenre[pInfo->genreLen] = '\0';
strncpy(mpegAudioGenre, pInfo->pGenre, pInfo->genreLen);
}
@@ -4072,100 +3681,82 @@ void mm_file_id3tag_restore_content_info(AvFileContentInfo* pInfo)
}
}
- if(pInfo->pGenre) _FREE_EX(pInfo->pGenre);
+ if (pInfo->pGenre) _FREE_EX(pInfo->pGenre);
- tmpinx = 0;
- if(mpegAudioGenre!=NULL)
- {
+ /*tmpinx = 0;*/
+ if (mpegAudioGenre != NULL) {
/**
*Genre number
* (XXX) XXX is 0 - 148
*/
- pInfo->genreLen = strlen (mpegAudioGenre);
+ pInfo->genreLen = strlen(mpegAudioGenre);
if (pInfo->genreLen >= 3 &&
- mpegAudioGenre[0] == '(' && mpegAudioGenre[pInfo->genreLen - 1] == ')') {
+ mpegAudioGenre[0] == '(' && mpegAudioGenre[pInfo->genreLen - 1] == ')') {
bAdditionGenre = true;
for (mpegAudioFileLen = 1; mpegAudioFileLen <= pInfo->genreLen - 2; mpegAudioFileLen++) {
- if(mpegAudioGenre[mpegAudioFileLen] < '0' || mpegAudioGenre[mpegAudioFileLen] > '9') {
+ if (mpegAudioGenre[mpegAudioFileLen] < '0' || mpegAudioGenre[mpegAudioFileLen] > '9') {
bAdditionGenre = false;
break;
}
}
}
- if(bAdditionGenre == true)
- {
- idv2IntGenre = atoi(mpegAudioGenre+1);
- if(idv2IntGenre > 147 || idv2IntGenre < 0)
- {
- tmpGenreForV1Tag = MpegAudio_Genre[148];
- }
- else
- {
- tmpGenreForV1Tag = MpegAudio_Genre[idv2IntGenre];
- }
- if(tmpGenreForV1Tag!=NULL)
- {
- pInfo->genreLen = strlen(tmpGenreForV1Tag);
- if (pInfo->genreLen > 0)
- {
- // Give space for NULL character. Hence added "+1"
- pInfo->pGenre = mmfile_malloc (sizeof(char) * (pInfo->genreLen + 1) );
- if (pInfo->pGenre)
- {
- strncpy(pInfo->pGenre, tmpGenreForV1Tag, pInfo->genreLen);
+ if (bAdditionGenre == true) {
+ idv2IntGenre = atoi(mpegAudioGenre + 1);
+
+ if (idv2IntGenre > 147 || idv2IntGenre < 0)
+ idv2IntGenre = 148;
+
+ if (MpegAudio_Genre[idv2IntGenre] != NULL) {
+ pInfo->genreLen = strlen(MpegAudio_Genre[idv2IntGenre]);
+ if (pInfo->genreLen > 0) {
+ /* Give space for NULL character. Hence added "+1" */
+ pInfo->pGenre = mmfile_malloc(sizeof(char) * (pInfo->genreLen + 1));
+ if (pInfo->pGenre) {
+ strncpy(pInfo->pGenre, MpegAudio_Genre[idv2IntGenre], pInfo->genreLen);
pInfo->pGenre[pInfo->genreLen] = 0;
}
}
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pGenre = %s\n", pInfo->pGenre);
- #endif
- }
- else if (bAdditionGenre == false && pInfo->genreLen > 0)
- {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pGenre = %s\n", pInfo->pGenre);
+#endif
+ } else if (bAdditionGenre == false && pInfo->genreLen > 0) {
/**
* Genre string.
*/
-
- // Give space for NULL character. Hence added "+1"
- pInfo->pGenre = mmfile_malloc (sizeof(char) * (pInfo->genreLen + 1) );
- if (pInfo->pGenre)
- {
+
+ /* Give space for NULL character. Hence added "+1" */
+ pInfo->pGenre = mmfile_malloc(sizeof(char) * (pInfo->genreLen + 1));
+ if (pInfo->pGenre) {
strncpy(pInfo->pGenre, mpegAudioGenre, pInfo->genreLen);
pInfo->pGenre[pInfo->genreLen] = '\0';
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "pInfo->pGenre = %s, pInfo->genreLen = %d\n", pInfo->pGenre, pInfo->genreLen);
- #endif
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Failed to \"(...)\" value to genre = %s\n", pInfo->pGenre);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("pInfo->pGenre = %s, pInfo->genreLen = %d\n", pInfo->pGenre, pInfo->genreLen);
+#endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Failed to \"(...)\" value to genre = %s\n", pInfo->pGenre);
+#endif
}
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("mpegAudioGenre = %x\n", mpegAudioGenre);
+#endif
}
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "mpegAudioGenre = %x\n", mpegAudioGenre);
- #endif
- }
- if(mpegAudioGenre)
+ if (mpegAudioGenre)
_FREE_EX(mpegAudioGenre);
- }
- else
- {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Neither ID3 v1 nor v2 info doesn't have Genre Info.\n");
- #endif
+ } else {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Neither ID3 v1 nor v2 info doesn't have Genre Info.\n");
+#endif
}
}
-void mm_file_free_synclyrics_list(GList * synclyrics_list)
+void mm_file_free_synclyrics_list(GList *synclyrics_list)
{
int list_len = 0;
int idx = 0;
@@ -4181,7 +3772,7 @@ void mm_file_free_synclyrics_list(GList * synclyrics_list)
free(synclyrics_info->lyric_info);
synclyrics_info->lyric_info = NULL;
-
+
free(synclyrics_info);
synclyrics_info = NULL;
}
@@ -4190,7 +3781,7 @@ void mm_file_free_synclyrics_list(GList * synclyrics_list)
g_list_free(synclyrics_list);
synclyrics_list = NULL;
}
-
+
return;
}
diff --git a/utils/mm_file_util_validity.c b/utils/mm_file_util_validity.c
index 4ec2d2c..3248cd3 100755
--- a/utils/mm_file_util_validity.c
+++ b/utils/mm_file_util_validity.c
@@ -22,7 +22,7 @@
#include <string.h> /*memcmp*/
#include <stdlib.h> /*malloc*/
#include <mm_error.h>
-#include <mm_debug.h>
+#include "mm_file_debug.h"
#include "mm_file_utils.h"
/* Description of return value
@@ -33,62 +33,69 @@
/***********************************************************************/
/* Internal functions */
/***********************************************************************/
-static int _MMFileSearchID3Tag (MMFileIOHandle *fp, unsigned int *offset);
-static int _MMFileIsMP3Header (void *header);
-static int _MMFileIsOGGHeader (void *header);
-static int _MMFileIsMP4Header (void *header);
-static int _MMFileIsWAVHeader (void *header);
-static int _MMFileIsAVIHeader (void *header);
-static int _MMFileIsMIDHeader (void *header);
-static int _MMFileIsMMFHeader (void *header);
-static int _MMFileIsIMYHeader (void *header);
-static int _MMFileIsASFHeader (void *header);
-static int _MMFileIsAMRHeader (void *header);
-static int _MMFileIsFLACHeader (void *header);
-static int _MMFileIsFLVHeader (void *header);
-
-
+static int _MMFileSearchID3Tag(MMFileIOHandle *fp, unsigned int *offset);
+static int _MMFileIsMP3Header(void *header);
+static int _MMFileIsOGGHeader(void *header);
+static int _MMFileIsREALHeader(void *header);
+static int _MMFileIsMP4Header(void *header);
+static int _MMFileIsWAVHeader(void *header);
+static int _MMFileIsAVIHeader(void *header);
+static int _MMFileIsMIDHeader(void *header);
+static int _MMFileIsMMFHeader(void *header);
+static int _MMFileIsIMYHeader(void *header);
+static int _MMFileIsASFHeader(void *header);
+static int _MMFileIsAMRHeader(void *header);
+static int _MMFileIsFLACHeader(void *header);
+static int _MMFileIsFLVHeader(void *header);
+static int _MMFileIsMPEGTSHeader(MMFileIOHandle *fp);
+static int _MMFileIsMPEGPSHeader(void *header);
+static int _MMFileIsMPEGAUDIOHeader(void *header);
+static int _MMFileIsMPEGVIDEOHeader(void *header);
/***********************************************************************/
/* MP3 Header Check API */
/***********************************************************************/
EXPORT_API
-int MMFileFormatIsValidMP3 (const char *mmfileuri, int frameCnt)
+int MMFileFormatIsValidMP3(MMFileIOHandle *pFileIO, const char *mmfileuri, int frameCnt)
{
#define _MMFILE_MP3_HEADER_LENGTH 4
#define _MMFILE_MP3_BUFFER_LENGTH 8200
- MMFileIOHandle *fp = NULL;
- unsigned char *buffer=NULL;
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_MP3_BUFFER_LENGTH] = {0, };
long long filesize = 0;
- unsigned int sizeID3 = 0;
- int readed = 0;
- unsigned int startoffset = 0;
- unsigned int endoffset = 0;
- unsigned int i = 0, j = 0;
- int ret = 0,frameSize,count,offset;
-
- ret = mmfile_open (&fp, mmfileuri, MMFILE_RDONLY);
- if(ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
- goto exit;
+ unsigned int sizeID3 = 0;
+ int readed = 0, i = 0, j = 0;;
+ unsigned int startoffset = 0;
+ int endoffset = 0;
+ int frameSize = 0;
+ int ret = 0, count = 0, offset = 0;
+
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
}
- mmfile_seek (fp, 0L, MMFILE_SEEK_END);
- filesize = mmfile_tell (fp);
- mmfile_seek (fp, 0L, MMFILE_SEEK_SET);
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
+
+ mmfile_seek(fp, 0L, MMFILE_SEEK_END);
+ filesize = mmfile_tell(fp);
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
if (filesize < _MMFILE_MP3_HEADER_LENGTH) {
- debug_error ( "header is too small.\n");
+ debug_error("header is too small.\n");
ret = 0;
goto exit;
}
/* Search the existance of ID3 tag */
- ret = _MMFileSearchID3Tag (fp, &sizeID3);
+ ret = _MMFileSearchID3Tag(fp, &sizeID3);
if (ret == 0) {
debug_error("Error in searching the ID3 tag\n");
-// goto exit;
+ /* goto exit; */
}
ret = 0;
@@ -96,58 +103,51 @@ int MMFileFormatIsValidMP3 (const char *mmfileuri, int frameCnt)
/* set begin and end point at the file */
startoffset += sizeID3;
endoffset = startoffset + 102400;
- if(endoffset > filesize - _MMFILE_MP3_HEADER_LENGTH)
+ if (endoffset > filesize - _MMFILE_MP3_HEADER_LENGTH)
endoffset = filesize - _MMFILE_MP3_HEADER_LENGTH;
-
+
/* find sync bit */
i = startoffset;
count = 0;
-
- buffer = mmfile_malloc (_MMFILE_MP3_BUFFER_LENGTH * sizeof(char));
-
- if (NULL == buffer) {
- debug_error("Error in allocating memory for MP3 buffer\n");
- goto exit;
- }
while (i < endoffset) {
- mmfile_seek (fp, i, MMFILE_SEEK_SET);
- readed = mmfile_read (fp, buffer, _MMFILE_MP3_BUFFER_LENGTH);
+ mmfile_seek(fp, i, MMFILE_SEEK_SET);
+ readed = mmfile_read(fp, buffer, _MMFILE_MP3_BUFFER_LENGTH);
if (readed < _MMFILE_MP3_HEADER_LENGTH) {
- debug_error ( "read error. size = %d. Maybe end of file.\n", readed);
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
break;
}
offset = 1;
for (j = 0; (j <= readed - _MMFILE_MP3_HEADER_LENGTH); j = j + offset) {
- frameSize = _MMFileIsMP3Header (buffer+j);
+ frameSize = _MMFileIsMP3Header(buffer + j);
offset = 1;
-
+
if (frameSize) {
-
- if((j+frameSize) >= (endoffset-(i+_MMFILE_MP3_HEADER_LENGTH))) {
+
+ if ((j + frameSize) >= (endoffset - (i + _MMFILE_MP3_HEADER_LENGTH))) {
goto failMP3;
}
- if((j+frameSize) >= (readed - _MMFILE_MP3_HEADER_LENGTH)) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "MP3 coner hit %d %d\n", j, frameSize);
- #endif
+ if ((j + frameSize) >= (readed - _MMFILE_MP3_HEADER_LENGTH)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MP3 coner hit %d %d\n", j, frameSize);
+#endif
break;
}
- frameSize = _MMFileIsMP3Header (buffer+j+frameSize);
+ frameSize = _MMFileIsMP3Header(buffer + j + frameSize);
- if(frameSize) {
+ if (frameSize) {
offset = frameSize;
count++;
- if(count == frameCnt) {
+ if (count == frameCnt) {
ret = 1;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Header Detected at %d\n", i+j);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Detected at %d\n", i + j);
+#endif
goto exit;
}
} else {
@@ -157,24 +157,18 @@ int MMFileFormatIsValidMP3 (const char *mmfileuri, int frameCnt)
}
/*If j is zero, this loop is infinite */
- if (j ==0) j++;
+ if (j == 0) j++;
i = i + j;
}
failMP3:
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Header Not Detected at: %d\n",i+j);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Not Detected at: %d\n", i + j);
+#endif
exit:
-
- if(buffer) {
- mmfile_free (buffer);
- }
-
- if (fp) {
- mmfile_close (fp);
- }
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
return ret;
}
@@ -185,49 +179,48 @@ exit:
/* AAC Header Check API */
/***********************************************************************/
EXPORT_API
-int MMFileFormatIsValidAAC (const char *mmfileuri)
+int MMFileFormatIsValidAAC(MMFileIOHandle *pFileIO, const char *mmfileuri)
{
#define _MMFILE_AAC_HEADER_LENGTH 4
#define _MMFILE_AAC_BUFFER_LENGTH 8200
- MMFileIOHandle *fp = NULL;
- unsigned char *buffer=NULL;
- unsigned int sizeID3 = 0;
- long long filesize = 0;
- int readed = 0;
- unsigned int startoffset = 0;
- unsigned int endoffset = 0;
- unsigned int i = 0, j = 0;
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_AAC_BUFFER_LENGTH] = {0, };
+ unsigned int sizeID3 = 0;
+ long long filesize = 0;
+ int readed = 0, i = 0, j = 0;
+ int startoffset = 0;
+ int endoffset = 0;
int ret = 0;
- unsigned int sync,frameSize;
+ unsigned int sync = 0;
+ int frameSize = 0;
- if (NULL == mmfileuri) {
- debug_error ("file source is NULL\n");
- return ret;
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
}
- ret = mmfile_open (&fp, mmfileuri, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
- goto exit;
- }
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
/* Initialize the members of handle */
- mmfile_seek (fp, 0, MMFILE_SEEK_END);
+ mmfile_seek(fp, 0, MMFILE_SEEK_END);
filesize = mmfile_tell(fp);
- mmfile_seek (fp, 0, MMFILE_SEEK_SET);
+ mmfile_seek(fp, 0, MMFILE_SEEK_SET);
if (filesize < _MMFILE_AAC_HEADER_LENGTH) {
- debug_error ( "header is too small.\n");
+ debug_error("header is too small.\n");
ret = 0;
goto exit;
}
/* Search the existance of ID3 tag */
- ret = _MMFileSearchID3Tag (fp, &sizeID3);
+ ret = _MMFileSearchID3Tag(fp, &sizeID3);
if (ret == 0) {
debug_error("Error in searching the ID3 tag\n");
-// goto exit;
+ /* goto exit; */
}
ret = 0;
@@ -235,90 +228,78 @@ int MMFileFormatIsValidAAC (const char *mmfileuri)
/* set begin and end point at the file */
startoffset += sizeID3;
endoffset = startoffset + 10240;
- if(endoffset > filesize - _MMFILE_AAC_HEADER_LENGTH)
+ if (endoffset > filesize - _MMFILE_AAC_HEADER_LENGTH)
endoffset = filesize - _MMFILE_AAC_HEADER_LENGTH;
-
- buffer = mmfile_malloc (_MMFILE_AAC_BUFFER_LENGTH * sizeof(char));
- if (NULL == buffer) {
- debug_error("Error in allocating memory for AAC buffer\n");
- goto exit;
- }
-
i = startoffset;
while (i < endoffset) {
- mmfile_seek (fp, i, MMFILE_SEEK_SET);
+ mmfile_seek(fp, i, MMFILE_SEEK_SET);
+
+ readed = mmfile_read(fp, buffer, _MMFILE_AAC_BUFFER_LENGTH);
- readed = mmfile_read (fp, buffer, _MMFILE_AAC_BUFFER_LENGTH);
-
if (readed < _MMFILE_AAC_HEADER_LENGTH) {
- debug_error ( "read error. size = %d. Maybe end of file.\n", readed);
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
break;
}
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "read error. size = %d. i = %d\n", readed,i);
- #endif
- for(j=0; (j < readed - _MMFILE_AAC_HEADER_LENGTH); j++) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("read error. size = %d. i = %d\n", readed, i);
+#endif
+ for (j = 0; (j < readed - _MMFILE_AAC_HEADER_LENGTH); j++) {
- sync = ((buffer[j]<<8)|(buffer[j+1]));
+ sync = ((buffer[j] << 8) | (buffer[j + 1]));
- if ( (sync & 0xFFF6) == 0xFFF0) {
- frameSize = (((buffer[j+3]&0x03)<<11) | (buffer[j+4]<<3) | ((buffer[j+5]&0xE0)>>5));
+ if ((sync & 0xFFF6) == 0xFFF0) {
+ frameSize = (((buffer[j + 3] & 0x03) << 11) | (buffer[j + 4] << 3) | ((buffer[j + 5] & 0xE0) >> 5));
- if(frameSize == 0 ) {
- continue;
+ if (frameSize == 0) {
+ continue;
}
- if((j+frameSize) >= (endoffset-(i+2))) {
+ if ((j + frameSize) >= (endoffset - (i + 2))) {
goto fail;
}
- if((j+frameSize) >= (readed - 2)) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "AAC coner hit %d %d\n", j, frameSize);
- #endif
+ if ((j + frameSize) >= (readed - 2)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("AAC coner hit %d %d\n", j, frameSize);
+#endif
break;
}
- sync = ( (buffer[j+frameSize]<<8) | (buffer[j+frameSize+1]));
+ sync = ((buffer[j + frameSize] << 8) | (buffer[j + frameSize + 1]));
if ((sync & 0xFFF6) == 0xFFF0) {
ret = 1;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "AAC ADTS Header Detected at %d\n", i+j);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("AAC ADTS Header Detected at %d\n", i + j);
+#endif
goto exit;
}
- } else if (!memcmp((buffer+j),"ADIF",4)) {
+ } else if (!memcmp((buffer + j), "ADIF", 4)) {
ret = 1;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "AAC ADIF Header Detected at %d\n", i+j);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("AAC ADIF Header Detected at %d\n", i + j);
+#endif
goto exit;
}
}
/*If j is zero, this loop is infinite */
- if (j ==0) j++;
+ if (j == 0) j++;
i = i + j;
}
fail:
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Header Detected Failed\n");
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Detected Failed\n");
+#endif
exit:
- if (buffer) {
- mmfile_free (buffer);
- }
-
- if (fp) {
- mmfile_close (fp);
- }
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
return ret;
}
@@ -329,52 +310,49 @@ exit:
/* OGG Header Check API */
/***********************************************************************/
EXPORT_API
-int MMFileFormatIsValidOGG (const char *mmfileuri)
+int MMFileFormatIsValidOGG(MMFileIOHandle *pFileIO, const char *mmfileuri)
{
#define _MMFILE_OGG_HEADER_LENGTH 4
#define _MMFILE_OGG_BUFFER_LENGTH 512
#define _MMFILE_OGG_CHECK_LIMIT (_MMFILE_OGG_HEADER_LENGTH * 1000)
- MMFileIOHandle *fp = NULL;
- unsigned char buffer[_MMFILE_OGG_BUFFER_LENGTH] = {0,};
- unsigned int sizeID3 = 0;
- long long filesize = 0;
- int readed = 0;
- unsigned int startoffset = 0;
- unsigned int endoffset = 0;
- unsigned int i = 0, j = 0;
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_OGG_BUFFER_LENGTH] = {0, };
+ unsigned int sizeID3 = 0;
+ long long filesize = 0;
+ int readed = 0, i = 0, j = 0;
+ int startoffset = 0;
+ int endoffset = 0;
int ret = 0;
- unsigned int check_limit = 0;
+ int check_limit = 0;
- if (NULL == mmfileuri) {
- debug_error ("file source is NULL\n");
- ret = 0;
- return ret;
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ ret = 0;
+ goto exit;
+ }
}
- ret = mmfile_open (&fp, mmfileuri, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
- ret = 0;
- goto exit;
- }
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
/* Initialize the members of handle */
- mmfile_seek (fp, 0, MMFILE_SEEK_END);
+ mmfile_seek(fp, 0, MMFILE_SEEK_END);
filesize = mmfile_tell(fp);
- mmfile_seek (fp, 0, MMFILE_SEEK_SET);
+ mmfile_seek(fp, 0, MMFILE_SEEK_SET);
if (filesize < _MMFILE_OGG_HEADER_LENGTH) {
- debug_error ( "header is too small.\n");
+ debug_error("header is too small.\n");
ret = 0;
goto exit;
}
/* Search the existance of ID3 tag */
- ret = _MMFileSearchID3Tag (fp, &sizeID3);
- if(ret == 0) {
+ ret = _MMFileSearchID3Tag(fp, &sizeID3);
+ if (ret == 0) {
debug_error("Error in searching the ID3 tag\n");
-// goto exit;
+ /* goto exit; */
}
ret = 0;
@@ -387,33 +365,32 @@ int MMFileFormatIsValidOGG (const char *mmfileuri)
i = startoffset;
while (i <= check_limit) {
- mmfile_seek (fp, i, MMFILE_SEEK_SET);
- readed = mmfile_read (fp, buffer, _MMFILE_OGG_BUFFER_LENGTH);
+ mmfile_seek(fp, i, MMFILE_SEEK_SET);
+ readed = mmfile_read(fp, buffer, _MMFILE_OGG_BUFFER_LENGTH);
if (readed < _MMFILE_OGG_HEADER_LENGTH) {
- debug_error ( "read error. size = %d. Maybe end of file.\n", readed);
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
break;
}
for (j = 0; (j <= readed - _MMFILE_OGG_HEADER_LENGTH); j++) {
- if (1 == _MMFileIsOGGHeader (buffer+j)) {
+ if (1 == _MMFileIsOGGHeader(buffer + j)) {
ret = 1;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Header Detected at %d\n", i+j);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Detected at %d\n", i + j);
+#endif
goto exit;
}
}
- memset (buffer, 0x00, _MMFILE_OGG_BUFFER_LENGTH);
+ memset(buffer, 0x00, _MMFILE_OGG_BUFFER_LENGTH);
i = i + j;
}
exit:
- if (fp) {
- mmfile_close (fp);
- }
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
return ret;
}
@@ -424,40 +401,38 @@ exit:
/* MIDI Header Check API */
/***********************************************************************/
EXPORT_API
-int MMFileFormatIsValidMID (const char *mmfileuri)
+int MMFileFormatIsValidMID(MMFileIOHandle *pFileIO, const char *mmfileuri)
{
#define _MMFILE_MIDI_HEADER_LENGTH 4
#define _MMFILE_MIDI_BUFFER_LENGTH 512
#define _MMFILE_MIDI_CHECK_LIMIT (_MMFILE_MIDI_HEADER_LENGTH * 1024)
- MMFileIOHandle *fp = NULL;
- unsigned char buffer[_MMFILE_MIDI_BUFFER_LENGTH] = {0,};
- long long filesize = 0;
- int readed = 0;
- unsigned int startoffset = 0;
- unsigned int endoffset = 0;
- unsigned int i = 0, j = 0;
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_MIDI_BUFFER_LENGTH] = {0, };
+ long long filesize = 0;
+ int readed = 0, i = 0, j = 0;
+ int startoffset = 0;
+ int endoffset = 0;
int ret = 0;
- unsigned int check_limit = 0;
+ int check_limit = 0;
- if (NULL == mmfileuri) {
- debug_error ("file source is NULL\n");
- return ret;
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
}
- ret = mmfile_open (&fp, mmfileuri, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
- goto exit;
- }
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
/* Initialize the members of handle */
- mmfile_seek (fp, 0, MMFILE_SEEK_END);
+ mmfile_seek(fp, 0, MMFILE_SEEK_END);
filesize = mmfile_tell(fp);
- mmfile_seek (fp, 0, MMFILE_SEEK_SET);
+ mmfile_seek(fp, 0, MMFILE_SEEK_SET);
if (filesize < _MMFILE_MIDI_HEADER_LENGTH) {
- debug_error ( "header is too small.\n");
+ debug_error("header is too small.\n");
ret = 0;
goto exit;
}
@@ -472,33 +447,32 @@ int MMFileFormatIsValidMID (const char *mmfileuri)
i = startoffset;
while (i <= check_limit) {
- mmfile_seek (fp, i, MMFILE_SEEK_SET);
- readed = mmfile_read (fp, buffer, _MMFILE_MIDI_BUFFER_LENGTH);
+ mmfile_seek(fp, i, MMFILE_SEEK_SET);
+ readed = mmfile_read(fp, buffer, _MMFILE_MIDI_BUFFER_LENGTH);
if (readed < _MMFILE_MIDI_HEADER_LENGTH) {
- debug_error ( "read error. size = %d. Maybe end of file.\n", readed);
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
break;
}
for (j = 0; (j <= readed - _MMFILE_MIDI_HEADER_LENGTH); j++) {
- if (1 == _MMFileIsMIDHeader (buffer+j)) {
+ if (1 == _MMFileIsMIDHeader(buffer + j)) {
ret = 1;
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Header Detected at %d\n", i+j);
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Detected at %d\n", i + j);
+#endif
goto exit;
}
}
- memset (buffer, 0x00, _MMFILE_MIDI_BUFFER_LENGTH);
+ memset(buffer, 0x00, _MMFILE_MIDI_BUFFER_LENGTH);
i = i + j;
}
exit:
- if (fp) {
- mmfile_close (fp);
- }
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
return ret;
}
@@ -508,66 +482,44 @@ exit:
/* WAV Header Check API */
/***********************************************************************/
EXPORT_API
-int MMFileFormatIsValidWAV (const char *mmfileuri)
+int MMFileFormatIsValidWAV(MMFileIOHandle *pFileIO, const char *mmfileuri)
{
#define _MMFILE_WAV_HEADER_LENGTH 15
- MMFileIOHandle *fp = NULL;
- unsigned char buffer[_MMFILE_WAV_HEADER_LENGTH] = {0,};
- long long filesize = 0;
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_WAV_HEADER_LENGTH] = {0, };
int readed = 0;
- unsigned int startoffset = 0;
int ret = 0;
- if (NULL == mmfileuri) {
- debug_error ("file source is NULL\n");
- return ret;
- }
-
- ret = mmfile_open (&fp, mmfileuri, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
- goto exit;
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
}
- /* Initialize the members of handle */
- mmfile_seek (fp, 0, MMFILE_SEEK_END);
- filesize = mmfile_tell(fp);
- mmfile_seek (fp, 0, MMFILE_SEEK_SET);
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
- if (filesize < _MMFILE_WAV_HEADER_LENGTH) {
- debug_error ( "header is too small.\n");
- ret = 0;
- goto exit;
- }
+ readed = mmfile_read(fp, buffer, _MMFILE_WAV_HEADER_LENGTH);
- ret = 0;
-
- /* set begin and end point at the file */
- startoffset = 0;
-
- mmfile_seek (fp, startoffset, MMFILE_SEEK_SET);
-
- readed = mmfile_read (fp, buffer, _MMFILE_WAV_HEADER_LENGTH);
if (_MMFILE_WAV_HEADER_LENGTH != readed) {
- debug_error ( "read error. size = %d. Maybe end of file.\n", readed);
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
goto exit;
}
- if (1 == _MMFileIsWAVHeader (buffer)) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Header Detected\n");
- #endif
+ if (1 == _MMFileIsWAVHeader(buffer)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Detected\n");
+#endif
ret = 1;
goto exit;
}
-
exit:
- if (fp) {
- mmfile_close (fp);
- }
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
return ret;
}
@@ -578,36 +530,35 @@ exit:
/* MP4 Header Check API */
/***********************************************************************/
EXPORT_API
-int MMFileFormatIsValidMP4 (const char *mmfileuri)
+int MMFileFormatIsValidMP4(MMFileIOHandle *pFileIO, const char *mmfileuri)
{
#define _MMFILE_MP4_HEADER_LENGTH 4
#define _MMFILE_MP4_CHECK_LIMIT (1024*10) /*10Kbyte*/
- MMFileIOHandle *fp = NULL;
- unsigned char buffer[_MMFILE_MP4_HEADER_LENGTH] = {0,};
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_MP4_HEADER_LENGTH] = {0, };
long long filesize = 0;
int readed = 0;
unsigned int startoffset = 0;
int ret = 0;
unsigned int check_limit = 0;
- if (NULL == mmfileuri) {
- debug_error ("file source is NULL\n");
- return ret;
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
}
- ret = mmfile_open (&fp, mmfileuri, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
- goto exit;
- }
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
/* Initialize the members of handle */
- mmfile_seek (fp, 0, MMFILE_SEEK_END);
+ mmfile_seek(fp, 0, MMFILE_SEEK_END);
filesize = mmfile_tell(fp);
- mmfile_seek (fp, 0, MMFILE_SEEK_SET);
+ mmfile_seek(fp, 0, MMFILE_SEEK_SET);
if (filesize < _MMFILE_MP4_HEADER_LENGTH) {
- debug_error ( "header is too small.\n");
+ debug_error("header is too small.\n");
ret = 0;
goto exit;
}
@@ -615,31 +566,30 @@ int MMFileFormatIsValidMP4 (const char *mmfileuri)
ret = 0;
/**@note weak check*/
- check_limit = (filesize > _MMFILE_MP4_CHECK_LIMIT) ? _MMFILE_MP4_CHECK_LIMIT: filesize;
+ check_limit = (filesize > _MMFILE_MP4_CHECK_LIMIT) ? _MMFILE_MP4_CHECK_LIMIT : filesize;
for (startoffset = 0; check_limit - (startoffset + _MMFILE_MP4_HEADER_LENGTH) > 0; startoffset++) {
- mmfile_seek (fp, startoffset, MMFILE_SEEK_SET);
+ mmfile_seek(fp, startoffset, MMFILE_SEEK_SET);
- readed = mmfile_read (fp, buffer, _MMFILE_MP4_HEADER_LENGTH);
+ readed = mmfile_read(fp, buffer, _MMFILE_MP4_HEADER_LENGTH);
if (readed != _MMFILE_MP4_HEADER_LENGTH) {
- debug_error ( "read error. size = %d. Maybe end of file.\n", readed);
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
goto exit;
}
/*input is 4byte*/
- if (1 == _MMFileIsMP4Header (buffer)) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("MP4 Header Detected\n");
- #endif
+ if (1 == _MMFileIsMP4Header(buffer)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("MP4 Header Detected\n");
+#endif
ret = 1;
goto exit;
}
}
exit:
- if (fp) {
- mmfile_close (fp);
- }
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
return ret;
}
@@ -649,63 +599,44 @@ exit:
/* AVI Header Check API */
/***********************************************************************/
EXPORT_API
-int MMFileFormatIsValidAVI (const char *mmfileuri)
+int MMFileFormatIsValidAVI(MMFileIOHandle *pFileIO, const char *mmfileuri)
{
#define _MMFILE_AVI_HEADER_LENGTH 12
- MMFileIOHandle *fp = NULL;
- unsigned char buffer[_MMFILE_AVI_HEADER_LENGTH] = {0,};
- long long filesize = 0;
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_AVI_HEADER_LENGTH] = {0, };
int readed = 0;
- unsigned int startoffset = 0;
int ret = 0;
- if (NULL == mmfileuri) {
- debug_error ("file source is NULL\n");
- return ret;
- }
-
- ret = mmfile_open (&fp, mmfileuri, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
- goto exit;
- }
-
- /* Initialize the members of handle */
- mmfile_seek (fp, 0, MMFILE_SEEK_END);
- filesize = mmfile_tell(fp);
- mmfile_seek (fp, 0, MMFILE_SEEK_SET);
-
- if (filesize < _MMFILE_AVI_HEADER_LENGTH) {
- debug_error ( "header is too small.\n");
- ret = 0;
- goto exit;
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
}
- ret = 0;
- startoffset = 0;
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
- mmfile_seek (fp, startoffset, MMFILE_SEEK_SET);
+ readed = mmfile_read(fp, buffer, _MMFILE_AVI_HEADER_LENGTH);
- readed = mmfile_read (fp, buffer, _MMFILE_AVI_HEADER_LENGTH);
if (_MMFILE_AVI_HEADER_LENGTH != readed) {
- debug_error ( "read error. size = %d. Maybe end of file.\n", readed);
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
goto exit;
}
- if (1 == _MMFileIsAVIHeader (buffer)) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Header Detected \n");
- #endif
+ if (1 == _MMFileIsAVIHeader(buffer)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Detected \n");
+#endif
ret = 1;
goto exit;
}
exit:
- if (fp) {
- mmfile_close (fp);
- }
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
return ret;
}
@@ -716,62 +647,43 @@ exit:
/* ASF Header Check API */
/***********************************************************************/
EXPORT_API
-int MMFileFormatIsValidASF (const char *mmfileuri)
+int MMFileFormatIsValidASF(MMFileIOHandle *pFileIO, const char *mmfileuri)
{
#define _MMFILE_ASF_HEADER_LENGTH 16
- MMFileIOHandle *fp = NULL;
- unsigned char buffer[_MMFILE_ASF_HEADER_LENGTH] = {0,};
- long long filesize = 0;
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_ASF_HEADER_LENGTH] = {0, };
int readed = 0;
- unsigned int startoffset = 0;
int ret = 0;
- if (NULL == mmfileuri) {
- debug_error ("file source is NULL\n");
- return ret;
- }
-
- ret = mmfile_open (&fp, mmfileuri, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
- goto exit;
- }
-
- /* Initialize the members of handle */
- mmfile_seek (fp, 0, MMFILE_SEEK_END);
- filesize = mmfile_tell(fp);
- mmfile_seek (fp, 0, MMFILE_SEEK_SET);
-
- if (filesize < _MMFILE_ASF_HEADER_LENGTH) {
- debug_error ( "header is too small.\n");
- ret = 0;
- goto exit;
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
}
- ret = 0;
- startoffset = 0;
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
- mmfile_seek (fp, startoffset, MMFILE_SEEK_SET);
+ readed = mmfile_read(fp, buffer, _MMFILE_ASF_HEADER_LENGTH);
- readed = mmfile_read (fp, buffer, _MMFILE_ASF_HEADER_LENGTH);
if (_MMFILE_ASF_HEADER_LENGTH != readed) {
- debug_error ( "read error. size = %d. Maybe end of file.\n", readed);
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
goto exit;
}
- if (1 == _MMFileIsASFHeader (buffer)) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Header Detected\n");
- #endif
+ if (1 == _MMFileIsASFHeader(buffer)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Detected\n");
+#endif
ret = 1;
goto exit;
}
exit:
- if (fp) {
- mmfile_close (fp);
- }
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
return ret;
}
@@ -780,62 +692,43 @@ exit:
/* WMA Header Check API */
/***********************************************************************/
EXPORT_API
-int MMFileFormatIsValidWMA (const char *mmfileuri)
+int MMFileFormatIsValidWMA(MMFileIOHandle *pFileIO, const char *mmfileuri)
{
#define _MMFILE_ASF_HEADER_LENGTH 16
- MMFileIOHandle *fp = NULL;
- unsigned char buffer[_MMFILE_ASF_HEADER_LENGTH] = {0,};
- long long filesize = 0;
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_ASF_HEADER_LENGTH] = {0, };
int readed = 0;
- unsigned int startoffset = 0;
int ret = 0;
- if (NULL == mmfileuri) {
- debug_error ("file source is NULL\n");
- return ret;
- }
-
- ret = mmfile_open (&fp, mmfileuri, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
- goto exit;
- }
-
- /* Initialize the members of handle */
- mmfile_seek (fp, 0, MMFILE_SEEK_END);
- filesize = mmfile_tell(fp);
- mmfile_seek (fp, 0, MMFILE_SEEK_SET);
-
- if (filesize < _MMFILE_ASF_HEADER_LENGTH) {
- debug_error ( "header is too small.\n");
- ret = 0;
- goto exit;
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
}
- ret = 0;
- startoffset = 0;
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
- mmfile_seek (fp, startoffset, MMFILE_SEEK_SET);
+ readed = mmfile_read(fp, buffer, _MMFILE_ASF_HEADER_LENGTH);
- readed = mmfile_read (fp, buffer, _MMFILE_ASF_HEADER_LENGTH);
if (_MMFILE_ASF_HEADER_LENGTH != readed) {
- debug_error ( "read error. size = %d. Maybe end of file.\n", readed);
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
goto exit;
}
- if (1 == _MMFileIsASFHeader (buffer)) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Header Detected\n");
- #endif
+ if (1 == _MMFileIsASFHeader(buffer)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Detected\n");
+#endif
ret = 1;
goto exit;
}
exit:
- if (fp) {
- mmfile_close (fp);
- }
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
return ret;
}
@@ -846,62 +739,43 @@ exit:
/* WMV Header Check API */
/***********************************************************************/
EXPORT_API
-int MMFileFormatIsValidWMV (const char *mmfileuri)
+int MMFileFormatIsValidWMV(MMFileIOHandle *pFileIO, const char *mmfileuri)
{
- #define _MMFILE_ASF_HEADER_LENGTH 16
- MMFileIOHandle *fp = NULL;
- unsigned char buffer[_MMFILE_ASF_HEADER_LENGTH] = {0,};
- long long filesize = 0;
+#define _MMFILE_ASF_HEADER_LENGTH 16
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_ASF_HEADER_LENGTH] = {0, };
int readed = 0;
- unsigned int startoffset = 0;
int ret = 0;
- if (NULL == mmfileuri) {
- debug_error ("file source is NULL\n");
- return ret;
- }
-
- ret = mmfile_open (&fp, mmfileuri, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
- goto exit;
- }
-
- /* Initialize the members of handle */
- mmfile_seek (fp, 0, MMFILE_SEEK_END);
- filesize = mmfile_tell(fp);
- mmfile_seek (fp, 0, MMFILE_SEEK_SET);
-
- if (filesize < _MMFILE_ASF_HEADER_LENGTH) {
- debug_error ( "header is too small.\n");
- ret = 0;
- goto exit;
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
}
- ret = 0;
- startoffset = 0;
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
- mmfile_seek (fp, startoffset, MMFILE_SEEK_SET);
+ readed = mmfile_read(fp, buffer, _MMFILE_ASF_HEADER_LENGTH);
- readed = mmfile_read (fp, buffer, _MMFILE_ASF_HEADER_LENGTH);
if (_MMFILE_ASF_HEADER_LENGTH != readed) {
- debug_error ( "read error. size = %d. Maybe end of file.\n", readed);
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
goto exit;
}
- if (1 == _MMFileIsASFHeader (buffer)) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Header Detected\n");
- #endif
+ if (1 == _MMFileIsASFHeader(buffer)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Detected\n");
+#endif
ret = 1;
goto exit;
}
exit:
- if (fp) {
- mmfile_close (fp);
- }
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
return ret;
}
@@ -911,63 +785,44 @@ exit:
/* MMF Header Check API */
/***********************************************************************/
EXPORT_API
-int MMFileFormatIsValidMMF (const char *mmfileuri)
+int MMFileFormatIsValidMMF(MMFileIOHandle *pFileIO, const char *mmfileuri)
{
#define _MMFILE_MMF_HEADER_LENGTH 18
- MMFileIOHandle *fp = NULL;
- unsigned char buffer[_MMFILE_MMF_HEADER_LENGTH] = {0,};
- long long filesize = 0;
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_MMF_HEADER_LENGTH] = {0, };
int readed = 0;
- unsigned int startoffset = 0;
int ret = 0;
- if (NULL == mmfileuri) {
- debug_error ("file source is NULL\n");
- return ret;
- }
-
- ret = mmfile_open (&fp, mmfileuri, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
- goto exit;
- }
-
- /* Initialize the members of handle */
- mmfile_seek (fp, 0, MMFILE_SEEK_END);
- filesize = mmfile_tell(fp);
- mmfile_seek (fp, 0, MMFILE_SEEK_SET);
-
- if (filesize < _MMFILE_MMF_HEADER_LENGTH) {
- debug_error ( "header is too small.\n");
- ret = 0;
- goto exit;
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
}
- ret = 0;
- startoffset = 0;
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
- mmfile_seek (fp, startoffset, MMFILE_SEEK_SET);
+ readed = mmfile_read(fp, buffer, _MMFILE_MMF_HEADER_LENGTH);
- readed = mmfile_read (fp, buffer, _MMFILE_MMF_HEADER_LENGTH);
if (_MMFILE_MMF_HEADER_LENGTH != readed) {
- debug_error ( "read error. size = %d. Maybe end of file.\n", readed);
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
goto exit;
}
- if (1 == _MMFileIsMMFHeader (buffer)) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Header Detected\n");
- #endif
+ if (1 == _MMFileIsMMFHeader(buffer)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Detected\n");
+#endif
ret = 1;
goto exit;
}
exit:
- if (fp) {
- mmfile_close (fp);
- }
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
return ret;
}
@@ -978,63 +833,44 @@ exit:
/* MMF Header Check API */
/***********************************************************************/
EXPORT_API
-int MMFileFormatIsValidIMY (const char *mmfileuri)
+int MMFileFormatIsValidIMY(MMFileIOHandle *pFileIO, const char *mmfileuri)
{
#define _MMFILE_IMY_HEADER_LENGTH 13
- MMFileIOHandle *fp = NULL;
- unsigned char buffer[_MMFILE_IMY_HEADER_LENGTH] = {0,};
- long long filesize = 0;
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_IMY_HEADER_LENGTH] = {0, };
int readed = 0;
- unsigned int startoffset = 0;
int ret = 0;
- if (NULL == mmfileuri) {
- debug_error ("file source is NULL\n");
- return ret;
- }
-
- ret = mmfile_open (&fp, mmfileuri, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
- goto exit;
- }
-
- /* Initialize the members of handle */
- mmfile_seek (fp, 0, MMFILE_SEEK_END);
- filesize = mmfile_tell(fp);
- mmfile_seek (fp, 0, MMFILE_SEEK_SET);
-
- if (filesize < _MMFILE_IMY_HEADER_LENGTH) {
- debug_error ( "header is too small.\n");
- ret = 0;
- goto exit;
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
}
- ret = 0;
- startoffset = 0;
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
- mmfile_seek (fp, startoffset, MMFILE_SEEK_SET);
+ readed = mmfile_read(fp, buffer, _MMFILE_IMY_HEADER_LENGTH);
- readed = mmfile_read (fp, buffer, _MMFILE_IMY_HEADER_LENGTH);
if (_MMFILE_IMY_HEADER_LENGTH != readed) {
- debug_error ( "read error. size = %d. Maybe end of file.\n", readed);
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
goto exit;
}
- if (1 == _MMFileIsIMYHeader (buffer)) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Header Detected\n");
- #endif
+ if (1 == _MMFileIsIMYHeader(buffer)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Detected\n");
+#endif
ret = 1;
goto exit;
}
exit:
- if (fp) {
- mmfile_close (fp);
- }
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
return ret;
}
@@ -1045,64 +881,45 @@ exit:
/* AMR Header Check API */
/***********************************************************************/
EXPORT_API
-int MMFileFormatIsValidAMR (const char *mmfileuri)
+int MMFileFormatIsValidAMR(MMFileIOHandle *pFileIO, const char *mmfileuri)
{
#define _MMFILE_AMR_MAX_HEADER_SIZE 15
#define _MMFILE_AMR_MIN_HEADER_SIZE 6
- MMFileIOHandle *fp = NULL;
- unsigned char buffer[_MMFILE_AMR_MAX_HEADER_SIZE] = {0,};
- long long filesize = 0;
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_AMR_MAX_HEADER_SIZE] = {0, };
int readed = 0;
- unsigned int startoffset = 0;
int ret = 0;
- if (NULL == mmfileuri) {
- debug_error ("file source is NULL\n");
- return ret;
- }
-
- ret = mmfile_open (&fp, mmfileuri, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
- goto exit;
- }
-
- /* Initialize the members of handle */
- mmfile_seek (fp, 0, MMFILE_SEEK_END);
- filesize = mmfile_tell(fp);
- mmfile_seek (fp, 0, MMFILE_SEEK_SET);
-
- if (filesize < _MMFILE_AMR_MAX_HEADER_SIZE) {
- debug_error ("header is too small.\n");
- ret = 0;
- goto exit;
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
}
- ret = 0;
- startoffset = 0;
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
- mmfile_seek (fp, startoffset, MMFILE_SEEK_SET);
+ readed = mmfile_read(fp, buffer, _MMFILE_AMR_MAX_HEADER_SIZE);
- readed = mmfile_read (fp, buffer, _MMFILE_AMR_MAX_HEADER_SIZE);
if (_MMFILE_AMR_MAX_HEADER_SIZE != readed) {
- debug_error ("read error. size = %d. Maybe end of file.\n", readed);
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
goto exit;
}
- if (1 == _MMFileIsAMRHeader (buffer)) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Header Detected\n");
- #endif
+ if (1 == _MMFileIsAMRHeader(buffer)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Detected\n");
+#endif
ret = 1;
goto exit;
}
exit:
- if (fp) {
- mmfile_close (fp);
- }
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
return ret;
}
@@ -1111,40 +928,33 @@ exit:
/* Matroska Header Check API */
/***********************************************************************/
EXPORT_API
-int MMFileFormatIsValidMatroska (const char *mmfileuri)
+int MMFileFormatIsValidMatroska(MMFileIOHandle *pFileIO, const char *mmfileuri)
{
#define _MMFILE_EBML_MARKER_LENGTH 4
#define _MMFILE_MKV_READ_BUFFER_LENGTH 2048
- MMFileIOHandle *fp = NULL;
- unsigned char* buffer = NULL;
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_MKV_READ_BUFFER_LENGTH] = {0, };
int readed = 0;
- unsigned int startoffset = 0;
int ret = 0;
- int len_mask = 0x80, size = 1, n = 1, total = 0;
+ int len_mask = 0x80;
+ unsigned int size = 1, n = 1, total = 0;
char probe_data[] = { 'm', 'a', 't', 'r', 'o', 's', 'k', 'a' };
- if (NULL == mmfileuri) {
- debug_error ("file source is NULL\n");
- return ret;
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
}
- ret = mmfile_open (&fp, mmfileuri, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
- goto exit;
- }
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
- buffer = mmfile_malloc (_MMFILE_MKV_READ_BUFFER_LENGTH * sizeof(char));
- if (buffer == NULL) {
- debug_error ( "buffer is null\n", readed);
- ret = 0;
- goto exit;
- }
+ readed = mmfile_read(fp, buffer, _MMFILE_MKV_READ_BUFFER_LENGTH);
- readed = mmfile_read (fp, buffer, _MMFILE_MKV_READ_BUFFER_LENGTH);
if (_MMFILE_MKV_READ_BUFFER_LENGTH != readed) {
- debug_error ( "read error. size = %d. Maybe end of file.\n", readed);
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
goto exit;
}
@@ -1152,7 +962,7 @@ int MMFileFormatIsValidMatroska (const char *mmfileuri)
/* ebml header? */
if (buffer[0] != 0x1A || buffer[1] != 0x45 || buffer[2] != 0xDF || buffer[3] != 0xA3) {
#ifdef __MMFILE_TEST_MODE__
- debug_msg ("This is not a EBML format\n");
+ debug_msg("This is not a EBML format\n");
#endif
ret = 0;
goto exit;
@@ -1161,21 +971,21 @@ int MMFileFormatIsValidMatroska (const char *mmfileuri)
/* length of header */
total = buffer[4];
#ifdef __MMFILE_TEST_MODE__
- debug_msg ("Initial total header size = [0x%x]\n", total);
+ debug_msg("Initial total header size = [0x%x]\n", total);
#endif
while (size <= 8 && !(total & len_mask)) {
- debug_error ("This case can not be handled yet....");
+ debug_error("This case can not be handled yet....");
size++;
len_mask >>= 1;
}
#ifdef __MMFILE_TEST_MODE__
- debug_msg ("Final total header size = [%d]\n", total);
+ debug_msg("Final total header size = [%d]\n", total);
#endif
if (size > 8) {
- debug_error ("This case can not be handled yet....");
+ debug_error("This case can not be handled yet....");
ret = 0;
goto exit;
}
@@ -1184,17 +994,17 @@ int MMFileFormatIsValidMatroska (const char *mmfileuri)
while (n < size) {
total = (total << 8) | buffer[4 + n++];
- debug_error ("This case can not be handled yet....");
+ debug_error("This case can not be handled yet....");
}
/* Does the probe data contain the whole header? */
if (_MMFILE_MKV_READ_BUFFER_LENGTH < 4 + size + total)
return 0;
- for (n = 4+size ; n <= 4+size+total - sizeof (probe_data); n++) {
- if (!memcmp (&buffer[n], probe_data, sizeof (probe_data))) {
+ for (n = 4 + size ; n <= 4 + size + total - sizeof(probe_data); n++) {
+ if (!memcmp(&buffer[n], probe_data, sizeof(probe_data))) {
#ifdef __MMFILE_TEST_MODE__
- debug_msg ("String matroska found!!!\n");
+ debug_msg("String matroska found!!!\n");
#endif
ret = 1;
goto exit;
@@ -1202,13 +1012,8 @@ int MMFileFormatIsValidMatroska (const char *mmfileuri)
}
exit:
- if (buffer) {
- mmfile_free (buffer);
- }
-
- if (fp) {
- mmfile_close (fp);
- }
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
return ret;
}
@@ -1217,7 +1022,7 @@ exit:
/* QT Header Check API */
/***********************************************************************/
EXPORT_API
-int MMFileFormatIsValidQT (const char *mmfileuri)
+int MMFileFormatIsValidQT(MMFileIOHandle *pFileIO, const char *mmfileuri)
{
return 1;
}
@@ -1226,162 +1031,360 @@ int MMFileFormatIsValidQT (const char *mmfileuri)
/* Flac Header Check API */
/***********************************************************************/
EXPORT_API
-int MMFileFormatIsValidFLAC (const char *mmfileuri)
+int MMFileFormatIsValidFLAC(MMFileIOHandle *pFileIO, const char *mmfileuri)
{
#define _MMFILE_FLAC_HEADER_LENGTH 5 /*fLaC*/
- MMFileIOHandle *fp = NULL;
- unsigned char buffer[_MMFILE_FLAC_HEADER_LENGTH] = {0,};
- long long filesize = 0;
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_FLAC_HEADER_LENGTH] = {0, };
int readed = 0;
- unsigned int startoffset = 0;
int ret = 0;
- if (NULL == mmfileuri) {
- debug_error ("file source is NULL\n");
- return ret;
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
+ }
+
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
+
+ readed = mmfile_read(fp, buffer, _MMFILE_FLAC_HEADER_LENGTH);
+
+ if (_MMFILE_FLAC_HEADER_LENGTH != readed) {
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
+ ret = 0;
+ goto exit;
}
- ret = mmfile_open (&fp, mmfileuri, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
+ if (1 == _MMFileIsFLACHeader(buffer)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Detected\n");
+#endif
+ ret = 1;
goto exit;
}
- /* Initialize the members of handle */
- mmfile_seek (fp, 0, MMFILE_SEEK_END);
- filesize = mmfile_tell(fp);
- mmfile_seek (fp, 0, MMFILE_SEEK_SET);
+exit:
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
+
+ return ret;
+}
+
+/***********************************************************************/
+/* FLV(flash video) Header Check API */
+/***********************************************************************/
+EXPORT_API
+int MMFileFormatIsValidFLV(MMFileIOHandle *pFileIO, const char *mmfileuri)
+{
+#define _MMFILE_FLV_HEADER_LENGTH 4 /*FLV*/
+
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_FLV_HEADER_LENGTH] = {0, };
+ int readed = 0;
+ int ret = 0;
- if (filesize < _MMFILE_FLAC_HEADER_LENGTH) {
- debug_error ( "header is too small.\n");
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
+ }
+
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
+
+ readed = mmfile_read(fp, buffer, _MMFILE_FLV_HEADER_LENGTH);
+
+ if (_MMFILE_FLV_HEADER_LENGTH != readed) {
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
goto exit;
}
- ret = 0;
+ if (1 == _MMFileIsFLVHeader(buffer)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Detected\n");
+#endif
+ ret = 1;
+ goto exit;
+ }
- /* set begin and end point at the file */
- startoffset = 0;
+exit:
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
- mmfile_seek (fp, startoffset, MMFILE_SEEK_SET);
+ return ret;
+}
- readed = mmfile_read (fp, buffer, _MMFILE_FLAC_HEADER_LENGTH);
- if (_MMFILE_FLAC_HEADER_LENGTH != readed) {
- debug_error ( "read error. size = %d. Maybe end of file.\n", readed);
+
+/***********************************************************************/
+/* REAL Header Check API */
+/***********************************************************************/
+EXPORT_API
+int MMFileFormatIsValidREAL(MMFileIOHandle *pFileIO, const char *mmfileuri)
+{
+#define _MMFILE_RMVB_HEADER_LENGTH 4 /*RMF*/
+
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_RMVB_HEADER_LENGTH] = {0, };
+ int readed = 0;
+ int ret = 0;
+
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
+ }
+
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
+
+ readed = mmfile_read(fp, buffer, _MMFILE_RMVB_HEADER_LENGTH);
+
+ if (_MMFILE_RMVB_HEADER_LENGTH != readed) {
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
goto exit;
}
- if (1 == _MMFileIsFLACHeader (buffer)) {
+ if (1 == _MMFileIsREALHeader(buffer)) {
#ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Header Detected\n");
+ debug_msg("Header Detected\n");
#endif
ret = 1;
goto exit;
}
-
exit:
- if (fp) {
- mmfile_close (fp);
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
+
+ return ret;
+}
+
+/***********************************************************************/
+/* MPEGTS Header Check API */
+/***********************************************************************/
+#define MPEGTS_NONE 0x00
+#define MPEGTS_FECE 0x10
+#define MPEGTS_DVHS 0x20
+#define MPEGTS_PACKET 0x40
+
+#define TS_PACKET_SIZE 188
+#define TS_DVHS_PACKET_SIZE 192
+#define TS_FEC_PACKET_SIZE 204
+#define TS_MAX_PACKET_SIZE 204
+
+EXPORT_API
+int MMFileFormatIsValidMPEGTS(MMFileIOHandle *pFileIO, const char *mmfileuri)
+{
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[TS_MAX_PACKET_SIZE] = {0, };
+ int readed = 0;
+ int ret = 0;
+
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
}
-return ret;
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
+
+ readed = mmfile_read(fp, buffer, TS_MAX_PACKET_SIZE);
+
+ if (TS_MAX_PACKET_SIZE != readed) {
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
+ ret = 0;
+ goto exit;
+ }
+
+ if (_MMFileIsMPEGTSHeader(fp) != MPEGTS_NONE) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Detected\n");
+#endif
+ ret = 1;
+ goto exit;
+ }
+
+exit:
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
+
+ return ret;
}
/***********************************************************************/
-/* FLV(flash video) Header Check API */
+/* MPEG-PS Header Check API */
/***********************************************************************/
EXPORT_API
-int MMFileFormatIsValidFLV (const char *mmfileuri)
+int MMFileFormatIsValidMPEGPS(MMFileIOHandle *pFileIO, const char *mmfileuri)
{
-#define _MMFILE_FLV_HEADER_LENGTH 4 /*FLV*/
+#define _MMFILE_MPEGPS_HEADER_LENGTH 4
- MMFileIOHandle *fp = NULL;
- unsigned char buffer[_MMFILE_FLV_HEADER_LENGTH] = {0,};
- long long filesize = 0;
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_MPEGPS_HEADER_LENGTH] = {0, };
int readed = 0;
- unsigned int startoffset = 0;
int ret = 0;
- if (NULL == mmfileuri) {
- debug_error ("file source is NULL\n");
- return ret;
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
}
- ret = mmfile_open (&fp, mmfileuri, MMFILE_RDONLY);
- if (ret == MMFILE_UTIL_FAIL) {
- debug_error ("error: mmfile_open\n");
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
+
+ readed = mmfile_read(fp, buffer, _MMFILE_MPEGPS_HEADER_LENGTH);
+
+ if (_MMFILE_MPEGPS_HEADER_LENGTH != readed) {
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
+ ret = 0;
goto exit;
}
- /* Initialize the members of handle */
- mmfile_seek (fp, 0, MMFILE_SEEK_END);
- filesize = mmfile_tell(fp);
- mmfile_seek (fp, 0, MMFILE_SEEK_SET);
+ if (1 == _MMFileIsMPEGPSHeader(buffer)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Detected\n");
+#endif
+ ret = 1;
+ goto exit;
+ }
+
+exit:
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
+
+ return ret;
+}
+
+/***********************************************************************/
+/* MPEG AUDIO Header Check API */
+/***********************************************************************/
+EXPORT_API
+int MMFileFormatIsValidMPEGAUDIO(MMFileIOHandle *pFileIO, const char *mmfileuri)
+{
+#define _MMFILE_MPEGAUDIO_HEADER_LENGTH 4
+
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_MPEGAUDIO_HEADER_LENGTH] = {0, };
+ int readed = 0;
+ int ret = 0;
+
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
+ }
+
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
- if (filesize < _MMFILE_FLV_HEADER_LENGTH) {
- debug_error ( "header is too small.\n");
+ readed = mmfile_read(fp, buffer, _MMFILE_MPEGAUDIO_HEADER_LENGTH);
+
+ if (_MMFILE_MPEGAUDIO_HEADER_LENGTH != readed) {
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
goto exit;
}
- ret = 0;
+ if (1 == _MMFileIsMPEGAUDIOHeader(buffer)) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("Header Detected\n");
+#endif
+ ret = 1;
+ goto exit;
+ }
- /* set begin and end point at the file */
- startoffset = 0;
+exit:
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
- mmfile_seek (fp, startoffset, MMFILE_SEEK_SET);
+ return ret;
+}
- readed = mmfile_read (fp, buffer, _MMFILE_FLV_HEADER_LENGTH);
- if (_MMFILE_FLV_HEADER_LENGTH != readed) {
- debug_error ( "read error. size = %d. Maybe end of file.\n", readed);
+/***********************************************************************/
+/* MPEG VIDEO Header Check API */
+/***********************************************************************/
+EXPORT_API
+int MMFileFormatIsValidMPEGVIDEO(MMFileIOHandle *pFileIO, const char *mmfileuri)
+{
+#define _MMFILE_MPEGVIDEO_HEADER_LENGTH 4
+
+ MMFileIOHandle *fp = pFileIO;
+ unsigned char buffer[_MMFILE_MPEGVIDEO_HEADER_LENGTH] = {0, };
+ int readed = 0;
+ int ret = 0;
+
+ if (fp == NULL) {
+ ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
+ if (ret == MMFILE_IO_FAILED) {
+ debug_error("error: mmfile_open\n");
+ goto exit;
+ }
+ }
+
+ mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
+
+ readed = mmfile_read(fp, buffer, _MMFILE_MPEGVIDEO_HEADER_LENGTH);
+
+ if (_MMFILE_MPEGVIDEO_HEADER_LENGTH != readed) {
+ debug_error("read error. size = %d. Maybe end of file.\n", readed);
ret = 0;
goto exit;
}
- if (1 == _MMFileIsFLVHeader (buffer)) {
+ if (1 == _MMFileIsMPEGVIDEOHeader(buffer)) {
#ifdef __MMFILE_TEST_MODE__
- debug_msg ( "Header Detected\n");
+ debug_msg("Header Detected\n");
#endif
ret = 1;
goto exit;
}
-
exit:
- if (fp) {
- mmfile_close (fp);
- }
+ if (pFileIO == NULL && fp != NULL)
+ mmfile_close(fp);
-return ret;
+ return ret;
}
+
+
+
/***********************************************************************/
/* Implementation of Internal Functions */
/***********************************************************************/
-static int _MMFileIsASFHeader (void *header)
+static int _MMFileIsASFHeader(void *header)
{
- /* ID: 30 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C */
+ /* ID: 30 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C */
unsigned char *s = header;
- if ( (*(s + 0) == 0x30) &&
- (*(s + 1) == 0x26) &&
- (*(s + 2) == 0xB2) &&
- (*(s + 3) == 0x75) &&
- (*(s + 4) == 0x8E) &&
- (*(s + 5) == 0x66) &&
- (*(s + 6) == 0xCF) &&
- (*(s + 7) == 0x11) &&
- (*(s + 8) == 0xA6) &&
- (*(s + 9) == 0xD9) &&
- (*(s + 10) == 0x00) &&
- (*(s + 11) == 0xAA) &&
- (*(s + 12) == 0x00) &&
- (*(s + 13) == 0x62) &&
- (*(s + 14) == 0xCE) &&
- (*(s + 15) == 0x6C) ) {
+ if ((*(s + 0) == 0x30) &&
+ (*(s + 1) == 0x26) &&
+ (*(s + 2) == 0xB2) &&
+ (*(s + 3) == 0x75) &&
+ (*(s + 4) == 0x8E) &&
+ (*(s + 5) == 0x66) &&
+ (*(s + 6) == 0xCF) &&
+ (*(s + 7) == 0x11) &&
+ (*(s + 8) == 0xA6) &&
+ (*(s + 9) == 0xD9) &&
+ (*(s + 10) == 0x00) &&
+ (*(s + 11) == 0xAA) &&
+ (*(s + 12) == 0x00) &&
+ (*(s + 13) == 0x62) &&
+ (*(s + 14) == 0xCE) &&
+ (*(s + 15) == 0x6C)) {
return 1;
}
@@ -1389,7 +1392,7 @@ static int _MMFileIsASFHeader (void *header)
return 0;
}
-static int _MMFileIsAMRHeader (void *header)
+static int _MMFileIsAMRHeader(void *header)
{
#define _MMFILE_AMR_SINGLE_CH_HEADER_SIZE 6
#define _MMFILE_AMR_SINGLE_CH_HEADER "#!AMR\n"
@@ -1405,10 +1408,10 @@ static int _MMFileIsAMRHeader (void *header)
unsigned char *s = header;
- if (!memcmp (s, _MMFILE_AMR_SINGLE_CH_HEADER, _MMFILE_AMR_SINGLE_CH_HEADER_SIZE) ||
- !memcmp (s, _MMFILE_AMR_WB_SINGLE_CH_HEADER, _MMFILE_AMR_WB_SINGLE_CH_HEADER_SIZE) ||
- !memcmp (s, _MMFILE_AMR_MULTI_CH_HEADER, _MMFILE_AMR_MULTI_CH_HEADER_SIZE) ||
- !memcmp (s, _MMFILE_AMR_WB_MULTI_CH_HEADER, _MMFILE_AMR_WB_MULTI_CH_HEADER_SIZE)) {
+ if (!memcmp(s, _MMFILE_AMR_SINGLE_CH_HEADER, _MMFILE_AMR_SINGLE_CH_HEADER_SIZE) ||
+ !memcmp(s, _MMFILE_AMR_WB_SINGLE_CH_HEADER, _MMFILE_AMR_WB_SINGLE_CH_HEADER_SIZE) ||
+ !memcmp(s, _MMFILE_AMR_MULTI_CH_HEADER, _MMFILE_AMR_MULTI_CH_HEADER_SIZE) ||
+ !memcmp(s, _MMFILE_AMR_WB_MULTI_CH_HEADER, _MMFILE_AMR_WB_MULTI_CH_HEADER_SIZE)) {
return 1;
}
@@ -1416,7 +1419,7 @@ static int _MMFileIsAMRHeader (void *header)
return 0;
}
-static int _MMFileIsIMYHeader (void *header)
+static int _MMFileIsIMYHeader(void *header)
{
unsigned char *s = header;
@@ -1427,13 +1430,13 @@ static int _MMFileIsIMYHeader (void *header)
return 0;
}
-static int _MMFileIsMIDHeader (void *header)
+static int _MMFileIsMIDHeader(void *header)
{
unsigned char *s = header;
if (!memcmp(s, "MThd", 4)) { /*general MIDI*/
return 1;
- } else if (!memcmp (s, "XMF_", 4)) { /*XMF*/
+ } else if (!memcmp(s, "XMF_", 4)) { /*XMF*/
return 1;
} else if (!memcmp(s, "IREZ", 4)) {
return 1; /*RMF format*/
@@ -1442,19 +1445,19 @@ static int _MMFileIsMIDHeader (void *header)
return 0;
}
-static int _MMFileIsMMFHeader (void *header)
+static int _MMFileIsMMFHeader(void *header)
{
#define _MMFILE_MMF_TYPE_POSITION ((char)0x11)
unsigned char *s = header;
- if(!memcmp (s, "MMMD", 4)) {
+ if (!memcmp(s, "MMMD", 4)) {
/* warning: comparison is always true due to limited range of data type */
- if( *(s + _MMFILE_MMF_TYPE_POSITION) <= 0x2F ) {
+ if (*(s + _MMFILE_MMF_TYPE_POSITION) <= 0x2F) {
return 1;
- } else if (((*(s + _MMFILE_MMF_TYPE_POSITION) >= 0x30) && (*(s + _MMFILE_MMF_TYPE_POSITION) <= 0x38)) // MA3, MA5 type
- || ((*(s + _MMFILE_MMF_TYPE_POSITION) >= 0x40) && (*(s + _MMFILE_MMF_TYPE_POSITION) <= 0x48))
- || ((*(s + _MMFILE_MMF_TYPE_POSITION) >= 0x50) && (*(s + _MMFILE_MMF_TYPE_POSITION) <= 0x58))
- || ((*(s + _MMFILE_MMF_TYPE_POSITION) == 0xF0))) {
+ } else if (((*(s + _MMFILE_MMF_TYPE_POSITION) >= 0x30) && (*(s + _MMFILE_MMF_TYPE_POSITION) <= 0x38)) /* MA3, MA5 type */
+ || ((*(s + _MMFILE_MMF_TYPE_POSITION) >= 0x40) && (*(s + _MMFILE_MMF_TYPE_POSITION) <= 0x48))
+ || ((*(s + _MMFILE_MMF_TYPE_POSITION) >= 0x50) && (*(s + _MMFILE_MMF_TYPE_POSITION) <= 0x58))
+ || ((*(s + _MMFILE_MMF_TYPE_POSITION) == 0xF0))) {
return 1;
}
@@ -1464,11 +1467,11 @@ static int _MMFileIsMMFHeader (void *header)
}
-static int _MMFileIsAVIHeader (void *header)
+static int _MMFileIsAVIHeader(void *header)
{
unsigned char *s = header;
- if (!memcmp(s, "RIFF", 4) && !memcmp(s+8, "AVI", 3)) {
+ if (!memcmp(s, "RIFF", 4) && !memcmp(s + 8, "AVI", 3)) {
return 1;
}
@@ -1476,11 +1479,11 @@ static int _MMFileIsAVIHeader (void *header)
}
-static int _MMFileIsWAVHeader (void *header)
+static int _MMFileIsWAVHeader(void *header)
{
unsigned char *s = header;
- if (!memcmp(s, "RIFF", 4) && !memcmp(s+8, "WAVE", 4)) {
+ if (!memcmp(s, "RIFF", 4) && !memcmp(s + 8, "WAVE", 4)) {
return 1;
}
@@ -1489,27 +1492,27 @@ static int _MMFileIsWAVHeader (void *header)
-static int _MMFileIsMP4Header (void *header)
+static int _MMFileIsMP4Header(void *header)
{
unsigned char *s = header;
- if (!memcmp (s, "moov", 4) ||
- !memcmp (s, "mdat", 4) ||
- !memcmp (s, "ftyp", 4) ||
- !memcmp (s, "free", 4) ||
- !memcmp (s, "uuid", 4) ||
- !memcmp (s, "skip", 4) ||
-
- !memcmp (s, "PICT", 4) ||
- !memcmp (s, "wide", 4) ||
- !memcmp (s, "prfl", 4)) {
+ if (!memcmp(s, "moov", 4) ||
+ !memcmp(s, "mdat", 4) ||
+ !memcmp(s, "ftyp", 4) ||
+ !memcmp(s, "free", 4) ||
+ !memcmp(s, "uuid", 4) ||
+ !memcmp(s, "skip", 4) ||
+
+ !memcmp(s, "PICT", 4) ||
+ !memcmp(s, "wide", 4) ||
+ !memcmp(s, "prfl", 4)) {
return 1;
}
return 0;
}
-static int _MMFileIsOGGHeader (void *header)
+static int _MMFileIsOGGHeader(void *header)
{
unsigned char *s = header;
@@ -1520,19 +1523,115 @@ static int _MMFileIsOGGHeader (void *header)
return 0;
}
-static int _MMFileIsMP3Header (void *header)
+static int _MMFileIsREALHeader(void *header)
+{
+ unsigned char *s = header;
+
+ if (!memcmp(s, ".RMF", 4)) {
+ return 1;
+ }
+
+ return 0;
+}
+
+static int _MMFileIsMPEGTSHeader(MMFileIOHandle *fp)
+{
+ unsigned char header[TS_MAX_PACKET_SIZE] = {0, };
+ unsigned char *s = NULL;
+
+ mmfile_seek(fp, 0, MMFILE_SEEK_SET);
+ mmfile_read(fp, header, sizeof(header));
+
+ s = (unsigned char *)memchr(header, 0x47, sizeof(header));
+
+ if (s) {
+ unsigned char buffer[TS_PACKET_SIZE] = {0, };
+ unsigned int startoffset = s - header + 1;
+
+ mmfile_seek(fp, startoffset, MMFILE_SEEK_SET);
+ mmfile_read(fp, buffer, sizeof(buffer));
+
+ if (buffer[sizeof(buffer) - 1] & 0x47) {
+ return MPEGTS_PACKET;
+ } else {
+ unsigned char dvhs_buf[TS_DVHS_PACKET_SIZE] = {0, };
+
+ mmfile_seek(fp, startoffset, MMFILE_SEEK_SET);
+ mmfile_read(fp, dvhs_buf, sizeof(dvhs_buf));
+
+ if (dvhs_buf[sizeof(dvhs_buf) - 1] & 0x47) {
+ return MPEGTS_DVHS;
+ } else {
+ unsigned char fec_buf[TS_FEC_PACKET_SIZE] = {0, };
+
+ mmfile_seek(fp, startoffset, MMFILE_SEEK_SET);
+ mmfile_read(fp, fec_buf, sizeof(fec_buf));
+
+ if (fec_buf[sizeof(fec_buf) - 1] & 0x47) {
+ return MPEGTS_FECE;
+ }
+ }
+ }
+ }
+
+ return MPEGTS_NONE;
+}
+
+static int _MMFileIsMPEGPSHeader(void *header)
+{
+ unsigned char *s = header;
+
+ if ((*(s + 0) == 0x00) &&
+ (*(s + 1) == 0x00) &&
+ (*(s + 2) == 0x01) &&
+ (*(s + 3) == 0xba)) { /* mpeg-ps header */
+ return 1;
+ }
+
+ return 0;
+}
+
+static int _MMFileIsMPEGAUDIOHeader(void *header)
+{
+ unsigned char *s = header;
+
+ if ((*(s + 0) == 0xFF) &&
+ (*(s + 1) == 0xFE)) { /* mpeg audio layer 1 header */
+ return 1;
+ }
+
+ return 0;
+}
+
+static int _MMFileIsMPEGVIDEOHeader(void *header)
+{
+ unsigned char *s = header;
+
+ if ((*(s + 0) == 0x00) &&
+ (*(s + 1) == 0x00) &&
+ (*(s + 2) == 0x01) &&
+ (*(s + 3) == 0xb3)) { /* mpeg1 video header */
+ return 1;
+ }
+
+ return 0;
+}
+
+static int _MMFileIsMP3Header(void *header)
{
unsigned long head = 0;
unsigned char *headc = header;
- unsigned int bitrate, layer, length, mode;
- unsigned int coef,samplerate, version, channels;
+ unsigned int bitrate, layer, length/*, mode*/;
+ unsigned int coef, samplerate, version/*, channels*/;
static const unsigned int mp3types_bitrates[2][3][16] = {
{ {0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448,},
{0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384,},
- {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320,}},
+ {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320,}
+ },
{ {0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256,},
{0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160,},
- {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160,}},
+ {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160,}
+ },
};
static const unsigned int mp3types_freqs[3][3] = {
@@ -1541,13 +1640,18 @@ static int _MMFileIsMP3Header (void *header)
{44100, 48000, 32000}
};
- static const unsigned int mp3FrameCoef[4][4] = {{-1,48,144,72},{-1,-1,-1,-1},{-1,48,144,72},{-1,48,144,144}};
+ static const unsigned int mp3FrameCoef[4][4] = {
+ { -1, 48, 144, 72},
+ { -1, -1, -1, -1},
+ { -1, 48, 144, 72},
+ { -1, 48, 144, 144}
+ };
/* header */
- head = (*(headc+0)<<24 | *(headc+1)<<16 | *(headc+2)<<8 | *(headc+3));
+ head = (*(headc + 0) << 24 | *(headc + 1) << 16 | *(headc + 2) << 8 | *(headc + 3));
if ((head & 0xffe00000) != 0xffe00000) {
- return 0;
+ return 0;
}
/* we don't need extension, copyright, original or
@@ -1555,7 +1659,7 @@ static int _MMFileIsMP3Header (void *header)
head >>= 6;
/* mode */
- mode = head & 0x3;
+ /*mode = head & 0x3;*/
head >>= 3;
/* padding */
@@ -1571,7 +1675,7 @@ static int _MMFileIsMP3Header (void *header)
/* bitrate index */
bitrate = head & 0xF;
-
+
if (bitrate == 15) {
return 0;
}
@@ -1593,27 +1697,27 @@ static int _MMFileIsMP3Header (void *header)
}
/* lookup */
- channels = (mode == 3) ? 1 : 2;
+ /*channels = (mode == 3) ? 1 : 2;*/
samplerate = mp3types_freqs[version > 0 ? version - 1 : 0][samplerate];
{
/* calculating */
bitrate = mp3types_bitrates[version == 3 ? 0 : 1][layer - 1][bitrate];
coef = mp3FrameCoef[version][layer];
- if(layer == 1)
- length = length*4;
+ if (layer == 1)
+ length = length * 4;
- length = length + ((coef*bitrate*1000)/samplerate);
+ length = length + ((coef * bitrate * 1000) / samplerate);
}
return length;
}
-static int _MMFileSearchID3Tag (MMFileIOHandle *fp, unsigned int *offset)
+static int _MMFileSearchID3Tag(MMFileIOHandle *fp, unsigned int *offset)
{
#define _MMFILE_MP3_TAGV2_HEADER_LEN 10
-#define _MMFILE_GET_INT_NUMBER(buff) (int)( (((int)(buff)[0]) << 24) | (((int)(buff)[1]) << 16) | (((int)(buff)[2]) << 8) | (((int)(buff)[3])))
+#define _MMFILE_GET_INT_NUMBER(buff) (int)((((int)(buff)[0]) << 24) | (((int)(buff)[1]) << 16) | (((int)(buff)[2]) << 8) | (((int)(buff)[3])))
- unsigned char tagHeader[_MMFILE_MP3_TAGV2_HEADER_LEN] = {0,};
+ unsigned char tagHeader[_MMFILE_MP3_TAGV2_HEADER_LEN] = {0, };
unsigned int tagInfoSize = 0;
unsigned int acc_tagsize = 0;
int tagVersion = 0;
@@ -1625,44 +1729,44 @@ static int _MMFileSearchID3Tag (MMFileIOHandle *fp, unsigned int *offset)
*offset = 0;
mmfile_seek(fp, 0, MMFILE_SEEK_SET);
-
+
_START_TAG_SEARCH:
- readed = mmfile_read (fp, tagHeader, _MMFILE_MP3_TAGV2_HEADER_LEN);
+ readed = mmfile_read(fp, tagHeader, _MMFILE_MP3_TAGV2_HEADER_LEN);
if (readed != _MMFILE_MP3_TAGV2_HEADER_LEN) {
- debug_error ("read error occured.\n");
+ debug_error("read error occured.\n");
return 0;
}
- if (memcmp (tagHeader, "ID3", 3) == 0) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("'ID3' found.\n");
- #endif
+ if (memcmp(tagHeader, "ID3", 3) == 0) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("'ID3' found.\n");
+#endif
} else {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("'ID3' not found.\n");
- #endif
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("'ID3' not found.\n");
+#endif
goto search_end;
}
/**@note weak id3v2 tag checking*/
if (tagHeader[3] != 0xFF && tagHeader[4] != 0xFF &&
- (tagHeader[6] & 0x80) == 0 && (tagHeader[7] & 0x80) == 0 &&
- (tagHeader[8] & 0x80) == 0 && (tagHeader[9] & 0x80) == 0) {
- #ifdef __MMFILE_TEST_MODE__
- debug_msg ("good ID3V2 tag.\n");
- #endif
+ (tagHeader[6] & 0x80) == 0 && (tagHeader[7] & 0x80) == 0 &&
+ (tagHeader[8] & 0x80) == 0 && (tagHeader[9] & 0x80) == 0) {
+#ifdef __MMFILE_TEST_MODE__
+ debug_msg("good ID3V2 tag.\n");
+#endif
} else {
- debug_warning ("It's bad ID3V2 tag.\n");
+ debug_warning("It's bad ID3V2 tag.\n");
goto search_end;
}
tagVersion = tagHeader[3];
if (tagVersion > 4) {
- #ifdef __MMFILE_TEST_MODE__
+#ifdef __MMFILE_TEST_MODE__
debug_msg("Tag version not supported\n");
- #endif
+#endif
goto search_end;
}
@@ -1672,9 +1776,9 @@ _START_TAG_SEARCH:
/**@note unfortunately, some contents has many id3 tag.*/
acc_tagsize += tagInfoSize;
- #ifdef __MMFILE_TEST_MODE__
+#ifdef __MMFILE_TEST_MODE__
debug_msg("tag size: %u, offset: %u\n", tagInfoSize, acc_tagsize);
- #endif
+#endif
mmfile_seek(fp, acc_tagsize, MMFILE_SEEK_SET);
*offset = acc_tagsize;
@@ -1687,7 +1791,7 @@ search_end:
return ret;
}
-static int _MMFileIsFLACHeader (void *header)
+static int _MMFileIsFLACHeader(void *header)
{
unsigned char *s = header;
@@ -1698,7 +1802,7 @@ static int _MMFileIsFLACHeader (void *header)
return 0;
}
-static int _MMFileIsFLVHeader (void *header)
+static int _MMFileIsFLVHeader(void *header)
{
unsigned char *s = header;