* Bill May [email protected] */ #include "mp4live.h" #include "text_encoder.h" #include "mp4av.h" static config_index_t CFG_TEXT_HREF_BASE_URL; static SConfigVariable hrefEncoderVariables[] = { CONFIG_STRING(CFG_TEXT_HREF_BASE_URL, "hrefBaseUrl", NULL), }; GUI_STRING(gui_href_base, CFG_TEXT_HREF_BASE_URL, "Base Url"); DECLARE_TABLE(href_gui_options) = { TABLE_GUI(gui_href_base), }; DECLARE_TABLE_FUNC(href_gui_options); void AddTextProfileEncoderVariables (CTextProfile *pConfig) { pConfig->AddConfigVariables(hrefEncoderVariables, NUM_ELEMENTS_IN_ARRAY(hrefEncoderVariables)); } //#define DEBUG_TEXT text_encoder_table_t text_encoder_table[] = { { "Plain Text", TEXT_ENCODING_PLAIN, NULL,
GUI_INT(gui_x264_me_range, CFG_X264_ME_RANGE, "ME Range"); GUI_INT(gui_x264_subme, CFG_X264_SUBME, "Subme"); GUI_BOOL(gui_bframe, CFG_VIDEO_USE_B_FRAMES, "Use B Frames"); GUI_INT_RANGE(gui_bframenum, CFG_VIDEO_NUM_OF_B_FRAMES, "Number of B frames", 1, 4); GUI_BOOL(gui_vbv, CFG_X264_USE_VBV, "Use VBV Settings"); GUI_INT(gui_vbv_maxrate, CFG_X264_VBV_MAXRATE, "VBV Maxrate"); GUI_INT(gui_vbv_bufsize, CFG_X264_VBV_BUFSIZE, "VBV Buffer Size"); GUI_FLOAT_RANGE(gui_brate, CFG_X264_BIT_RATE_TOLERANCE, "Bit Rate Tolerance", .01, 100.0); GUI_INT_RANGE(gui_threads, CFG_X264_THREADS, "Number of Threads", 0, 8); GUI_INT_RANGE(gui_sar_w, CFG_X264_SAR_WIDTH, "Source Aspect Ratio Width", 0, 65536); GUI_INT_RANGE(gui_sar_h, CFG_X264_SAR_HEIGHT, "Source Aspect Ratio Height", 0, 65536); DECLARE_TABLE(x264_gui_options) = { TABLE_GUI(gui_baseline), #ifndef HAVE_X264_PARAM_T_RC_I_RC_METHOD TABLE_GUI(gui_cbr), #endif TABLE_GUI(gui_level), TABLE_GUI(gui_x264_partitions), TABLE_GUI(gui_x264_me), TABLE_GUI(gui_x264_me_range), TABLE_GUI(gui_x264_subme), TABLE_GUI(gui_bframe), TABLE_GUI(gui_bframenum), TABLE_GUI(gui_cabac), TABLE_GUI(gui_psnr), TABLE_GUI(gui_ssim), TABLE_GUI(gui_8x8dct), TABLE_GUI(gui_vbv),
#include "ffmpeg_if.h" //#include "encoder-h263.h" //#include <dsputil.h> //#include <mpegvideo.h> #ifdef HAVE_AVCODECCONTEXT_TIME_BASE static config_index_t CFG_FFMPEG_USE_STRICT; static SConfigVariable ffmpegEncoderVariables[] = { CONFIG_BOOL(CFG_FFMPEG_USE_STRICT, "FfmpegUseStrictStdCompliance", false), }; #endif GUI_BOOL(gui_bframe, CFG_VIDEO_USE_B_FRAMES, "Use B Frames"); GUI_INT_RANGE(gui_bframenum, CFG_VIDEO_NUM_OF_B_FRAMES, "Number of B frames", 1, 4); DECLARE_TABLE(ffmpeg_mpeg4_gui_options) = { TABLE_GUI(gui_bframe), TABLE_GUI(gui_bframenum), }; DECLARE_TABLE_FUNC(ffmpeg_mpeg4_gui_options); void AddFfmpegConfigVariables (CVideoProfile *pConfig) { #ifdef HAVE_AVCODECCONTEXT_TIME_BASE pConfig->AddConfigVariables(ffmpegEncoderVariables, NUM_ELEMENTS_IN_ARRAY(ffmpegEncoderVariables)); #endif } CFfmpegVideoEncoder::CFfmpegVideoEncoder(CVideoProfile *vp, uint16_t mtu, CVideoEncoder *next,
static uint32_t *faac_bitrates_for_samplerate (uint32_t samplerate, uint8_t chans, uint32_t *ret_size) { uint32_t *ret = (uint32_t *)malloc(sizeof(bitRateAllValues)); memcpy(ret, bitRateAllValues, sizeof(bitRateAllValues)); *ret_size = NUM_ELEMENTS_IN_ARRAY(bitRateAllValues); return ret; } GUI_BOOL(gui_rfc3016, CFG_RTP_RFC3016, "Transmit AAC using RFC-3016 (LATM - for 3gp)"); DECLARE_TABLE(faac_gui_options) = { TABLE_GUI(gui_rfc3016), }; DECLARE_TABLE_FUNC(faac_gui_options); audio_encoder_table_t faac_audio_encoder_table = { "AAC - FAAC", AUDIO_ENCODER_FAAC, AUDIO_ENCODING_AAC, samplingRateAllValues, NUM_ELEMENTS_IN_ARRAY(samplingRateAllValues), faac_bitrates_for_samplerate, 2, TABLE_FUNC(faac_gui_options) };