Anton Khirnov
018f39ef49
FATE: add CPUFLAGS variable, mapping to -cpuflags avconv option.
2012-03-06 15:03:36 +01:00
Anton Khirnov
4138cd2907
avconv: add -cpuflags option for setting supported cpuflags.
...
Useful for testing.
2012-03-06 15:03:22 +01:00
Anton Khirnov
4d851f8dcf
cpu: add av_set_cpu_flags_mask().
2012-03-06 15:02:28 +01:00
Anton Khirnov
39da3b223f
avconv: fix counting encoded video size.
...
avcodec_encode_video2() return value is 0 on success, encoded frame size
is stored in the packet.
2012-03-06 10:06:21 +01:00
Anton Khirnov
27c7ca9c12
lavf: deobfuscate read_frame_internal().
...
Split off packet parsing into a separate function. Parse full packets at
once and store them in a queue, eliminating the need for tracking
parsing state in AVStream.
The horrible unreadable loop in read_frame_internal() now isn't weirdly
ordered and doesn't contain evil gotos, so it should be much easier to
understand.
compute_pkt_fields() now invents slightly different timestamps for two
raw vc1 tests, due to has_b_frames being set a bit later. They shouldn't
be more wrong (or right) than previous ones.
2012-03-05 18:47:05 +01:00
Anton Khirnov
dcee811505
lavf: make read_from_packet_buffer() more flexible.
...
Make packet buffer a parameter, don't hardcode it to be
AVFormatContext.packet_buffer.
Also move the function higher in the file, since it will be called from
read_frame_internal().
2012-03-05 18:44:45 +01:00
Anton Khirnov
52b0943f10
lavf: factorize freeing a packet buffer.
2012-03-05 18:44:30 +01:00
Anton Khirnov
3faa141d15
cmdutils: use new avcodec_is_decoder/encoder() functions.
...
Fixes listing encoders.
2012-03-04 21:09:35 +01:00
Anton Khirnov
44fe77b350
lavc: make codec_is_decoder/encoder() public.
2012-03-04 21:08:52 +01:00
Anton Khirnov
02beb9826b
lavc: deprecate AVCodecContext.sub_id.
...
In most places where it's used, it's as a pointless write-only field.
Only rv10 decoder actually reads from it, but it stores some internal
version info in it. There is no reason for it to be in a public field.
2012-03-04 21:02:45 +01:00
Anton Khirnov
87392b1fd5
libcdio: add a forgotten AVClass to the private context.
2012-03-04 21:01:41 +01:00
Anton Khirnov
7fb6c9225c
lavc: free the output packet when encoding failed or produced no output.
2012-03-03 06:31:41 +01:00
Anton Khirnov
e42e9b0e4d
lavc: preserve avpkt->destruct in ff_alloc_packet().
...
Also, don't bother with saving/restoring data, av_init_packet doesn't
touch it.
2012-03-03 06:31:41 +01:00
Anton Khirnov
c179c9e19d
lavc: clarify the meaning of AVCodecContext.frame_number.
2012-03-03 06:31:41 +01:00
Anton Khirnov
56bf24ad78
r3d: don't set codec timebase.
...
It's not supposed to be set by demuxers.
Set avg_frame_rate and r_frame_rate instead.
2012-03-02 17:21:45 +01:00
Anton Khirnov
efec3bc65a
electronicarts: set timebase for tgv video.
...
The container has no timestamps and the framerate isn't stored in the
data either.
The decoder sets codec timebase to experimentally found value 1/15. Do
the same for the demuxer too, it should at least be better than the
default 1/90000.
2012-03-02 11:11:38 +01:00
Anton Khirnov
e39400c3a8
electronicarts: parse the framerate for cmv video.
2012-03-02 11:11:38 +01:00
Anton Khirnov
1bb3990b56
ogg: don't set codec timebase
...
Demuxers are not supposed to set it.
2012-03-02 11:11:38 +01:00
Anton Khirnov
1d3144c318
electronicarts: don't set codec timebase
...
Demuxers are not supposed to set it.
Set stream timebase and framerates instead (this is a cfr container with
no timestamps).
2012-03-02 11:11:38 +01:00
Anton Khirnov
10a6e0c346
avs: don't set codec timebase
...
Demuxers are not supposed to set it.
Set r_frame_rate and avg_frame_rate instead.
2012-03-02 11:11:38 +01:00
Anton Khirnov
eb727387fd
lavc: shrink encoded video packet size after encoding.
...
Based on a patch by Nicolas George <nicolas.george <at> normalesup.org>
2012-03-01 22:21:35 +01:00
Anton Khirnov
322537478b
Add a minor bump, changelog/APIchanges entry and some documentation for APIC support.
2012-02-29 14:44:22 +01:00
Anton Khirnov
2dfea12058
mp3enc: write attached pictures (APIC).
2012-02-29 14:37:00 +01:00
Anton Khirnov
c68148b1ea
mp3enc: move mp3_write_xing() further up in the file.
...
It will be need by new functions called from mp3_write_trailer().
2012-02-29 14:36:45 +01:00
Anton Khirnov
ba445f5557
id3v2enc: add a function for writing attached pictures.
...
Unused so far.
2012-02-29 14:31:17 +01:00
Anton Khirnov
24fe1a3b16
id3v2enc: fix writing frame sizes for ID3v2.3
...
Frame sizes in ID3v2.3 are not synchsafe, they are simply 32be numbers.
In practice this bug is not noticeable unless the frame size takes more
than 7 bits (which is almost never for text frames).
2012-02-29 14:30:14 +01:00
Anton Khirnov
411225aabc
id3v2enc: split ff_id3v2_write().
...
This will allow writing the tag in several steps, needed for writing
attached pictures.
2012-02-29 14:26:14 +01:00
Anton Khirnov
c199817748
id3v2enc: make id3v2_put_size take only an AVIOContext.
...
It has no need of full AVFormatContext.
2012-02-29 14:25:33 +01:00
Anton Khirnov
393fd0d89e
id3v2: remove unused ff_id3v2_read().
...
Rename ff_id3v2_read_all to ff_id3v2_read().
2012-02-29 14:19:42 +01:00
Anton Khirnov
079ea6ca5f
lavf: export id3v2 attached pictures as streams.
2012-02-29 14:16:32 +01:00
Anton Khirnov
dd2a4bcfd7
lavf: generic code for exporting attached pictures.
2012-02-29 14:16:25 +01:00
Anton Khirnov
a93b09cb45
id3v2: read attached pictures and export them in ID3v2ExtraMeta.
2012-02-29 14:14:48 +01:00
Anton Khirnov
b73ad74660
lavf: move CodecMime from matroska.h to internal.h
...
it will be useful for attached pictures in ID3v2
2012-02-29 13:57:59 +01:00
Anton Khirnov
eaea76d72c
swfdec: do not set codec timebase.
...
It is not supposed to be set outside of lavc.
Fixes a divide by zero when the stored framerate is 0.
2012-02-29 13:52:55 +01:00
Anton Khirnov
23bfcc066d
mpegvideo_enc: add quantizer_noise_shaping private option.
...
Deprecate corresponding AVCodecContext field.
2012-02-29 07:26:24 +01:00
Anton Khirnov
16b7557b79
lavc: deprecate AVCodecContext.inter_threshold.
...
It's unused.
2012-02-29 07:25:44 +01:00
Anton Khirnov
4f07f8196c
lavc: deprecate AVCodecContext.color_table_id.
...
It's currently only used as temporary storage by the mov demuxer. Make
it use a local variable instead.
2012-02-29 07:25:00 +01:00
Anton Khirnov
e0f68413dd
avplay: remove an unused variable.
2012-02-29 07:24:34 +01:00
Anton Khirnov
63efd83ae1
mpegvideo_enc: add chroma/luma_elim_threshold private options.
...
Deprecate corresponding AVCodecContext fields.
2012-02-29 07:23:31 +01:00
Anton Khirnov
af3d804f9f
mpegvideo_enc: add cbp_rd flag to mpv_flags.
...
Deprecate CODEC_FLAG_CBP_RD.
2012-02-29 07:13:58 +01:00
Anton Khirnov
ff71a383ac
mpegvideo_enc: add qp_rd flag to mpv_flags.
...
Deprecate CODEC_FLAG_QP_RD.
2012-02-29 07:12:10 +01:00
Anton Khirnov
a249f0cc23
mpegvideo_enc: add strict_gop flag to mpv_flags.
...
Deprecate CODEC_FLAG2_STRICT_GOP.
2012-02-29 07:11:02 +01:00
Anton Khirnov
ed019b8e5b
lavc: add -mpv_flags to mpegvideo_enc-based encoders.
...
Deprecate CODEC_FLAG2_SKIP_RD in favor of the corresponding mpv_flags
flag.
2012-02-29 07:09:29 +01:00
Anton Khirnov
f5f5b154e7
doc/APIchanges: fill in missing dates and hashes.
2012-02-27 08:35:32 +01:00
Anton Khirnov
b1edfce08a
lavc: reorder AVCodecContext fields.
...
Put related fields together, move the important ones closer to the
beginning, try to eliminate holes.
2012-02-27 07:09:43 +01:00
Anton Khirnov
1d428004c6
lavc: reorder AVFrame fields.
...
Put related fields together, move the important ones closer to the
beginning, try to eliminate holes.
2012-02-27 07:07:25 +01:00
Anton Khirnov
7929e22bde
lavf: don't guess r_frame_rate from either stream or codec timebase.
...
Neither of those is guaranteed to be connected to framerate in any way
(if it even exists).
Fixes bug 56.
2012-02-26 19:32:33 +01:00
Anton Khirnov
13f6917ca9
avconv: set discard on input streams automatically.
2012-02-26 19:30:50 +01:00
Anton Khirnov
d3783f47ee
lavf: don't set codec timebase in avformat_find_stream_info().
...
It's not supposed to be set outside of lavc.
2012-02-26 07:51:12 +01:00
Anton Khirnov
832ba44d8d
avconv: saner output video timebase.
...
r_frame_rate should in theory have something to do with input framerate,
but in practice it is often made up from thin air by lavf. So unless we
are targeting a constant output framerate, it's better to just use input
stream timebase.
Brings back dropped frames in nuv and cscd tests introduced in
cd1ad18a65
2012-02-26 07:48:45 +01:00
Anton Khirnov
87d7a92b62
rawdec: set timebase to 1/fps.
2012-02-26 07:30:21 +01:00
Anton Khirnov
d43040e28b
avconv: refactor vsync code.
...
No functional changes, just make it more readable.
2012-02-26 07:28:27 +01:00
Anton Khirnov
493a86e25b
FATE: remove a bunch of useless -vsync 0
...
No changes in the test results.
2012-02-26 07:28:04 +01:00
Anton Khirnov
03ca0a5b30
lavc: merge two if()s with the same condition.
2012-02-25 07:48:52 +01:00
Anton Khirnov
d55fa6f9cb
lavc: factorize setting got_packet_ptr in avcodec_encode_video2()
2012-02-25 07:48:46 +01:00
Anton Khirnov
52953d61ca
lavc: signal no output when a NULL frame is passed to audio encoder without delay
2012-02-25 07:48:36 +01:00
Anton Khirnov
655b24c01c
lavf: move the packet keyframe setting code.
...
compute_pkt_fields() is for unreliable estimates or guessing. The
keyframe information from the parser is (at least in theory) reliable,
so it should be used even when the other guessing is disabled with the
AVFMT_FLAG_NOFILLIN flag.
Therefore, move setting the packet keyframe flag based on parser
information from compute_pkt_fields() to read_frame_internal().
2012-02-24 19:43:02 +01:00
Anton Khirnov
5ff42e3138
lavf/output-example: use new audio encoding API correctly.
2012-02-24 09:44:18 +01:00
Anton Khirnov
6e9ed7c7ae
lavf/output-example: more proper usage of the new API.
...
Passing the codec into avformat_new_stream() is preferred.
2012-02-24 09:44:17 +01:00
Anton Khirnov
ff311c0918
lavc: drop encode() support for video.
...
All video encoders have been converted to encode2(), all new encoders
should also use only encode2().
2012-02-23 20:26:26 +01:00
Anton Khirnov
171273fec8
snowenc: switch to encode2().
2012-02-23 20:26:14 +01:00
Anton Khirnov
8d3348c2c4
snowenc: don't abuse input picture for storing information.
2012-02-23 20:26:04 +01:00
Anton Khirnov
7340008f18
a64multienc: switch to encode2().
...
We have no decoder, so cannot test if the output is decodable.
2012-02-23 19:56:55 +01:00
Anton Khirnov
cfc6ab3199
a64multienc: don't write into output buffer when there's no output.
2012-02-23 19:56:45 +01:00
Anton Khirnov
4da6d194e5
libxvid: switch to encode2().
2012-02-23 19:55:23 +01:00
Anton Khirnov
760b004086
tiffenc: switch to encode2().
2012-02-23 19:53:20 +01:00
Anton Khirnov
62acb4937e
tiffenc: properly forward error codes in encode_frame().
2012-02-23 19:52:08 +01:00
Anton Khirnov
2257f66ec5
lavc: drop libdirac encoder.
...
Libschroedinger is the preferred way to encode dirac video now, it
produces better output and has a nicer API.
2012-02-23 19:50:46 +01:00
Anton Khirnov
577fed3b7c
gifenc: switch to encode2().
2012-02-23 19:50:46 +01:00
Anton Khirnov
d8f3365fb0
libvpxenc: switch to encode2().
2012-02-23 19:50:46 +01:00
Anton Khirnov
0ecf54f9dc
flashsvenc: switch to encode2().
2012-02-23 19:50:46 +01:00
Anton Khirnov
84db922bf9
libxavs: switch to encode2().
2012-02-23 19:25:50 +01:00
Anton Khirnov
d3b577f00d
libxavs: add an AVClass at the beginning of XavsContext.
2012-02-23 19:25:50 +01:00
Anton Khirnov
a5f848c86d
libxavs: split extradata writing out of encode_nals().
...
This is done in preparation for the following patch implementing
encode2().
This commit is analogous to 05d699222d for
libx264.
2012-02-23 19:25:50 +01:00
Anton Khirnov
8e8124e173
ljpegenc: switch to encode2().
2012-02-23 19:25:50 +01:00
Anton Khirnov
3c0ed7d1a8
asv1enc: switch to encode2().
2012-02-23 14:11:08 +01:00
Anton Khirnov
df53a47317
libschroedingerenc: switch to encode2().
2012-02-23 13:54:34 +01:00
Anton Khirnov
278d88689b
ffv1enc: switch to encode2().
2012-02-23 13:51:29 +01:00
Anton Khirnov
f7fa73ac91
libtheoraenc: switch to encode2().
2012-02-23 13:48:34 +01:00
Anton Khirnov
6d9c27dc85
jpeglsenc: switch to encode2().
2012-02-23 11:12:39 +01:00
Anton Khirnov
148fc99506
lclenc: switch to encode2().
2012-02-23 11:11:42 +01:00
Anton Khirnov
21b46747ad
qtrleenc: switch to encode2().
2012-02-23 11:08:50 +01:00
Anton Khirnov
0584e3ca97
lavf: don't set AVCodecContext.has_b_frames in compute_pkt_fields().
...
It is not supposed to be done outside lavc.
This is basically a revert of 818062f2f3 .
It is unclear what issue this was supposed to fix, if it reappears again
it will have to be fixed in a more proper place.
The wtv-demux test change is because the sample starts with a B-frame.
2012-02-22 19:31:06 +01:00
Anton Khirnov
5d42ac7ffb
mpegvideo_enc: only allocate output packet when we know there will be output
...
Fixes a memleak.
2012-02-21 22:47:01 +01:00
Anton Khirnov
55fd7da107
pcxenc: switch to encode2().
2012-02-20 07:50:44 +01:00
Anton Khirnov
fb11e22fda
sgienc: switch to encode2().
2012-02-20 07:50:44 +01:00
Anton Khirnov
61eaf45c99
targaenc: switch to encode2().
2012-02-20 07:50:44 +01:00
Anton Khirnov
1e742ea3c8
targaenc: don't modify input frame.
...
Set the pict_type/key_frame properties on the coded picture.
2012-02-20 07:50:44 +01:00
Anton Khirnov
3227770092
roqvideoenc: switch to encode2().
2012-02-20 07:50:44 +01:00
Anton Khirnov
4fd7cfef0b
roqvideoenc: add const qualifier to the input frame.
2012-02-20 07:50:44 +01:00
Anton Khirnov
1ea5755046
pnmenc: switch to encode2().
2012-02-20 07:50:44 +01:00
Anton Khirnov
bc9c70e5a3
huffyuv: switch to encode2().
2012-02-20 07:50:44 +01:00
Anton Khirnov
2abee9be82
v410enc: switch to encode2().
2012-02-20 07:50:44 +01:00
Anton Khirnov
11505f39e1
zmbvenc: switch to encode2().
2012-02-20 07:50:44 +01:00
Anton Khirnov
8c8c7b5e37
zmbvenc: move header writing to the end of encode_frame().
...
This makes switching to encode2() simpler, because it allows us to know
exactly how large should the output buffer be before we start writing
into it.
2012-02-20 07:50:44 +01:00
Anton Khirnov
445a7d48b1
mpegvideo_enc: switch to encode2().
2012-02-19 08:26:30 +01:00
Anton Khirnov
5455384219
mpegvideo_enc: force encoding delay of at least 1 frame when low_delay=0
...
This allows the following commit to extrapolate better dts for the first
frame. Pts difference between the first two frames is reused as the
difference between pts and dts of the first frame.
2012-02-19 08:22:48 +01:00
Anton Khirnov
e9b380a7a5
pamenc: switch to encode2().
2012-02-17 20:46:37 +01:00
Anton Khirnov
3cc77ded4f
svq1enc: switch to encode2().
2012-02-17 20:46:37 +01:00
Anton Khirnov
6a047213ac
dvenc: switch to encode2().
2012-02-17 20:46:37 +01:00