
Recherche avancée
Médias (3)
-
Exemple de boutons d’action pour une collection collaborative
27 février 2013, par
Mis à jour : Mars 2013
Langue : français
Type : Image
-
Exemple de boutons d’action pour une collection personnelle
27 février 2013, par
Mis à jour : Février 2013
Langue : English
Type : Image
-
Collections - Formulaire de création rapide
19 février 2013, par
Mis à jour : Février 2013
Langue : français
Type : Image
Autres articles (47)
-
Qu’est ce qu’un éditorial
21 juin 2013, parEcrivez votre de point de vue dans un article. Celui-ci sera rangé dans une rubrique prévue à cet effet.
Un éditorial est un article de type texte uniquement. Il a pour objectif de ranger les points de vue dans une rubrique dédiée. Un seul éditorial est placé à la une en page d’accueil. Pour consulter les précédents, consultez la rubrique dédiée.
Vous pouvez personnaliser le formulaire de création d’un éditorial.
Formulaire de création d’un éditorial Dans le cas d’un document de type éditorial, les (...) -
Contribute to translation
13 avril 2011You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
MediaSPIP is currently available in French and English (...) -
Automated installation script of MediaSPIP
25 avril 2011, parTo overcome the difficulties mainly due to the installation of server side software dependencies, an "all-in-one" installation script written in bash was created to facilitate this step on a server with a compatible Linux distribution.
You must have access to your server via SSH and a root account to use it, which will install the dependencies. Contact your provider if you do not have that.
The documentation of the use of this installation script is available here.
The code of this (...)
Sur d’autres sites (4457)
-
FFMPEG : Can not free AVPacket when decode H264 stream ?
13 janvier 2016, par TTGroupI’m using FFMPEG to decode H264 stream, my code is below
AVFormatContext *pFormatCtx = NULL;
AVCodecContext *pCodecCtx = NULL;
AVFrame *pFrame = NULL;
AVPacket packet;
packet.data = NULL;
pFormatCtx = avformat_alloc_context();
avformat_open_input(&pFormatCtx, videoStreamPath, NULL, NULL);
liveHeader.pCodecCtx = pFormatCtx->streams[videoStreamIndex]->codec;
int bytesDecoded = 0;
int frameFinished = 0;
while (true)
{
while (packet.size > 0)
{
// Decode the next chunk of data
bytesDecoded = avcodec_decode_video2(pCodecCtx, pFrame,
&frameFinished, &packet);
// Was there an error?
if (bytesDecoded < 0)
{
printf(strErr, "Error while decoding frame\n");
commonGlobal->WriteRuntimeRecLogs(strErr);
return RS_NOT_OK;
}
packet.size -= bytesDecoded;
packet.data += bytesDecoded;
if (frameFinished)
{
//av_free_packet(&packet); //(free 1)
return RS_OK;
}
// Did we finish the current frame? Then we can return
}
do
{
try
{
int ret = av_read_frame(pFormatCtx, &packet);
if (ret < 0)
{
char strErr[STR_LENGTH_256];
if (ret == AVERROR_EOF || (pFormatCtx->pb && pFormatCtx->pb->eof_reached))
{
sprintf(strErr, "Error end of file line %d", __LINE__);
}
if (pFormatCtx->pb && pFormatCtx->pb->error)
{
sprintf(strErr, "Error end of file line %d", __LINE__);
}
packet.data = NULL;
return RS_NOT_OK;
}
}
catch (...)
{
packet.data = NULL;
return RS_NOT_OK;
}
} while (packet.stream_index != videoStreamIndex);
}
//av_free_packet(&packet); //(free 2)The problem is I don’t know how to free memory of
packet
correctly.I have tried to delete packet’s data by calling one of two places
av_free_packet(&packet); (free 1)
andav_free_packet(&packet); (free 2)
. And the result is the application was crashed with the message"Heap Corruption..."
If I do not free the
packet
, the memory leak is occur.Note that the above code is successful when decode
H264
stream, the main problem is memory leak and crashed when I try to free thepacket
Someone can show me the problems in my code.
Many thanks,
T&T
-
How to open a .sw file using libav library in c language ?
29 août 2018, par volatileI created a .sw(16 bit pcm) file by passing an audio file. Now I am trying to get back the original audio(.mp3) by passing the .sw file as an input to the following file.
How can I read the .sw file content so that I can get back the mp3 file. Below is the code,
#include
#include
#include
#include <libavcodec></libavcodec>avcodec.h>
#include <libavformat></libavformat>avformat.h>
#include <libavutil></libavutil>channel_layout.h>
#include <libavutil></libavutil>common.h>
#include <libavutil></libavutil>frame.h>
#include <libavutil></libavutil>samplefmt.h>
/* check that a given sample format is supported by the encoder */
static int check_sample_fmt(const AVCodec *codec, enum AVSampleFormat sample_fmt)
{
const enum AVSampleFormat *p = codec->sample_fmts;
while (*p != AV_SAMPLE_FMT_NONE) {
if (*p == sample_fmt)
return 1;
p++;
}
return 0;
}
/* just pick the highest supported samplerate */
static int select_sample_rate(const AVCodec *codec)
{
const int *p;
int best_samplerate = 0;
if (!codec->supported_samplerates)
return 44100;
p = codec->supported_samplerates;
while (*p) {
if (!best_samplerate || abs(44100 - *p) < abs(44100 - best_samplerate))
best_samplerate = *p;
p++;
}
return best_samplerate;
}
/* select layout with the highest channel count */
static int select_channel_layout(const AVCodec *codec)
{
const uint64_t *p;
uint64_t best_ch_layout = 0;
int best_nb_channels = 0;
if (!codec->channel_layouts)
return AV_CH_LAYOUT_STEREO;
p = codec->channel_layouts;
while (*p) {
int nb_channels = av_get_channel_layout_nb_channels(*p);
if (nb_channels > best_nb_channels) {
best_ch_layout = *p;
best_nb_channels = nb_channels;
}
p++;
}
return best_ch_layout;
}
static void encode(AVCodecContext *ctx, AVFrame *frame, AVPacket *pkt,
FILE *output)
{
int ret;
/* send the frame for encoding */
ret = avcodec_send_frame(ctx, frame);
if (ret < 0) {
fprintf(stderr, "Error sending the frame to the encoder\n");
exit(1);
}
/* read all the available output packets (in general there may be any
* number of them */
while (ret >= 0) {
ret = avcodec_receive_packet(ctx, pkt);
if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)
return;
else if (ret < 0) {
fprintf(stderr, "Error encoding audio frame\n");
exit(1);
}
fwrite(pkt->data, 1, pkt->size, output);
av_packet_unref(pkt);
}
}
int main(int argc, char **argv)
{
const char *filename;
const AVCodec *codec;
AVCodecContext *c= NULL;
AVFrame *frame;
AVPacket *pkt;
int i, j, k, ret;
FILE *f;
uint16_t *samples;
float t, tincr;
av_register_all();
avcodec_register_all();
if (argc <= 1) {
fprintf(stderr, "Usage: %s <output file="file">\n", argv[0]);
return 0;
}
filename = argv[1];
/* find the MP2 encoder */
codec = avcodec_find_encoder(AV_CODEC_ID_MP3);
if (!codec) {
fprintf(stderr, "Codec not found\n");
exit(1);
}
c = avcodec_alloc_context3(codec);
if (!c) {
fprintf(stderr, "Could not allocate audio codec context\n");
exit(1);
}
/* put sample parameters */
c->bit_rate = 64000;
/* check that the encoder supports s16 pcm input */
c->sample_fmt = AV_SAMPLE_FMT_S16P;
if (!check_sample_fmt(codec, c->sample_fmt)) {
fprintf(stderr, "Encoder does not support sample format %s",
av_get_sample_fmt_name(c->sample_fmt));
exit(1);
}
/* select other audio parameters supported by the encoder */
c->sample_rate = select_sample_rate(codec);
c->channel_layout = select_channel_layout(codec);
c->channels = av_get_channel_layout_nb_channels(c->channel_layout);
/* open it */
if (avcodec_open2(c, codec, NULL) < 0) {
fprintf(stderr, "Could not open codec\n");
exit(1);
}
f = fopen(filename, "wb");
if (!f) {
fprintf(stderr, "Could not open %s\n", filename);
exit(1);
}
/* packet for holding encoded output */
pkt = av_packet_alloc();
if (!pkt) {
fprintf(stderr, "could not allocate the packet\n");
exit(1);
}
/* frame containing input raw audio */
frame = av_frame_alloc();
if (!frame) {
fprintf(stderr, "Could not allocate audio frame\n");
exit(1);
}
frame->nb_samples = c->frame_size;
frame->format = c->sample_fmt;
frame->channel_layout = c->channel_layout;
/* allocate the data buffers */
ret = av_frame_get_buffer(frame, 0);
if (ret < 0) {
fprintf(stderr, "Could not allocate audio data buffers\n");
exit(1);
}
/* encode a single tone sound */
t = 0;
tincr = 2 * M_PI * 440.0 / c->sample_rate;
for (i = 0; i < 200; i++) {
/* make sure the frame is writable -- makes a copy if the encoder
* kept a reference internally */
ret = av_frame_make_writable(frame);
if (ret < 0)
exit(1);
samples = (uint16_t*)frame->data[0];
for (j = 0; j < c->frame_size; j++) {
samples[2*j] = (int)(sin(t) * 10000);
for (k = 1; k < c->channels; k++)
samples[2*j + k] = samples[2*j];
t += tincr;
}
encode(c, frame, pkt, f);
}
/* flush the encoder */
encode(c, NULL, pkt, f);
fclose(f);
av_frame_free(&frame);
av_packet_free(&pkt);
avcodec_free_context(&c);
return 0;
}
</output>I just want to know, where and how the .sw file is reading in the above audio encoding code ?
-
avformat/movenc : use unspecified language by default
19 mai 2019, par Marton Balintavformat/movenc : use unspecified language by default
English was used before.
Signed-off-by : Marton Balint <cus@passwd.hu>
- [DH] Changelog
- [DH] libavformat/movenc.c
- [DH] libavformat/version.h
- [DH] tests/ref/acodec/alac
- [DH] tests/ref/acodec/pcm-s16be
- [DH] tests/ref/acodec/pcm-s24be
- [DH] tests/ref/acodec/pcm-s32be
- [DH] tests/ref/acodec/pcm-s8
- [DH] tests/ref/fate/adtstoasc_ticket3715
- [DH] tests/ref/lavf/mov
- [DH] tests/ref/lavf/mov_rtphint
- [DH] tests/ref/vsynth/vsynth1-avui
- [DH] tests/ref/vsynth/vsynth1-dnxhd-1080i
- [DH] tests/ref/vsynth/vsynth1-dnxhd-1080i-10bit
- [DH] tests/ref/vsynth/vsynth1-dnxhd-1080i-colr
- [DH] tests/ref/vsynth/vsynth1-dnxhd-hr-hq-mov
- [DH] tests/ref/vsynth/vsynth1-dnxhd-hr-lb-mov
- [DH] tests/ref/vsynth/vsynth1-dnxhd-hr-sq-mov
- [DH] tests/ref/vsynth/vsynth1-mov-bgr24
- [DH] tests/ref/vsynth/vsynth1-mov-bpp15
- [DH] tests/ref/vsynth/vsynth1-mov-bpp16
- [DH] tests/ref/vsynth/vsynth1-prores
- [DH] tests/ref/vsynth/vsynth1-prores_444
- [DH] tests/ref/vsynth/vsynth1-prores_444_int
- [DH] tests/ref/vsynth/vsynth1-prores_int
- [DH] tests/ref/vsynth/vsynth1-prores_ks
- [DH] tests/ref/vsynth/vsynth1-qtrle
- [DH] tests/ref/vsynth/vsynth1-qtrlegray
- [DH] tests/ref/vsynth/vsynth1-svq1
- [DH] tests/ref/vsynth/vsynth1-vc2-420p
- [DH] tests/ref/vsynth/vsynth1-vc2-420p10
- [DH] tests/ref/vsynth/vsynth1-vc2-420p12
- [DH] tests/ref/vsynth/vsynth1-vc2-422p
- [DH] tests/ref/vsynth/vsynth1-vc2-422p10
- [DH] tests/ref/vsynth/vsynth1-vc2-422p12
- [DH] tests/ref/vsynth/vsynth1-vc2-444p
- [DH] tests/ref/vsynth/vsynth1-vc2-444p10
- [DH] tests/ref/vsynth/vsynth1-vc2-444p12
- [DH] tests/ref/vsynth/vsynth1-vc2-t5_3
- [DH] tests/ref/vsynth/vsynth1-vc2-thaar
- [DH] tests/ref/vsynth/vsynth2-avui
- [DH] tests/ref/vsynth/vsynth2-dnxhd-1080i
- [DH] tests/ref/vsynth/vsynth2-dnxhd-1080i-10bit
- [DH] tests/ref/vsynth/vsynth2-dnxhd-1080i-colr
- [DH] tests/ref/vsynth/vsynth2-dnxhd-hr-hq-mov
- [DH] tests/ref/vsynth/vsynth2-dnxhd-hr-lb-mov
- [DH] tests/ref/vsynth/vsynth2-dnxhd-hr-sq-mov
- [DH] tests/ref/vsynth/vsynth2-mov-bgr24
- [DH] tests/ref/vsynth/vsynth2-mov-bpp15
- [DH] tests/ref/vsynth/vsynth2-mov-bpp16
- [DH] tests/ref/vsynth/vsynth2-prores
- [DH] tests/ref/vsynth/vsynth2-prores_444
- [DH] tests/ref/vsynth/vsynth2-prores_444_int
- [DH] tests/ref/vsynth/vsynth2-prores_int
- [DH] tests/ref/vsynth/vsynth2-prores_ks
- [DH] tests/ref/vsynth/vsynth2-qtrle
- [DH] tests/ref/vsynth/vsynth2-qtrlegray
- [DH] tests/ref/vsynth/vsynth2-svq1
- [DH] tests/ref/vsynth/vsynth2-vc2-420p
- [DH] tests/ref/vsynth/vsynth2-vc2-420p10
- [DH] tests/ref/vsynth/vsynth2-vc2-420p12
- [DH] tests/ref/vsynth/vsynth2-vc2-422p
- [DH] tests/ref/vsynth/vsynth2-vc2-422p10
- [DH] tests/ref/vsynth/vsynth2-vc2-422p12
- [DH] tests/ref/vsynth/vsynth2-vc2-444p
- [DH] tests/ref/vsynth/vsynth2-vc2-444p10
- [DH] tests/ref/vsynth/vsynth2-vc2-444p12
- [DH] tests/ref/vsynth/vsynth2-vc2-t5_3
- [DH] tests/ref/vsynth/vsynth2-vc2-thaar
- [DH] tests/ref/vsynth/vsynth3-dnxhd-1080i-10bit
- [DH] tests/ref/vsynth/vsynth3-dnxhd-1080i-colr
- [DH] tests/ref/vsynth/vsynth3-dnxhd-hr-hq-mov
- [DH] tests/ref/vsynth/vsynth3-dnxhd-hr-lb-mov
- [DH] tests/ref/vsynth/vsynth3-dnxhd-hr-sq-mov
- [DH] tests/ref/vsynth/vsynth3-mov-bgr24
- [DH] tests/ref/vsynth/vsynth3-mov-bpp15
- [DH] tests/ref/vsynth/vsynth3-mov-bpp16
- [DH] tests/ref/vsynth/vsynth3-prores
- [DH] tests/ref/vsynth/vsynth3-prores_444
- [DH] tests/ref/vsynth/vsynth3-prores_444_int
- [DH] tests/ref/vsynth/vsynth3-prores_int
- [DH] tests/ref/vsynth/vsynth3-prores_ks
- [DH] tests/ref/vsynth/vsynth3-qtrle
- [DH] tests/ref/vsynth/vsynth3-svq1
- [DH] tests/ref/vsynth/vsynth_lena-avui
- [DH] tests/ref/vsynth/vsynth_lena-dnxhd-1080i
- [DH] tests/ref/vsynth/vsynth_lena-dnxhd-1080i-10bit
- [DH] tests/ref/vsynth/vsynth_lena-dnxhd-1080i-colr
- [DH] tests/ref/vsynth/vsynth_lena-dnxhd-hr-hq-mov
- [DH] tests/ref/vsynth/vsynth_lena-dnxhd-hr-lb-mov
- [DH] tests/ref/vsynth/vsynth_lena-dnxhd-hr-sq-mov
- [DH] tests/ref/vsynth/vsynth_lena-mov-bgr24
- [DH] tests/ref/vsynth/vsynth_lena-mov-bpp15
- [DH] tests/ref/vsynth/vsynth_lena-mov-bpp16
- [DH] tests/ref/vsynth/vsynth_lena-prores
- [DH] tests/ref/vsynth/vsynth_lena-prores_444
- [DH] tests/ref/vsynth/vsynth_lena-prores_444_int
- [DH] tests/ref/vsynth/vsynth_lena-prores_int
- [DH] tests/ref/vsynth/vsynth_lena-prores_ks
- [DH] tests/ref/vsynth/vsynth_lena-qtrle
- [DH] tests/ref/vsynth/vsynth_lena-qtrlegray
- [DH] tests/ref/vsynth/vsynth_lena-svq1
- [DH] tests/ref/vsynth/vsynth_lena-vc2-420p
- [DH] tests/ref/vsynth/vsynth_lena-vc2-420p10
- [DH] tests/ref/vsynth/vsynth_lena-vc2-420p12
- [DH] tests/ref/vsynth/vsynth_lena-vc2-422p
- [DH] tests/ref/vsynth/vsynth_lena-vc2-422p10
- [DH] tests/ref/vsynth/vsynth_lena-vc2-422p12
- [DH] tests/ref/vsynth/vsynth_lena-vc2-444p
- [DH] tests/ref/vsynth/vsynth_lena-vc2-444p10
- [DH] tests/ref/vsynth/vsynth_lena-vc2-444p12
- [DH] tests/ref/vsynth/vsynth_lena-vc2-t5_3
- [DH] tests/ref/vsynth/vsynth_lena-vc2-thaar