Commit graph

55 commits

Author SHA1 Message Date
Anton Khirnov
1e7d2007c3 all: use designated initializers for AVOption.unit
Makes it robust against adding fields before it, which will be useful in
following commits.

Majority of the patch generated by the following Coccinelle script:

@@
typedef AVOption;
identifier arr_name;
initializer list il;
initializer list[8] il1;
expression tail;
@@
AVOption arr_name[] = { il, { il1,
- tail
+ .unit = tail
}, ...  };

with some manual changes, as the script:
* has trouble with options defined inside macros
* sometimes does not handle options under an #else branch
* sometimes swallows whitespace
2024-02-14 14:53:41 +01:00
Anton Khirnov
08bebeb1be Revert "all: Don't set AVClass.item_name to its default value"
Some callers assume that item_name is always set, so this may be
considered an API break.

This reverts commit 0c6203c97a.
2024-01-20 10:34:48 +01:00
Andreas Rheinhardt
0c6203c97a all: Don't set AVClass.item_name to its default value
Unnecessary since acf63d5350;
also avoids relocations.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2023-12-22 15:12:33 +01:00
Andreas Rheinhardt
48286d4d98 avcodec/codec_internal: Add macro to set AVCodec.long_name
It reduces typing: Before this patch, there were 105 codecs
whose long_name-definition exceeded the 80 char line length
limit. Now there are only nine of them.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-09-03 15:42:57 +02:00
Andreas Rheinhardt
6aad1204cc avcodec: Add FF_CODEC_CAP_NOT_INIT_THREADSAFE
This is in preparation of switching the default init-thread-safety
to a codec being init-thread-safe.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-07-18 19:58:56 +02:00
Andreas Rheinhardt
4ad686269d avcodec: Add const to decoder packet data pointers
The packets given to decoder need not be writable,
so it is best to access them via const uint8_t*.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-07-09 19:37:53 +02:00
Andreas Rheinhardt
6ed0d95fa2 avcodec/codec_internal: Constify AVPacket in decode_sub cb
No subtitle decoder ever modifies the AVPacket given to it.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-04-05 20:02:47 +02:00
Andreas Rheinhardt
4243da4ff4 avcodec/codec_internal: Use union for FFCodec decode/encode callbacks
This is possible, because every given FFCodec has to implement
exactly one of these. Doing so decreases sizeof(FFCodec) and
therefore decreases the size of the binary.
Notice that in case of position-independent code the decrease
is in .data.rel.ro, so that this translates to decreased
memory consumption.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-04-05 20:02:37 +02:00
Andreas Rheinhardt
fb59a42ef9 avcodec/codec_internal: Add FFCodec.decode_sub
This increases type-safety by avoiding conversions from/through void*.
It also avoids the boilerplate "AVSubtitle *sub = data;" line
for subtitle decoders. Its only downside is that it increases
sizeof(FFCodec), yet this can be more than offset lateron.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-04-05 19:53:27 +02:00
Andreas Rheinhardt
20f9727018 avcodec/codec_internal: Add FFCodec, hide internal part of AVCodec
Up until now, codec.h contains both public and private parts
of AVCodec. This exposes the internals of AVCodec to users
and leads them into the temptation of actually using them
and forces us to forward-declare structures and types that
users can't use at all.

This commit changes this by adding a new structure FFCodec to
codec_internal.h that extends AVCodec, i.e. contains the public
AVCodec as first member; the private fields of AVCodec are moved
to this structure, leaving codec.h clean.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-03-21 01:33:09 +01:00
Andreas Rheinhardt
a247ac640d avcodec: Constify AVCodecs
Given that the AVCodec.next pointer has now been removed, most of the
AVCodecs are not modified at all any more and can therefore be made
const (as this patch does); the only exceptions are the very few codecs
for external libraries that have a init_static_data callback.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-27 10:43:15 -03:00
Andreas Rheinhardt
d947464ad4 avcodec: Remove deprecated AVPicture API
Deprecated in a17a766190.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-27 10:43:04 -03:00
Marton Balint
16d29c1be8 avcodec/libzvbi-teletextdec: fix txt_default_region limits
Max region ID is 87. Also the region affects not only the G0 charset but G2 and
the national subset as well.

Signed-off-by: Marton Balint <cus@passwd.hu>
2020-06-14 20:00:02 +02:00
Limin Wang
8ea4efffdb avcodec/libzvbi-teletextdec: replace data_size with got_sub_ptr for better readability
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-03-25 18:41:21 +01:00
Kirill Savkov
4627a56d46 avcodec/libzvbi-teletextdec: add option to set default G0 character set
Signed-off-by: Kirill Savkov <k.savkov@inventos.ru>
Signed-off-by: Marton Balint <cus@passwd.hu>
2020-02-24 00:14:21 +01:00
Marton Balint
b577153231 avcodec/libzvbi-teletextdec: add formatted ass output
Inspired by the VideoLAN text decoder and its port to FFmpeg made by Aman
Gupta.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-09-30 01:10:23 +02:00
Marton Balint
b1e0e21646 avcodec/libzvbi-teletextdec: propagate ERASE_PAGE flag for repeated subtitle page headers
This works around a libzvbi bug (a corner case in the teletext spec):

https://sourceforge.net/p/zapping/bugs/203/
https://sourceforge.net/p/zapping/patches/20/

Fixes samples/ffmpeg-bugs/trac/ticket2086/RBT_20100801_1835.ts.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-20 22:26:41 +02:00
Marton Balint
d9f72e53bf avcodec/libzvbi-teletextdec: add support for selecting subtitle pages only
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-10 23:48:23 +02:00
Marton Balint
ab7692ee35 avcodec/libzvbi-teletextdec: remove DEBUG code
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-05-06 21:57:24 +02:00
Marton Balint
03038d4da9 avcodec/libzvbi-teletextdec: allow -1 subtitle duration and make it the default
Most decoders (pgssubdec, ccaption_dec) are using -1 or UINT32_MAX for a
subtitle event which should be cleared at the next event.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-05-06 21:57:22 +02:00
wm4
b945fed629 avcodec: add metadata to identify wrappers and hardware decoders
Explicitly identify decoder/encoder wrappers with a common name. This
saves API users from guessing by the name suffix. For example, they
don't have to guess that "h264_qsv" is the h264 QSV implementation, and
instead they can just check the AVCodec .codec and .wrapper_name fields.

Explicitly mark AVCodec entries that are hardware decoders or most
likely hardware decoders with new AV_CODEC_CAPs. The purpose is allowing
API users listing hardware decoders in a more generic way. The proposed
AVCodecHWConfig does not provide this information fully, because it's
concerned with decoder configuration, not information about the fact
whether the hardware is used or not.

AV_CODEC_CAP_HYBRID exists specifically for QSV, which can have software
implementations in case the hardware is not capable.

Based on a patch by Philip Langdale <philipl@overt.org>.

Merges Libav commit 47687a2f8a.
2017-12-14 19:37:56 +01:00
Josh de Kock
2dafbae994
lavc/libzvbi: remove deprecated API usage
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Josh de Kock <josh@itanimul.li>
2017-02-12 21:37:23 +00:00
Michael Niedermayer
3e42c1128f avcodec/libzvbi-teletextdec: Remove unused variable
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-28 23:39:32 +01:00
Clément Bœsch
30e7685360 lavc/options: add ass_ro_flush_noop to flags2 2016-02-26 21:53:32 +01:00
Clément Bœsch
2941282124 lavc: allow subtitle text format to be ASS without timing 2016-02-26 21:49:34 +01:00
Marton Balint
6c905dd3c2 avcodec/libzvbi-teletextdec: use common functions for matching data_unit_id and data_identifier
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-02-19 21:50:19 +01:00
Marton Balint
73e4565dff lavc/libzvbi-teletextdec: add support for setting background opacity
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-25 22:15:27 +01:00
Marton Balint
92f2a9dbc5 lavc/libzvbi-teletextdec: remove cmax variable
Use VBI_NB_COLORS instead.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-25 22:06:57 +01:00
Marton Balint
fe4a2cbd4d lavc/libzvbi-teletextdec: use the built-in transparent color for transparent background
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-25 22:06:57 +01:00
Hendrik Leppkes
50401f5fb7 avcodec: properly check pkt_timebase for validity
Unset/invalid timebases have a zero numerator.
This makes the checks consistent with other timebase checks and fixes an
integer division by 0.
2015-12-28 10:24:15 +01:00
Michael Niedermayer
432c1f35f7 avcodec/libzvbi-teletextdec: Remove unused variable ret
Fixes: libavcodec/libzvbi-teletextdec.c:232:9: warning: unused variable ret [-Wunused-variable]

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-04 04:40:00 +01:00
Marton Balint
5e9f14e4bf libzvbi-teletextdec: fix AVSubtitleRect pict compatiblity code
Only set pict if we got a valid rect.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-24 16:12:26 +02:00
Michael Niedermayer
3f85552e40 avcodec/libzvbi-teletextdec: Add variable to fix build
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-22 23:00:02 +02:00
Hendrik Leppkes
ce97363628 avcodec/libzvbi: Update for AVSubtitleRect changes 2015-10-22 21:43:15 +02:00
Ronald S. Bultje
229843aa35 Replace av_dlog with ff_dlog.
ff_dlog checks compilability, and is non-public. av_dlog is deprecated
and no longer exists if FF_API_DLOG=0.
2015-08-18 10:24:01 -04:00
Michael Niedermayer
444e9874a7 Merge commit 'def97856de'
* commit 'def97856de':
  lavc: AV-prefix all codec capabilities

Conflicts:
	cmdutils.c
	ffmpeg.c
	ffplay.c
	libavcodec/8svx.c
	libavcodec/aacenc.c
	libavcodec/ac3dec.c
	libavcodec/adpcm.c
	libavcodec/alac.c
	libavcodec/atrac3plusdec.c
	libavcodec/bink.c
	libavcodec/dnxhddec.c
	libavcodec/dvdec.c
	libavcodec/dvenc.c
	libavcodec/ffv1dec.c
	libavcodec/ffv1enc.c
	libavcodec/fic.c
	libavcodec/flacdec.c
	libavcodec/flacenc.c
	libavcodec/flvdec.c
	libavcodec/fraps.c
	libavcodec/frwu.c
	libavcodec/gifdec.c
	libavcodec/h261dec.c
	libavcodec/hevc.c
	libavcodec/iff.c
	libavcodec/imc.c
	libavcodec/libopenjpegdec.c
	libavcodec/libvo-aacenc.c
	libavcodec/libvorbisenc.c
	libavcodec/libvpxdec.c
	libavcodec/libvpxenc.c
	libavcodec/libx264.c
	libavcodec/mjpegbdec.c
	libavcodec/mjpegdec.c
	libavcodec/mpegaudiodec_float.c
	libavcodec/msmpeg4dec.c
	libavcodec/mxpegdec.c
	libavcodec/nvenc_h264.c
	libavcodec/nvenc_hevc.c
	libavcodec/pngdec.c
	libavcodec/qpeg.c
	libavcodec/ra288.c
	libavcodec/rv10.c
	libavcodec/s302m.c
	libavcodec/sp5xdec.c
	libavcodec/takdec.c
	libavcodec/tiff.c
	libavcodec/tta.c
	libavcodec/utils.c
	libavcodec/v210dec.c
	libavcodec/vp6.c
	libavcodec/vp9.c
	libavcodec/wavpack.c
	libavcodec/yop.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:50:18 +02:00
Clément Bœsch
c669af0f24 avcodec/ass: add ASS trailing \r\n in one single place 2014-10-19 23:24:34 +02:00
Michael Niedermayer
8ff061095f avcodec/libzvbi-teletextdec: remove * 1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 23:12:26 +02:00
Marton Balint
085ca7dcdb libzvbi-teletextdec: split dvb packet to slices
Instead of using the demux function of libzvbi to split the packet to slices
(vbi lines), lets do it ourselves.

- eliminates the 1 frame delay between page input and output
- handles non-ascending line numbers more gracefully
- enables us to return error codes on some invalid packets instead of silently
  ignoring them

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-03-08 21:58:12 +01:00
Marton Balint
ae017c2632 libzvbi-teletextdec: use av_dlog where possible
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-03-08 21:58:12 +01:00
Carl Eugen Hoyos
b89596a432 Fix FSF address in colormatrix and libzvbi license headers.
As reported by irc user aca.
The files in compat/avisynth are maintained elsewhere, no changes.
2014-02-22 11:17:56 +01:00
Marton Balint
97f880e7a9 libzvbi-teletextdec: set bitmap teletext canvas dimensions
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-14 15:57:44 +01:00
Marton Balint
c77e0c2130 libzvbi-teletextdec: add chopped top row size to y offset
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-14 15:57:44 +01:00
Marton Balint
249a435989 libzvbi-teletextdec: use defined constants for bitmap char width and height
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-14 15:57:44 +01:00
Marton Balint
b50968169d libzvbi-teletextdec: cosmetics
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-14 15:57:43 +01:00
Marton Balint
c0479f0f06 libzvbi-teletextdec: propagate errors generated in page handler
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-10 20:00:01 +01:00
Marton Balint
4947b0624b libzvbi-teletextdec: dont ignore memory allocation error silently
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-10 20:00:01 +01:00
Marton Balint
3c4b5275b6 libzvbi-teletextdec: output ass subtitles instead of plain text
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-10 19:59:59 +01:00
Marton Balint
65fb59abd2 libzvbi-teletextdec: use AVBPrint for whitespace cleanup
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-10 18:57:51 +01:00
Marton Balint
b689b1f6ee libzvbi-teletextdec: use option constants instead of strings
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-10 18:57:51 +01:00