Automated Software Transplantation Earl T. Mark Yue Alexandru Justyna Barr Harman Jia Marginean Petke CREST, University College London Alexandru Marginean — Automated Software Transplantation — Humies 2016
Why Autotransplantation? VLC Alexandru Marginean — Automated Software Transplantation — Humies 2016
Why Autotransplantation? VLC Alexandru Marginean — Automated Software Transplantation — Humies 2016
Why Autotransplantation? Why not handle VLC H.264? Alexandru Marginean — Automated Software Transplantation — Humies 2016
Why Autotransplantation? Why not handle VLC H.264? Alexandru Marginean — Automated Software Transplantation — Humies 2016
Why Autotransplantation? Why not handle VLC H.264? Alexandru Marginean — Automated Software Transplantation — Humies 2016
Why Autotransplantation? Why not handle VLC H.264? Start from scratch Alexandru Marginean — Automated Software Transplantation — Humies 2016
Why Autotransplantation? Why not handle VLC H.264? Start from scratch Alexandru Marginean — Automated Software Transplantation — Humies 2016
Why Autotransplantation? Check open source repositories Why not handle VLC H.264? Start from scratch Alexandru Marginean — Automated Software Transplantation — Humies 2016
Why Autotransplantation? Check open source repositories Why not handle VLC H.264? Start from scratch Alexandru Marginean — Automated Software Transplantation — Humies 2016
Why Autotransplantation? Check open source repositories Why not handle VLC H.264? Start from scratch Alexandru Marginean — Automated Software Transplantation — Humies 2016
Why Autotransplantation? Check open source repositories Why not handle VLC H.264? Start from scratch Alexandru Marginean — Automated Software Transplantation — Humies 2016
Why Autotransplantation? ~100 players Check open source repositories Why not handle VLC H.264? Start from scratch Alexandru Marginean — Automated Software Transplantation — Humies 2016
(G) The result solves a problem of indisputable difficulty in its field.
Human Competition x264 VLC char *vF; char * iF = getInputFile(); vF = getFile(); char * oF = getOutputFile(); initCodec(vF); Stream *ds = decodeFile(vF); encodeStream(ds, out); Alexandru Marginean — Automated Software Transplantation — Humies 2016
Human Competition x264 VLC char *vF; char * iF = getInputFile(); vF = getFile(); char * oF = getOutputFile(); initCodec(vF); Stream *ds = decodeFile(vF); encodeStream(ds, out); Alexandru Marginean — Automated Software Transplantation — Humies 2016
Human Competition x264 VLC char *vF; char * iF = getInputFile(); vF = getFile(); char * oF = getOutputFile(); initCodec(vF); Stream *ds = decodeFile(vF); encodeStream(ds, out); Alexandru Marginean — Automated Software Transplantation — Humies 2016
Human Competition x264 VLC char *vF; char * iF = getInputFile(); vF = getFile(); char * oF = getOutputFile(); initCodec(vF); Stream *ds = decodeFile(vF); encodeStream(ds, out); Alexandru Marginean — Automated Software Transplantation — Humies 2016
Human Competition x264 VLC char *vF; char * iF = getInputFile(); vF = getFile(); char * oF = getOutputFile(); initCodec(vF); Stream *ds = decodeFile( iF ); Stream *ds = decodeFile(vF); encodeStream(ds, oF ); encodeStream(ds, out); Alexandru Marginean — Automated Software Transplantation — Humies 2016
Human Competition x264 VLC char *vF; char * iF = getInputFile(); vF = getFile(); char * oF = getOutputFile(); initCodec(vF); Stream *ds = decodeFile( iF ); Stream *ds = decodeFile(vF); encodeStream(ds, oF ); encodeStream(ds, out); Alexandru Marginean — Automated Software Transplantation — Humies 2016
Human Competition x264 VLC char *vF; char * iF = getInputFile(); vF = getFile(); char * oF = getOutputFile(); initCodec(vF); Stream *ds = decodeFile( iF ); Stream *ds = decodeFile(vF); encodeStream(ds, oF ); encodeStream(ds, out); Alexandru Marginean — Automated Software Transplantation — Humies 2016
Human Competition x264 VLC char * iF = getInputFile(); char * oF = getOutputFile(); char *vF; vF = getFile(); initCodec(vF); Stream *ds = decodeFile( iF ); Stream *ds = decodeFile(vF); encodeStream(ds, oF ); encodeStream(ds, out); Alexandru Marginean — Automated Software Transplantation — Humies 2016
Human Competition x264 VLC char * iF = getInputFile(); char * oF = getOutputFile(); char *vF; vF = getFile(); iF = getFile(); initCodec(vF); initCodec( iF ); Stream *ds = decodeFile( iF ); Stream *ds = decodeFile(vF); encodeStream(ds, oF ); encodeStream(ds, out); Alexandru Marginean — Automated Software Transplantation — Humies 2016
Human Competition x264 VLC char * iF = getInputFile(); char * oF = getOutputFile(); char *vF; vF = getFile(); iF = getFile(); initCodec(vF); initCodec( iF ); Stream *ds = decodeFile( iF ); Stream *ds = decodeFile(vF); encodeStream(ds, oF ); encodeStream(ds, out); Alexandru Marginean — Automated Software Transplantation — Humies 2016
Human Competition x264 VLC char * iF = getInputFile(); char * oF = getOutputFile(); char *vF; vF = getFile(); iF = getFile(); initCodec(vF); initCodec( iF ); Stream *ds = decodeFile( iF ); Stream *ds = decodeFile(vF); encodeStream(ds, oF ); encodeStream(ds, out); Alexandru Marginean — Automated Software Transplantation — Humies 2016
Human Competition x264 VLC char * iF = getInputFile(); char * oF = getOutputFile(); char *vF; vF = getFile(); iF = getFile(); initCodec(vF); initCodec( iF ); Stream *ds = decodeFile( iF ); Stream *ds = decodeFile(vF); encodeStream(ds, oF ); encodeStream(ds, out); Alexandru Marginean — Automated Software Transplantation — Humies 2016
Human Competition x264 VLC char * iF = getInputFile(); char * oF = getOutputFile(); char *vF; vF = getFile(); iF = getFile(); initCodec(vF); initCodec( iF ); Stream *ds = decodeFile( iF ); Stream *ds = decodeFile(vF); encodeStream(ds, oF ); encodeStream(ds, out); Alexandru Marginean — Automated Software Transplantation — Humies 2016
Our Approach S CALPEL μ
Our Approach S CALPEL μ
Our Approach S CALPEL μ
a c f i t t r A * o m C p * l e t t n e A e t * s * E i W s Result: x264 & VLC n e C o A l l C D T * o * S c e u s S m u e E e I R n o t * v t e d y s * a E a d l e u t a Donor Host Alexandru Marginean — Automated Software Transplantation — Humies 2016
a c f i t t r A * o m C p * l e t t n e A e t * s * E i W s Result: x264 & VLC n e C o A l l C D T * o * S c e u s S m u e E e I R n o t * v t e d y s * a E a d l e u t a Award winning tool for H.264 encoding [2,3,4] Donor Host Alexandru Marginean — Automated Software Transplantation — Humies 2016
a c f i t t r A * o m C p * l e t t n e A e t * s * E i W s Result: x264 & VLC n e C o A l l C D T * o * S c e u s S m u e E e I R n o t * v t e d y s * a E a d l e u t a Award winning tool for H.264 “Most popular desktop video encoding [2,3,4] player” [1] Donor Host Alexandru Marginean — Automated Software Transplantation — Humies 2016
a c f i t t r A * o m C p * l e t t n e A e t * s * E i W s Result: x264 & VLC n e C o A l l C D T * o * S c e u s S m u e E e I R n o t * v t e d y s * a E a d l e u t a Award winning tool for H.264 “Most popular desktop video encoding [2,3,4] player” [1] Organ: H264 Donor Host Alexandru Marginean — Automated Software Transplantation — Humies 2016
a c f i t t r A * o m C p * l e t t n e A e t * s * E i W s Result: x264 & VLC n e C o A l l C D T * o * S c e u s S m u e E e I R n o t * v t e d y s * a E a d l e u t a Award winning tool for H.264 “Most popular desktop video encoding [2,3,4] player” [1] Organ: H264 Donor Host Alexandru Marginean — Automated Software Transplantation — Humies 2016
a c f i t t r A * o m C p * l e t t n e A e t * s * E i W s Result: x264 & VLC n e C o A l l C D T * o * S c e u s S m u e E e I R n o t * v t e d y s * a E a d l e u t a Award winning tool for H.264 “Most popular desktop video encoding [2,3,4] player” [1] Organ: H264 Donor Host Postoperative Alexandru Marginean — Automated Software Transplantation — Humies 2016
a c f i t t r A * o m C p * l e t t n e A e t * s * E i W s Result: x264 & VLC n e C o A l l C D T * o * S c e u s S m u e E e I R n o t * v t e d y s * a E a d l e u t a Automatic Transplantation of H264 Encoder Time Regression Manual Acceptance (hours) Tests Tests Tests μ S CALPEL 26 100% 100% 100% Organ: H264 Donor Host Postoperative Alexandru Marginean — Automated Software Transplantation — Humies 2016
Autotransplantation vs Human Transplantation Alexandru Marginean — Automated Software Transplantation — Humies 2016
Recommend
More recommend