git.videolan.org Git - ffmpeg.git/rss log

FFmpeg git repo

http://git.videolan.org/?p=ffmpeg.git;a=summary

Les articles publiés sur le site

  • avcodec/mpeg12dec : Remove disabled frame-threading code

    29 avril, par Andreas Rheinhardt
    avcodec/mpeg12dec: Remove disabled frame-threading code
    
    The MPEG-1 decoder has an update_thread_context function set,
    yet it was never enabled (missing AV_CODEC_CAP_FRAME_THREADS
    flag). So remove it and also the ff_thread_finish_setup() call
    as well as the progress reporting.
    
    (Simply setting the flag would not be enough. The main problems
    are:
    a) The update_thread_context function relies on memcpy'ing
    the whole context instead of only copying the necessary fields.
    This leads to data races which is undefined behaviour.
    (Btw: The check for whether the non-MpegEncContext fields
    of Mpeg1Context should be copied has been broken in
    7f0efe232475d7a704924a3cb308281973e8add3.)
    b) Even an AVBufferRef* is simply copied, without creating a new
    reference.
    c) Copying the whole context happens only during init; when parameters
    change lateron, the change is not propagated to the next thread.
    This affects at least the quant matrix (for MPEG-1).
    d) The MPEG-1/2 decoders are made to decode both MPEG-1 and MPEG-2.
    When MPEG-2 is decoded, another complication arises: In case of
    coded fields, both fields can be in one AVPacket or they can be
    in separate AVPackets. One would need to parse enough of the data
    to be able to determine whether the next thread needs to start
    a new frame or decode the second field of the current frame;
    for this one would need to either postpone calling
    ff_thread_finish_setup() for coded slices altogether or implement
    some form of ff_h2645_packet_split().
    One would also need a second ThreadProgress to signal progress
    of each field.
    e) One would need to reenable waiting in ff_mpv_reconstruct_mb()
    for MPEG-1/2 (and H.261).
    f) Probably lots of other stuff for invalid input that I am currently
    not thinking about.
    If this were done, nothing from the current update_thread_context
    would remain, so one can just nuke it altogether.)
    
    Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
    
    • [DH] libavcodec/mpeg12dec.c
  • avcodec/sanm : recognize common FOBJ sizes

    29 avril, par Manuel Lauss
    avcodec/sanm: recognize common FOBJ sizes
    
    Change the size detection a bit to recognize common video sizes,
    as the FOBJ codecs>=37 cannot always be trusted, since they can
    be embedded in a larger frame.
    
    Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
    
    • [DH] libavcodec/sanm.c
  • avcodec/sanm : ignore codec48 compression type 6

    29 avril, par Manuel Lauss
    avcodec/sanm: ignore codec48 compression type 6
    
    Some videos of "StarWars - Making Magic" have this subcompression
    type: data just consists of the 16 byte codec48 header; the DOS player
    and the c48 decoder in the "Mysteries of the Sith" game engine ignore it.
    
    Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
    
    • [DH] libavcodec/sanm.c
  • doc/ffprobe : remove entry for show_format_entry

    29 avril, par Gyan Doshi
    doc/ffprobe: remove entry for show_format_entry
    
    The option was removed in 1dd6363581.
    
    • [DH] doc/ffprobe.texi
  • ffv1enc_vulkan : support 8 and 16-bit 2-plane YUV formats

    29 avril, par Lynne
    ffv1enc_vulkan: support 8 and 16-bit 2-plane YUV formats
    
    This adds support for all 8-bit and 16-bit 2-plane formats.
    P010 and others require more work as the data's LSB-padded.
    
    • [DH] libavcodec/ffv1enc.c
    • [DH] libavcodec/ffv1enc_vulkan.c
    • [DH] libavcodec/vulkan/ffv1_enc.comp