Code Monkey home page Code Monkey logo

ffmpeg_libyami's Introduction

DISCONTINUATION OF PROJECT.

This project will no longer be maintained by Intel.

Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.

Intel no longer accepts patches to this project.

If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the open source software community, please create your own fork of this project. FFmpeg README

FFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.

Libraries

  • libavcodec provides implementation of a wider range of codecs.
  • libavformat implements streaming protocols, container formats and basic I/O access.
  • libavutil includes hashers, decompressors and miscellaneous utility functions.
  • libavfilter provides a mean to alter decoded Audio and Video through chain of filters.
  • libavdevice provides an abstraction to access capture and playback devices.
  • libswresample implements audio mixing and resampling routines.
  • libswscale implements color conversion and scaling routines.

Tools

  • ffmpeg is a command line toolbox to manipulate, convert and stream multimedia content.
  • ffplay is a minimalistic multimedia player.
  • ffprobe is a simple analysis tool to inspect multimedia content.
  • ffserver is a multimedia streaming server for live broadcasts.
  • Additional small tools such as aviocat, ismindex and qt-faststart.

Documentation

The offline documentation is available in the doc/ directory.

The online documentation is available in the main website and in the wiki.

Examples

Coding examples are available in the doc/examples directory.

License

FFmpeg codebase is mainly LGPL-licensed with optional components licensed under GPL. Please refer to the LICENSE file for detailed information.

Contributing

Patches should be submitted to the ffmpeg-devel mailing list using git format-patch or git send-email. Github pull requests should be avoided because they are not part of our review process and will be ignored.

ffmpeg_libyami's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ffmpeg_libyami's Issues

severe memory leak libyami_h264

  1. pFormatCtx = avformat_alloc_context();
  2. avformat_open_input(&pFormatCtx
  3. avformat_find_stream_info(pFormatCtx
  4. avcodec_find_decoder_by_name("libyami_h264");
  5. ...

The memory will not be recycled after it is released

    av_packet_free(&avpkt); 
    av_frame_free(&vFrame);
    av_frame_free(&aFrame);
    avcodec_close(vCodecCtx);
    avcodec_close(aCodecCtx);
    avformat_close_input(&pFormatCtx);

run inside a thread

No such memory leak will occur with soft solution

error C4146

When i tried to build source code, I match a error:
error C4146: unary minus operator applied to unsigned type, result still unsigned
at return -(uint64_t)av_rescale_rnd(-std::max(a, -INT64_MAX), b, c, rnd ^ ((rnd >> 1) & 1));
How can I fix it?

Many thanks

How can I use it?

libyami-1.0.0 just released. Can I use it with ffmpeg?
Is any documentation for ffmpeg_libyami: building process, transcoding options, etc?

ffmpeg libyami can't run stream loop.

run command:
./ffmpeg -y -stream_loop 5 -c:v libyami_h264 -i skyfall2-trailer.mp4 -an -f null /dev/null

the stream has 3614 frames, run above command, ffmpeg decode 3614 frames and exit, it should be decode 3614 x 5 frames.

the validation of mp4 metadata?

Use ffmpeg yami transcode, the mp4 metadata seems with some error.
After use ffmpeg copy codec to do remux, it be fine.

Test step as below:

Step1

Convert 1080p to 720p by libyam_h264. It is base on ffmpeg_libyami_V1.0.0

# ffmpeg -y -c:v libyami_h264 -i /data/media-sample/bbb_sunflower_1080p_30fps_normal.mp4 \
-vf "yamivpp=w=1280:h=720" -c:v libyami_h264 -c:a copy -f mp4 /data/bbb_yami_720.mp4

Step2

mp4info - Utility to display MP4 file summary

# sudo apt-get install mp4v2-utils
# mp4info /data/bbb_yami_720.mp4 
mp4info version 2.0.0
bbb_yami_720.mp4:
ReadProperties: atom 'avcC' is too small; overrun at property: configurationVersion (src/mp4atom.cpp,386)
mp4info: can't open bbb_yami_720.mp4

Step3

remux by ffmpeg copy.

# ffmpeg -i /data/bbb_yami_720.mp4 -codec copy -f mp4 /data/bbb_yami_720-remux.mp4

Step4

display mp4 info again.

# mp4info bbb_yami_720-remux.mp4 
mp4info version 2.0.0
bbb_yami_720-remux.mp4:
Track   Type    Info
1       video   H264 Main@4, 634.600 secs, 4946 kbps, 1280x720 @ 30.000000 fps
2       audio   ac-3, 634.144 secs, 320 kbps, 48000 Hz
 Name: Big Buck Bunny, Sunflower version
 Artist: Blender Foundation 2008, Janus Bager Kristensen 2013
 Composer: Sacha Goedegebure
 Encoded with: Lavf57.51.100
 Genre: Animation
 Comments: Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net

H264 decode AV_PIX_FMT_YAMI putsurface error

we use the AV_PIX_FMT_YAMI put surface to the window and the code is like below, the decode is ok, but the put surface error.
Decode format 335 (1920, 1080) AV_PIX_FMT_YAMI 335 AV_PIX_FMT_NV12 25
vaPutSurface return 0x14 surface id 67108876
Decode format 335 (1920, 1080) AV_PIX_FMT_YAMI 335 AV_PIX_FMT_NV12 25
vaPutSurface return 0x14 surface id 67108877
Decode format 335 (1920, 1080) AV_PIX_FMT_YAMI 335 AV_PIX_FMT_NV12 25
vaPutSurface return 0x14 surface id 67108878
Decode format 335 (1920, 1080) AV_PIX_FMT_YAMI 335 AV_PIX_FMT_NV12 25
vaPutSurface return 0x14 surface id 67108879
Decode format 335 (1920, 1080) AV_PIX_FMT_YAMI 335 AV_PIX_FMT_NV12 25
vaPutSurface return 0x14 surface id 67108880
Decode format 335 (1920, 1080) AV_PIX_FMT_YAMI 335 AV_PIX_FMT_NV12 25
vaPutSurface return 0x14 surface id 67108881

    AVFrame* pFrame = ph264->decode(raw_media_data, count);
    if (pFrame)
    {
        printf("Decode  format %d (%d, %d) AV_PIX_FMT_YAMI %d AV_PIX_FMT_NV12 %d\n", pFrame->format, pFrame->width, 
            pFrame->height, AV_PIX_FMT_YAMI, AV_PIX_FMT_NV12);
        if (m_pWinHandle)
        {
            VAStatus status = VA_STATUS_SUCCESS;
            YamiImage *pImage = (YamiImage *)pFrame->data[3];

            status = vaPutSurface(pImage->va_display, (VASurfaceID)pImage->output_frame->surface,
                m_pWinHandle, 0, 0, pFrame->width, 
                pFrame->height,  0, 0, m_winw, m_winh,
                NULL, 0, 0);
            if (status != VA_STATUS_SUCCESS) 
            {
                printf("vaPutSurface return 0x%x  surface id %d\n", status, 
                    (VASurfaceID)pImage->output_frame->surface);
            }               
        }

    }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.