Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/vlc
  • chouquette/vlc
  • bakiewicz.marek122/vlc
  • devnexen/vlc
  • rohanrajpal/vlc
  • blurrrb/vlc
  • gsoc/gsoc2019/darkapex/vlc
  • b1ue/vlc
  • fkuehne/vlc
  • magsoft/vlc
  • chub/vlc
  • cramiro9/vlc
  • robUx4/vlc
  • rom1v/vlc
  • akshayaky/vlc
  • tmk907/vlc
  • akymaster/vlc
  • govind.sharma/vlc
  • psilokos/vlc
  • xjbeta/vlc
  • jahan/vlc
  • 1480c1/vlc
  • amanchande/vlc
  • aaqib/vlc
  • rist/vlc
  • apol/vlc
  • mindfreeze/vlc
  • alexandre-janniaux/vlc
  • sandsmark/vlc
  • jagannatharjun/vlc
  • gsoc/gsoc2020/matiaslgonzalez/vlc
  • gsoc/gsoc2020/jagannatharjun/vlc
  • mstorsjo/vlc
  • gsoc/gsoc2020/vedenta/vlc
  • gsoc/gsoc2020/arnav-ishaan/vlc
  • gsoc/gsoc2020/andreduong/vlc
  • fuzun/vlc
  • gsoc/gsoc2020/vatsin/vlc
  • gsoc/gsoc2020/sagid/vlc
  • yaron/vlc
  • Phoenix/vlc
  • Garf/vlc
  • ePiratWorkarounds/vlc
  • tguillem/vlc
  • jnqnfe/vlc
  • mdc/vlc
  • Vedaa/vlc
  • rasa/vlc
  • quink/vlc
  • yealo/vlc
  • aleksey_ak/vlc
  • ePirat/vlc
  • ilya.yanok/vlc
  • asenat/vlc
  • m/vlc
  • bunjee/vlc
  • BLumia/vlc
  • sagudev/vlc
  • hamedmonji30/vlc
  • nullgemm/vlc
  • DivyamAhuja/vlc
  • thesamesam/vlc
  • dag7/vlc
  • snehil101/vlc
  • haasn/vlc
  • jbk/vlc
  • ValZapod/vlc
  • mfkl/vlc
  • WangChuan/vlc
  • core1024/vlc
  • GhostVaibhav/vlc
  • dfuhrmann/vlc
  • davide.prade/vlc
  • tmatth/vlc
  • Courmisch/vlc
  • zouya/vlc
  • hpi/vlc
  • EwoutH/vlc
  • aleung27/vlc
  • hengwu0/vlc
  • saladin/vlc
  • ashuio/vlc
  • richselwood/vlc
  • verma16Ayush/vlc
  • chemicalflash/vlc
  • PoignardAzur/vlc
  • huangjieNT/vlc
  • Blake-Haydon/vlc
  • AnuthaDev/vlc
  • gsoc/gsoc2021/mpd/vlc
  • nicolas_lequec/vlc
  • sambassaly/vlc
  • thresh/vlc
  • bonniegong/vlc
  • myaashish/vlc
  • stavros.vagionitis/vlc
  • ileoo/vlc
  • louis-santucci/vlc
  • cchristiansen/vlc
  • sabyasachi07/vlc
  • AbduAmeen/vlc
  • ashishb0410/vlc
  • urbanhusky/vlc
  • davidepietrasanta/vlc
  • riksleutelstad/vlc
  • jeremyVignelles/vlc
  • komh/vlc
  • iamjithinjohn/vlc
  • JohannesKauffmann/vlc2
  • kunglao/vlc
  • natzberg/vlc
  • jill/vlc
  • cwendling/vlc
  • adufou/vlc
  • ErwanAirone/vlc
  • HasinduDilshan10/vlc
  • vagrantc/vlc
  • rafiv/macos-bigsur-icon
  • Aymeriic/vlc
  • saranshg20/vlc
  • metzlove24/vlc
  • linkfanel/vlc
  • Ds886/vlc
  • metehan-arslan/vlc
  • Skantes/vlc
  • kgsandundananjaya96/vlc
  • mitchcapper/vlc
  • advaitgupta/vlc
  • StefanBruens/vlc
  • ratajs/vlc
  • T.M.F.B.3761/vlc
  • m222059/vlc
  • casemerrick/vlc
  • joshuaword2alt/vlc
  • sjwaddy/vlc
  • dima/vlc
  • Ybalrid/vlc
  • umxprime/vlc
  • eschmidt/vlc
  • vannieuwenhuysenmichelle/vlc
  • badcf00d/vlc
  • wesinator/vlc
  • louis/vlc
  • xqq/vlc
  • EmperorYP7/vlc
  • NicoLiam/vlc
  • loveleen/vlc
  • rofferom/vlc
  • rbultje/vlc
  • TheUnamed/vlc
  • pratiksharma341/vlc
  • Saurab17/vlc
  • purist.coder/vlc
  • Shuicheng/vlc
  • mdrrubel292/vlc
  • silverbleu00/vlc
  • metif12/vlc
  • asher-m/vlc
  • jeffk/vlc
  • Brandonbr1/vlc
  • beautyyuyanli/vlc
  • rego21/vlc
  • muyangren907/vlc
  • collectionbylawrencejason/vlc
  • evelez/vlc
  • GSMgeeth/vlc
  • Oneric/vlc
  • TJ5/vlc
  • XuanTung95/vlc
  • darrenjenny21/vlc
  • Trenly/vlc
  • RockyTDR/vlc
  • mjakubowski/vlc
  • caprica/vlc
  • ForteFrankie/vlc
  • seannamiller19/vlc
  • junlon2006/vlc
  • kiwiren6666/vlc
  • iuseiphonexs/vlc
  • fenngtun/vlc
  • Rajdutt999/vlc
  • typx/vlc
  • leon.vitanos/vlc
  • robertogarci0938/vlc
  • gsoc/gsoc2022/luc65r/vlc-mpd
  • skeller/vlc
  • MCJack123/vlc
  • luc65r/vlc-mpd
  • popov895/vlc
  • claucambra/vlc
  • brad/vlc
  • matthewmurua88/vlc
  • Tomas8874/vlc
  • philenotfound/vlc
  • makita-do3/vlc
  • LZXCorp/vlc
  • mar0x/vlc
  • senojetkennedy0102/vlc
  • shaneb243/vlc
  • ahmadbader/vlc
  • rajduttcse26/vlc-audio-filters
  • Juniorzito8415/vlc
  • achernyakov/vlc
  • lucasjetgroup/vlc
  • pupdoggy666/vlc
  • gmde9363/vlc
  • alexnwayne/vlc
  • bahareebrahimi781/vlc
  • hamad633666/vlc
  • umghof3112/vlc
  • joe0199771874/vlc
  • Octocats66666666/vlc
  • jjm_223/vlc
  • btech10110.19/vlc
  • sunnykfc028/vlc-audio-filters
  • loic/vlc
  • nguyenminhducmx1/vlc
  • JanekKrueger/vlc
  • bstubbington2/vlc
  • rcombs/vlc
  • Ordissimo/vlc
  • king7532/vlc
  • noobsauce101/vlc
  • schong0525/vlc
  • myQwil/vlc
  • apisbg91/vlc
  • geeboy0101017/vlc
  • kim.faughey/vlc
  • nurupo/vlc
  • yyusea/vlc
  • 0711235879.khco/vlc
  • ialo/vlc
  • iloveyeye2/vlc
  • gdtdftdqtd/vlc
  • leandroconsiglio/vlc
  • AndyHTML2012/vlc
  • ncz/vlc
  • lucenticus/vlc
  • knr1931/vlc
  • kjoonlee/vlc
  • chandrakant100/vlc-qt
  • johge42/vlc
  • polter/vlc
  • hexchain/vlc
  • Tushwrld/vlc
  • mztea928/vlc
  • jbelloncastro/vlc
  • alvinhochun/vlc
  • ghostpiratecrow/vlc
  • ujjwaltwitx/vlc
  • alexsonarin06/vlc
  • adrianbon76/vlc
  • altsod/vlc
  • damien.lucas44/vlc
  • dmytrivtaisa/vlc
  • utk202/vlc
  • aaxhrj/vlc
  • thomas.hermes/vlc
  • structurenewworldorder/vlc
  • slomo/vlc
  • wantlamy/vlc
  • musc.o3cminc/vlc
  • thebarshablog/vlc
  • kerrick/vlc
  • kratos142518/vlc
  • leogps/vlc
  • vacantron/vlc
  • luna_koly/vlc
  • Ratio2/vlc
  • anuoshemohammad/vlc
  • apsun/vlc
  • aaa1115910/vlc
  • alimotmoyo/vlc
  • Ambossmann/vlc
  • Sam-LearnsToCode/vlc
  • Chilledheart/vlc
  • Labnann/vlc
  • ktcoooot1/vlc
  • mohit-marathe/vlc
  • johnddx/vlc
  • manstabuk/vlc
  • Omar-ahmed314/vlc
  • vineethkm/vlc
  • 9Enemi86/vlc
  • radoslav.m.panteleev/vlc
  • ashishami2002/vlc
  • Corbax/vlc
  • firnasahmed/vlc
  • pelayarmalam4/vlc
  • c0ff330k/vlc
  • shikhindahikar/vlc
  • l342723951/vlc
  • christianschwandner/vlc
  • douniwan5788/vlc
  • 7damian7/vlc
  • ferdnyc/vlc
  • f.ales1/vlc
  • pandagby/vlc
  • BaaBaa/vlc
  • jewe37/vlc
  • w00drow/vlc
  • russelltg/vlc
  • ironicallygod/vlc
  • soumyaDghosh/vlc
  • linzihao1999/vlc
  • deyayush6/vlc
  • mibi88/vlc
  • newabdallah10/vlc
  • jhorbincolombia/vlc
  • rimvihaqueshupto/vlc
  • andrewkhon98/vlc
  • fab78/vlc
  • lapaz17/vlc
  • amanna13/vlc
  • mdakram28/vlc
  • 07jw1980/vlc
  • sohamgupta/vlc
  • Eson-Jia1/vlc
  • Sumou/vlc
  • vikram-kangotra/vlc
  • chalice191/vlc
  • olivercalder/vlc
  • aaasg4001/vlc
  • zipdox/vlc
  • kwizart/vlc
  • Dragon-S/vlc
  • jdemeule/vlc
  • gabriel_lt/vlc
  • locutusofborg/vlc
  • sammirata/vlc-librist
  • another/vlc
  • Benjamin_Loison/vlc
  • ahmedmoselhi/vlc
  • petergaal/vlc
  • huynhsontung/vlc
  • dariusmihut/vlc
  • tvermaashutosh/vlc
  • buti/vlc
  • Niram7777/vlc
  • rohan-here/vlc
  • balaji-sivasakthi/vlc
  • rlindner81/vlc
  • Kakadus/vlc
  • djain/vlc
  • ABBurmeister/vlc
  • craighuggins/vlc
  • orbea/vlc
  • maxos/vlc
  • aakarshmj/vlc
  • kblaschke/vlc
  • ankitm/vlc
  • advait-0/vlc
  • mohak2003/vlc
  • yselkowitz/vlc
  • AZM999/vlc-azm
  • andrey.turkin/vlc
  • Disha-Baghel/vlc
  • nowrep/vlc
  • Apeng/vlc
  • Choucroute_melba/vlc
  • autra/vlc
  • eclipseo/vlc
  • fhuber/vlc
  • olafhering/vlc
  • sdasda7777/vlc
  • 1div0/vlc
  • skosnits/vlc-extended-playlist-support
  • dnicolson/vlc
  • Timshel/vlc
  • octopols/vlc
  • MangalK/vlc
  • nima64/vlc
  • misawai/vlc
  • Alexander-Wilms/vlc
  • Maxime2/vlc-fork-for-visualizer
  • ww/vlc
  • jeske/vlc
  • sgross-emlix/vlc
  • morenonatural/vlc
  • freakingLovesVLC/vlc
  • borisgolovnev/vlc
  • mpromonet/vlc
  • diogo.simao-marques/vlc
  • masstock/vlc
  • pratikpatel8982/vlc
  • hugok79/vlc
  • longervision/vlc
  • abhiudaysurya/vlc
  • rishabhgarg/vlc
  • tumic/vlc
  • cart/vlc
  • shubham442/vlc
  • Aditya692005/vlc
  • sammirata/vlc4
  • syrykh/vlc
  • Vvorcun/macos-new-icon
  • AyaanshC/vlc
  • nasso/vlc
  • Quark/vlc
  • sebastinas/vlc
  • rhstone/vlc
  • talregev/vlc
  • Managor/vlc
403 results
Show changes
Commits on Source (4)
......@@ -3036,6 +3036,13 @@ dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
dnl
PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
dnl
dnl AVS2 decoder module (davs2)
dnl
PKG_ENABLE_MODULES_VLC([DAVS2], [davs2], [davs2], [AVS2 video decoder with libdavs2], [auto])
dnl
dnl libfluidsynth (MIDI synthetizer) plugin
dnl
......
......@@ -55,6 +55,8 @@
#define VLC_CODEC_DIRAC VLC_FOURCC('d','r','a','c')
#define VLC_CODEC_OGGSPOTS VLC_FOURCC('S','P','O','T')
#define VLC_CODEC_CAVS VLC_FOURCC('C','A','V','S')
#define VLC_CODEC_CAVS2 VLC_FOURCC('A','V','S','2')
#define VLC_CODEC_CAVS3 VLC_FOURCC('A','V','S','3')
#define VLC_CODEC_NUV VLC_FOURCC('N','J','P','G')
#define VLC_CODEC_RV10 VLC_FOURCC('R','V','1','0')
#define VLC_CODEC_RV13 VLC_FOURCC('R','V','1','3')
......
......@@ -91,6 +91,13 @@ codec_LTLIBRARIES += libuleaddvaudio_plugin.la
libcdg_plugin_la_SOURCES = codec/cdg.c
codec_LTLIBRARIES += libcdg_plugin.la
libdavs2_plugin_la_SOURCES = codec/davs2.c
libdavs2_plugin_la_CFLAGS = $(AM_CFLAGS) $(DAVS2_CFLAGS)
libdavs2_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)'
libdavs2_plugin_la_LIBADD = $(DAVS2_LIBS) $(LIBM)
EXTRA_LTLIBRARIES += libdavs2_plugin.la
codec_LTLIBRARIES += $(LTLIBdavs2)
liblibmpeg2_plugin_la_SOURCES = codec/libmpeg2.c \
codec/synchro.c codec/synchro.h
liblibmpeg2_plugin_la_CFLAGS = $(AM_CFLAGS) $(CFLAGS_libmpeg2)
......@@ -571,7 +578,6 @@ libqsv_plugin_la_LIBADD = $(MFX_LIBS)
EXTRA_LTLIBRARIES += libqsv_plugin.la
codec_LTLIBRARIES += $(LTLIBqsv)
### External frameworks ###
libdmo_plugin_la_SOURCES = codec/dmo/dmo.c codec/dmo/dmo.h codec/dmo/buffer.c
......
......@@ -146,6 +146,12 @@ static const struct vlc_avcodec_fourcc video_codecs[] =
{ VLC_CODEC_KMVC, AV_CODEC_ID_KMVC },
{ VLC_CODEC_FLASHSV, AV_CODEC_ID_FLASHSV },
{ VLC_CODEC_CAVS, AV_CODEC_ID_CAVS },
#if LIBAVCODEC_VERSION_CHECK(58, 22, 100)
{ VLC_CODEC_CAVS2, AV_CODEC_ID_AVS2 },
#endif
#if LIBAVCODEC_VERSION_CHECK(58, 109, 100)
{ VLC_CODEC_CAVS3, AV_CODEC_ID_AVS3 },
#endif
{ VLC_CODEC_JPEG2000, AV_CODEC_ID_JPEG2000 },
{ VLC_CODEC_VMNC, AV_CODEC_ID_VMNC },
{ VLC_CODEC_VP5, AV_CODEC_ID_VP5 },
......
/*****************************************************************************
* davs2.c: AVS2-P2 video decoder using libdavs2
*****************************************************************************
* Copyright © 2021 Rémi Denis-Courmont
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/*****************************************************************************
* NOTA BENE: this module requires the linking against a library which is
* known to require licensing under the GNU General Public License version 2
* (or later). Therefore, the result of compiling this module will normally
* be subject to the terms of that later license.
*****************************************************************************/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <assert.h>
#include <limits.h>
#include <math.h>
#include <stdlib.h>
#include <davs2.h>
#include <vlc_common.h>
#include <vlc_plugin.h>
#include <vlc_frame.h>
#include <vlc_codec.h>
#include <vlc_cpu.h>
static void UpdateFormat(decoder_t *dec, const davs2_seq_info_t *info)
{
vlc_fourcc_t chroma = 0;
video_format_t *fmt = &dec->fmt_out.video;
switch (info->output_bit_depth) {
case 8:
switch (info->chroma_format) {
case 1:
chroma = VLC_CODEC_I420;
break;
case 2:
chroma = VLC_CODEC_I422;
break;
default:
msg_Err(dec, "unsupported chromatic sampling: %"PRIu32,
info->chroma_format);
}
break;
case 10:
switch (info->chroma_format) {
#ifdef WORDS_BIGENDIAN
case 1:
chroma = VLC_CODEC_I420_10B;
break;
case 2:
chroma = VLC_CODEC_I422_10B;
break;
#else
case 1:
chroma = VLC_CODEC_I420_10L;
break;
case 2:
chroma = VLC_CODEC_I422_10L;
break;
#endif
default:
msg_Err(dec, "unsupported chromatic sampling: %"PRIu32,
info->chroma_format);
}
break;
default:
msg_Err(dec, "unsupported bit depth: %"PRIu32,
info->output_bit_depth);
}
dec->fmt_out.i_codec = chroma;
video_format_Init(fmt, chroma);
fmt->i_width = info->width;
fmt->i_height = info->height;
fmt->i_visible_width = info->width;
fmt->i_visible_height = info->height;
fmt->i_sar_num = 1;
fmt->i_sar_den = 1;
assert(info->frame_rate_id != 0);
static const struct {
uint16_t num;
uint16_t den;
} frame_rates[] = {
{ 24000, 1001 }, { 24, 1 }, { 25, 1 }, { 30000, 1001 }, { 30, 1 },
{ 50, 1 }, { 60000, 1001 }, { 60, 1 }
};
if (info->frame_rate_id <= ARRAY_SIZE(frame_rates)) {
fmt->i_frame_rate = frame_rates[info->frame_rate_id - 1].num;
fmt->i_frame_rate_base = frame_rates[info->frame_rate_id - 1].den;
} else {
msg_Warn(dec, "unknown frame rate %f (ID: %"PRIu32")",
info->frame_rate, info->frame_rate_id);
fmt->i_frame_rate = lroundf(ldexpf(info->frame_rate, 16));
fmt->i_frame_rate_base = 1 << 16;
}
}
static void SendPicture(decoder_t *dec, davs2_picture_t *frame)
{
picture_t *pic = decoder_NewPicture(dec);
if (likely(pic != NULL)) {
for (int i = 0; i < pic->i_planes; i++) {
/*
* As of davs2 1.6.0, passing custom output picture buffers is not
* supported, so we have to copy here.
*/
plane_t plane = {
.p_pixels = frame->planes[i],
.i_lines = frame->lines[i],
.i_pitch = frame->strides[i],
.i_pixel_pitch = (frame->bit_depth + 7) / 8,
.i_visible_lines = frame->lines[i],
.i_visible_pitch = frame->strides[i],
};
plane_CopyPixels(pic->p + i, &plane);
}
pic->date = frame->pts;
decoder_QueueVideo(dec, pic);
}
}
static void Flush(decoder_t *dec)
{
void *hd = dec->p_sys;
int ret;
do {
davs2_seq_info_t info;
davs2_picture_t frame;
ret = davs2_decoder_flush(hd, &info, &frame);
davs2_decoder_frame_unref(hd, &frame);
} while (ret != DAVS2_ERROR && ret != DAVS2_END);
}
static int Dequeue(decoder_t *dec,
int (*func)(void *, davs2_seq_info_t *, davs2_picture_t *))
{
davs2_seq_info_t info;
davs2_picture_t frame;
int ret = func(dec->p_sys, &info, &frame);
switch (ret) {
case DAVS2_ERROR:
msg_Err(dec, "decoding error");
break;
case DAVS2_DEFAULT:
case DAVS2_END:
break;
case DAVS2_GOT_HEADER:
UpdateFormat(dec, &info);
break;
case DAVS2_GOT_FRAME:
if (decoder_UpdateVideoFormat(dec) == 0)
SendPicture(dec, &frame);
break;
default:
vlc_assert_unreachable();
}
davs2_decoder_frame_unref(dec->p_sys, &frame);
return ret;
}
static int Decode(decoder_t *dec, vlc_frame_t *block)
{
if (block == NULL) {
/* Drain */
int ret;
do
ret = Dequeue(dec, davs2_decoder_flush);
while (ret != DAVS2_ERROR && ret != DAVS2_END);
return VLCDEC_SUCCESS;
}
if (!(block->i_flags & BLOCK_FLAG_CORRUPTED)) {
assert(block->i_buffer <= INT_MAX);
davs2_packet_t packet = {
.data = block->p_buffer,
.len = block->i_buffer,
.pts = block->i_pts,
.dts = block->i_dts,
};
if (davs2_decoder_send_packet(dec->p_sys, &packet) == DAVS2_ERROR)
msg_Err(dec, "decoding error");
}
block_Release(block);
Dequeue(dec, davs2_decoder_recv_frame);
return VLCDEC_SUCCESS;
}
static void Close(vlc_object_t *obj)
{
decoder_t *dec = (decoder_t *)obj;
davs2_decoder_close(dec->p_sys);
}
static int Open(vlc_object_t *obj)
{
decoder_t *dec = (decoder_t *)obj;
if (dec->fmt_in.i_codec != VLC_CODEC_CAVS2)
return VLC_EGENERIC;
davs2_param_t params = {
.threads = vlc_GetCPUCount(),
};
if (params.threads > 8)
params.threads = 8;
dec->p_sys = davs2_decoder_open(&params);
if (dec->p_sys == NULL) {
msg_Err(obj, "decoder opening error");
return VLC_EGENERIC;
}
dec->pf_decode = Decode;
dec->pf_flush = Flush;
return VLC_SUCCESS;
}
vlc_module_begin()
set_shortname("davs2")
set_description(N_("AVS2 decoder (using davs2)"))
set_capability("video decoder", 200)
set_callbacks(Open, Close)
set_subcategory(SUBCAT_INPUT_VCODEC)
vlc_module_end()
......@@ -1744,6 +1744,15 @@ bool matroska_segment_c::TrackInit( mkv_track_t * p_tk )
fill_extra_data( vars.p_tk, 0 );
}
S_CASE("V_CAVS") {
vars.p_fmt->i_codec = VLC_CODEC_CAVS;
}
S_CASE("V_AVS2") {
vars.p_fmt->i_codec = VLC_CODEC_CAVS2;
}
S_CASE("V_AVS3") {
vars.p_fmt->i_codec = VLC_CODEC_CAVS3;
}
S_CASE("V_MPEG4/MS/V3") {
vars.p_fmt->i_codec = VLC_CODEC_DIV3;
}
......
......@@ -297,6 +297,7 @@ modules/codec/cea708.h
modules/codec/cvdsub.c
modules/codec/daala.c
modules/codec/dav1d.c
modules/codec/davs2.c
modules/codec/dca.c
modules/codec/ddummy.c
modules/codec/dmo/dmo.c
......
......@@ -673,6 +673,11 @@ static const staticentry_t p_list_video[] = {
A("AVs2"),
A("avs2"),
B(VLC_CODEC_CAVS2, "AVS2-P2 video (IEEE 1857.4)"),
A("AVS2"),
B(VLC_CODEC_CAVS3, "AVS3-P2 video (IEEE 1857.10)"),
B(VLC_CODEC_AMV, "AMV"),
B(VLC_CODEC_BINKVIDEO, "Bink Video"),
......