
Recherche avancée
Médias (1)
-
The pirate bay depuis la Belgique
1er avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
Autres articles (67)
-
Dépôt de média et thèmes par FTP
31 mai 2013, parL’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...) -
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 est la première version de MediaSPIP stable.
Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)
Sur d’autres sites (7615)
-
avutil : Fix linking x86 asm constants with Clang in MSVC mode
12 juin, par Martin Storsjöavutil : Fix linking x86 asm constants with Clang in MSVC mode
This fixes building with Clang in MSVC mode, for x86, which was
broken in 6e49b8699657b808b7dc80033f2c3f2d0e029fa3 (in Nov 2024) ;
previously it failed with undefined symbols for the constants
defined with DECLARE_ASM_CONST, accessed via inline assembly.Before 57861911a34e1c33796be97f2b2f44e05fffd647, there was an
#elif defined(__GNUC__) || defined(__clang__)
case before the
#elif defined(_MSC_VER)
case for defining DECLARE_ASM_CONST, which included av_used.
(This case included the explicit "defined(__clang__)" since
f637046d3134a331e4b5a7243ac3dfb92735b8a5.)After 57861911a34e1c33796be97f2b2f44e05fffd647, it used the
generic definition of DECLARE_ASM_CONST that also included
av_used - which also worked for Clang in MSVC mode. But after
6e49b8699657b808b7dc80033f2c3f2d0e029fa3, Clang in MSVC mode
ended up using the MSVC specific variant which lacked the
av_used declaration, causing linker errors due to undefined
symbols.Signed-off-by : Martin Storsjö <martin@martin.st>
-
FFMPEG C++/Kotlin Encode data from ByteArray (ByteBuffer) to subtitles and mux it with video
21 août 2024, par Алексей КрасноноженкоI need to mux some byte data encoded to base64 String to mpeg-ts container. Can't find any solution to somehow encode this data to AVPacket. Using of "avcodec_encode_subtitle" supposes to have AVSubtitle with proper data. But how can I create/allocate AVSubtitle with my data ?


Upd. The only variant I managed to create (in Kotlin, as my app is KMP) is that, but it gives error "Invalid data found when processing input" when encoding


val data = AVSubtitleRect()
data.type(SUBTITLE_ASS)
data.ass(BytePointer(buffer))
val subtitle = AVSubtitle()
val pointerPointer = PointerPointer<avsubtitlerect>(1)
pointerPointer.put(data)
subtitle.rects(pointerPointer)
subtitle.pts(packet.pts())

val bufferSize = 1024 * 1024
val encodedBuffer = BytePointer(av_malloc(bufferSize.toLong()))

val result = avcodec_encode_subtitle(subtitleContext, encodedBuffer, bufferSize, subtitle)

if (result >= 0) {
 val outSubtitlePacket = AVPacket()
 outSubtitlePacket.apply {
 data(encodedBuffer)
 outSubtitlePacket.size(result)
 outSubtitlePacket.stream_index(subtitleStreamIndex)
 duration(packet.duration())
 dts(packet.dts())
 pts(packet.pts())
 pos(packet.pos())
 }

 av_interleaved_write_frame(avOutputCtx, outSubtitlePacket)

 av_packet_unref(outSubtitlePacket)
 av_free(encodedBuffer)
}
</avsubtitlerect>


C equivalent


// Allocate the subtitle rect
AVSubtitleRect *data = av_mallocz(sizeof(AVSubtitleRect));
if (!data) {
 fprintf(stderr, "Could not allocate AVSubtitleRect.\n");
 return AVERROR(ENOMEM);
}
data->type = SUBTITLE_ASS;
data->ass = av_strdup(buffer);
if (!data->ass) {
 fprintf(stderr, "Could not allocate ASS buffer.\n");
 av_free(data);
 return AVERROR(ENOMEM);
}

// Allocate the subtitle
AVSubtitle subtitle;
memset(&subtitle, 0, sizeof(subtitle));
subtitle.rects = av_mallocz(sizeof(*subtitle.rects));
if (!subtitle.rects) {
 fprintf(stderr, "Could not allocate AVSubtitle rects.\n");
 av_free(data->ass);
 av_free(data);
 return AVERROR(ENOMEM);
}
subtitle.rects[0] = data;
subtitle.num_rects = 1;
subtitle.pts = packet->pts;

// Allocate buffer for encoded subtitle
int bufferSize = 1024 * 1024;
uint8_t *encodedBuffer = av_malloc(bufferSize);
if (!encodedBuffer) {
 fprintf(stderr, "Could not allocate buffer for encoded subtitle.\n");
 av_free(subtitle.rects);
 av_free(data->ass);
 av_free(data);
 return AVERROR(ENOMEM);
}

// Encode the subtitle
int result = avcodec_encode_subtitle(subtitleContext, encodedBuffer, bufferSize, &subtitle);
if (result >= 0) {
 // Create the output subtitle packet
 AVPacket outSubtitlePacket;
 av_init_packet(&outSubtitlePacket);
 outSubtitlePacket.data = encodedBuffer;
 outSubtitlePacket.size = result;
 outSubtitlePacket.stream_index = subtitleStreamIndex;
 outSubtitlePacket.duration = packet->duration;
 outSubtitlePacket.dts = packet->dts;
 outSubtitlePacket.pts = packet->pts;
 outSubtitlePacket.pos = packet->pos;

 // Write the subtitle packet
 result = av_interleaved_write_frame(avOutputCtx, &outSubtitlePacket);
 if (result < 0) {
 fprintf(stderr, "Error while writing subtitle packet: %s\n", av_err2str(result));
 }

 av_packet_unref(&outSubtitlePacket);
 av_free(encodedBuffer);
} else {
 fprintf(stderr, "Failed to encode subtitles. Reason: %s\n", av_err2str(result));
 av_free(encodedBuffer);
}

av_free(subtitle.rects);
av_free(data->ass);
av_free(data);



-
lavc/h264dsp : R-V V high-depth h264_idct8_add
11 juillet 2024, par Rémi Denis-Courmontlavc/h264dsp : R-V V high-depth h264_idct8_add
Unlike the 8-bit version, we need two iterations to process this within
128-bit vectors. This adds some extra complexity for pointer arithmetic
and counting down which is unnecessary in the 8-bit variant.Accordingly the gain relative to C are just slight better than half as
good with 128-bit vectors as with 256-bit ones.T-Head C908 (2 iterations) :
h264_idct8_add_9bpp_c : 17.5
h264_idct8_add_9bpp_rvv_i32 : 10.0
h264_idct8_add_10bpp_c : 17.5
h264_idct8_add_10bpp_rvv_i32 : 9.7
h264_idct8_add_12bpp_c : 17.7
h264_idct8_add_12bpp_rvv_i32 : 9.7
h264_idct8_add_14bpp_c : 17.7
h264_idct8_add_14bpp_rvv_i32 : 9.7SpacemiT X60 (single iteration) :
h264_idct8_add_9bpp_c : 15.2
h264_idct8_add_9bpp_rvv_i32 : 5.0
h264_idct8_add_10bpp_c : 15.2
h264_idct8_add_10bpp_rvv_i32 : 5.0
h264_idct8_add_12bpp_c : 14.7
h264_idct8_add_12bpp_rvv_i32 : 5.0
h264_idct8_add_14bpp_c : 14.7
h264_idct8_add_14bpp_rvv_i32 : 4.7