
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (74)
-
List of compatible distributions
26 avril 2011, parThe table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...) -
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir
Sur d’autres sites (9417)
-
Prediction is not allowed in AAC-LC
25 août 2020, par SummitI am trying to decode a audio file and the function exits with this message.


[aac @ 0000000000413a00] Prediction is not allowed in AAC-LC.


This error happens at this line ( avcodec_decode_audio4(codec, frame, &gotFrame, &packet))


Why do i get this error ? , How can i correct this.


This is the code for the function to decode the audio frame and i am reading a mp4 file.


int decode_audio_file(const char* path, const int sample_rate, double** data, int* size) {

 // get format from audio file
 AVFormatContext* format = avformat_alloc_context();
 if (avformat_open_input(&format, path, NULL, NULL) != 0) {
 fprintf(stderr, "Could not open file '%s'\n", path);
 return -1;
 }
 else
 std::cout << "File has been opened\n";

 if (avformat_find_stream_info(format, NULL) < 0) {
 fprintf(stderr, "Could not retrieve stream info from file '%s'\n", path);
 return -1;
 }

 // Find the index of the first audio stream
 int stream_index = -1;
 for (int i = 0; i < format->nb_streams; i++) {
 if (format->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
 stream_index = i;
 break;
 }
 }
 if (stream_index == -1) {
 fprintf(stderr, "Could not retrieve audio stream from file '%s'\n", path);
 return -1;
 }
 AVStream* stream = format->streams[stream_index];
 // find & open codec
 AVCodecContext* codec = stream->codec;
 if (avcodec_open2(codec, avcodec_find_decoder(codec->codec_id), NULL) < 0) {
 fprintf(stderr, "Failed to open decoder for stream #%u in file '%s'\n", stream_index, path);
 return -1;
 }

 // prepare resampler
 struct SwrContext* swr = swr_alloc();
 av_opt_set_int(swr, "in_channel_count", codec->channels, 0);
 av_opt_set_int(swr, "out_channel_count", 1, 0);
 av_opt_set_int(swr, "in_channel_layout", codec->channel_layout, 0);
 av_opt_set_int(swr, "out_channel_layout", AV_CH_LAYOUT_MONO, 0);
 av_opt_set_int(swr, "in_sample_rate", codec->sample_rate, 0);
 av_opt_set_int(swr, "out_sample_rate", sample_rate, 0);
 av_opt_set_sample_fmt(swr, "in_sample_fmt", codec->sample_fmt, 0);
 av_opt_set_sample_fmt(swr, "out_sample_fmt", AV_SAMPLE_FMT_DBL, 0);
 swr_init(swr);
 if (!swr_is_initialized(swr)) {
 fprintf(stderr, "Resampler has not been properly initialized\n");
 return -1;
 }
 // prepare to read data
 AVPacket packet;
 av_init_packet(&packet);
 AVFrame* frame = av_frame_alloc();
 if (!frame) {
 fprintf(stderr, "Error allocating the frame\n");
 return -1;
 }

 // iterate through frames
 *data = NULL;
 *size = 0;
 while (av_read_frame(format, &packet) >= 0) {
 // decode one frame
 int gotFrame = 0;
 if (avcodec_decode_audio4(codec, frame, &gotFrame, &packet) < 0) {
 break;
 }
 if (!gotFrame) {
 continue;
 }
 // resample frames
 double* buffer;
 av_samples_alloc((uint8_t**)&buffer, NULL, 1, frame->nb_samples, AV_SAMPLE_FMT_DBL, 0);
 int frame_count = swr_convert(swr, (uint8_t**)&buffer, frame->nb_samples, (const uint8_t**)frame->data, frame->nb_samples);
 // append resampled frames to data
 *data = (double*)realloc(*data, (*size + frame->nb_samples) * sizeof(double));
 memcpy(*data + *size, buffer, frame_count * sizeof(double));
 *size += frame_count;
 }

 // clean up
 av_frame_free(&frame);
 swr_free(&swr);
 avcodec_close(codec);
 avformat_free_context(format);

 // success
 return 0;

}



-
H.264 : merge fill_rectangle into P-SKIP MV prediction, to match B-SKIP
6 juillet 2011, par Jason Garrett-GlaserH.264 : merge fill_rectangle into P-SKIP MV prediction, to match B-SKIP
-
H.264 : merge fill_rectangle into P-SKIP MV prediction, to match B-SKIP
6 juillet 2011, par Jason Garrett-GlaserH.264 : merge fill_rectangle into P-SKIP MV prediction, to match B-SKIP