--- faad2/plugins/mpeg4ip/faad2.cpp.orig 2004-08-20 10:30:53.000000000 +0200 +++ faad2/plugins/mpeg4ip/faad2.cpp 2006-08-24 08:27:51.399489000 +0200 @@ -35,7 +35,7 @@ /* * Create CAACodec class */ -static codec_data_t *aac_codec_create (const char *compressor, +static codec_data_t *aac_codec_create (const char *stream_type, const char *compressor, int type, int profile, format_list_t *media_fmt, @@ -148,7 +148,7 @@ * Decode task call for FAAC */ static int aac_decode (codec_data_t *ptr, - uint64_t ts, + frame_timestamp_t *ts, int from_rtp, int *sync_frame, uint8_t *buffer, @@ -163,15 +163,15 @@ if (aac->m_record_sync_time) { aac->m_current_frame = 0; aac->m_record_sync_time = 0; - aac->m_current_time = ts; - aac->m_last_rtp_ts = ts; + aac->m_current_time = ts->msec_timestamp; + aac->m_last_rtp_ts = ts->msec_timestamp; } else { - if (aac->m_last_rtp_ts == ts) { + if (aac->m_last_rtp_ts == ts->msec_timestamp) { aac->m_current_time += aac->m_msec_per_frame; aac->m_current_frame++; } else { - aac->m_last_rtp_ts = ts; - aac->m_current_time = ts; + aac->m_last_rtp_ts = ts->msec_timestamp; + aac->m_current_time = ts->msec_timestamp; aac->m_current_frame = 0; } @@ -239,7 +239,7 @@ aac->m_chans, (audio_format_t)AUDIO_S16SYS, aac->m_output_frame_size); - uint8_t *now = aac->m_vft->audio_get_buffer(aac->m_ifptr); + uint8_t *now = aac->m_vft->audio_get_buffer(aac->m_ifptr, (ts->msec_timestamp * aac->m_freq) / 1000, ts->msec_timestamp); aac->m_audio_inited = 1; } /* @@ -281,6 +281,7 @@ }; static int aac_codec_check (lib_message_func_t message, + const char *stream_type, const char *compressor, int type, int profile, @@ -322,7 +323,7 @@ } if (userdata != NULL) { mpeg4_audio_config_t audio_config; - decode_mpeg4_audio_config(userdata, userdata_size, &audio_config); + decode_mpeg4_audio_config(userdata, userdata_size, &audio_config, 1 /* ??? */); message(LOG_DEBUG, "aac", "audio type is %d", audio_config.audio_object_type); if (fmtp != NULL) free_fmtp_parse(fmtp); --- faad2/plugins/mpeg4ip/aa_file.cpp.orig 2004-01-05 15:05:12.000000000 +0100 +++ faad2/plugins/mpeg4ip/aa_file.cpp 2006-08-24 08:33:42.189412000 +0200 @@ -77,7 +77,7 @@ int aac_file_next_frame (codec_data_t *your, uint8_t **buffer, - uint64_t *ts) + frame_timestamp_t *ts) { aac_codec_t *aac = (aac_codec_t *)your; @@ -98,7 +98,10 @@ uint64_t calc; calc = aac->m_framecount * 1024 * M_LLU; calc /= aac->m_freq; - *ts = calc; + ts->msec_timestamp = calc; + ts->audio_freq_timestamp = calc; /* XXX */ + ts->audio_freq = 1; /* XXX */ + ts->timestamp_is_pts = false; *buffer = aac->m_buffer; aac->m_framecount++; return (aac->m_buffer_size); --- faad2/plugins/mpeg4ip/faad2.h.orig 2004-01-05 15:05:12.000000000 +0100 +++ faad2/plugins/mpeg4ip/faad2.h 2006-08-24 08:29:23.233228250 +0200 @@ -81,7 +81,7 @@ int aac_file_next_frame(codec_data_t *ifptr, uint8_t **buffer, - uint64_t *ts); + frame_timestamp_t *ts); int aac_file_eof(codec_data_t *ifptr); void aac_file_used_for_frame(codec_data_t *ifptr, --- faad2/configure.in.orig 2006-09-25 21:52:53.000000000 +0200 +++ faad2/configure.in 2007-11-04 11:51:50.486008814 +0100 @@ -123,6 +123,8 @@ if test x$external_mp4v2 = xyes; then AM_CONDITIONAL(HAVE_MPEG4IP_PLUG, true) AC_MSG_NOTICE("Building MPEG4IP plugin") + MPEG4IP_PLAYER_PLUGIN_DIR="`mpeg4ip-config --player-plugin-dir`" + AC_SUBST(MPEG4IP_PLAYER_PLUGIN_DIR) else AC_MSG_NOTICE("MPEG4IP libmp4v2 is required for MPEG4IP plugin") fi